0% found this document useful (0 votes)
8 views47 pages

CCIS - Chapter # 5 - Cloud Service Models (1)

Uploaded by

Arhum Naveed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views47 pages

CCIS - Chapter # 5 - Cloud Service Models (1)

Uploaded by

Arhum Naveed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Cloud Service Models:

In-depth view
Chapter 5

Cloud Computing: Infrastructure & Services


Sheheryar Malik, Ph.D.
Cloud Computing: Infrastructure & Servi

Cloud Computing Service Model


• Basic service models
o Infrastructure as a Service (IaaS) Infrastructure
o Platform as a Service (PaaS) as a Service
(IaaS)
o Software as a Service (SaaS)

Service
Models
Software as a Platform as a
Service (SaaS) Service (PaaS)

Chapter # 5 Sheheryar Malik, Ph.D. 2


Cloud Computing: Infrastructure & Servi

Infrastructure as a Service
(IaaS)

Chapter # 5 Sheheryar Malik, Ph.D. 3


Cloud Computing: Infrastructure & Servi

Infrastructure as a Service (IaaS)


• IaaS is the most basic and widely used cloud computing model
• It is a cloud computing service model in which hardware is virtualized
in the cloud
• Service vendor owns the equipment
o e.g servers, storage, network infrastructure, and so forth
• The user/developer creates virtual hardware on which to
install/develop applications and services
• IaaS vendor creates a hardware utility service where the user
provisions virtual resources as required

Chapter # 5 Sheheryar Malik, Ph.D. 4


Cloud Computing: Infrastructure & Servi

Infrastructure as a Service (IaaS)


• IaaS provides the users with the processing, network, storage, and other
fundamental computing resources
o the users use IaaS resources to run software like, operating systems and user
applications
• The underlying infrastructure is managed by the cloud service provider, whereas the
user manage and has a control over operating systems, and applications
• In most of the cases, user is provided with the virtual machines located in the data
centers
• Users have to install operating system and applications on these virtual machine
images
• Billing is done on the basis of the amount of resources allocated and consumed
• Examples of IaaS includes
o Amazon CloudFormation (and underlying services such as EC2), Rackspace Cloud, and
RightScale
Chapter # 5 Sheheryar Malik, Ph.D. 5
Cloud Computing: Infrastructure & Servi

Infrastructure as a Service (IaaS)


• Developer interacts with the IaaS model to create
o virtual private servers,
o virtual private storage,
o virtual private networks, and so on
o Then he populates these virtual systems with the applications and services it needs to
complete its solution
• In IaaS, the virtualized resources are mapped to real systems
o When the client interacts with an IaaS service and requests resources from the virtual
systems, those requests are redirected to the real servers that do the actual work

Chapter # 5 Sheheryar Malik, Ph.D. 6


Cloud Computing: Infrastructure & Servi

IaaS Providers
• Amazon EC2 computing services
• Amazon S3 storage services
• Rackscale
• MediaTemple
• Gridlayer
• Flexiscale
• Joyent Accelerator

Chapter # 5 Sheheryar Malik, Ph.D. 7


Cloud Computing: Infrastructure & Servi

IaaS Providers
• Amazon Web Services (AWS)
o Amazon Web Services offers a classic Service Oriented Architecture (SOA)
approach to IaaS
o AWS has several data centers in which servers run on top of a virtualization
platform (Xen) and may be partitioned into logical compute units of various
sizes
o Developers can then apply system images containing different operating
systems and applications or create their own system images
o Storage may be partitioned, databases may be created, and a range of
services such a messaging and notification can be called upon to make
distributed application work correctly

Chapter # 5 Sheheryar Malik, Ph.D. 8


Cloud Computing: Infrastructure & Servi

IaaS Workloads
• The fundamental unit of virtualized client in an IaaS deployment is
called a workload
• A workload simulates the ability of a certain type of real or physical
server to do an amount of work
o The work done can be measured by the number of Transactions Per Minute
(TPM) or a similar metric against a certain type of system
• In addition to throughput, a workload has certain other attributes
such as
o disk I/Os measured in Input/Output Per Second IOPS,
o the amount of RAM consumed under load in MB,
o network throughput,
o latency, and so forth
Chapter # 5 Sheheryar Malik, Ph.D. 9
Cloud Computing: Infrastructure & Servi

IaaS Workloads
• In IaaS, a provisioned server (called an instance) is reserved by a
customer
o the necessary amount of computing resources needed to achieve that type of
physical server is allocated to the client‘s need
• A client would reserve a machine equivalent required to run each of
these workloads
• The IaaS infrastructure runs these server instances in the data center
that the service offers, drawing from a pool of virtualized machines,
RAID storage, and network interface capacity
• These three layers are expressions of physical systems that are
partitioned as logical units

Chapter # 5 Sheheryar Malik, Ph.D. 10


Cloud Computing: Infrastructure & Servi

IaaS Network
• From an architectural standpoint, the client in an IaaS infrastructure is
assigned its own private network
• Amazon Elastic Computer Cloud (EC2), behaves as if each server has
its own separate network—unless you create your own Virtual Private
Cloud, which provides a workaround to this problem
o When you scale your EC2 deployment, you are adding additional networks to
your infrastructure, which makes it easy to logically scale an EC2 deployment,
but imposes additional network overhead because traffic must be routed
between logical networks
• Rackspace Cloud follows the AWS IP assignment model

Chapter # 5 Sheheryar Malik, Ph.D. 11


Cloud Computing: Infrastructure & Servi

Pods, Aggregation, and Silos


• Pods
o Workloads support a certain number of users
 When you reach the limit of the largest virtual machine instance possible, you must
make a copy or clone of the instance to support additional users
o A group of users within a particular instance is called a pod
o Pods are managed by a Cloud Control System (CCS)
o In AWS, the CCS is the AWS Management Console

Chapter # 5 Sheheryar Malik, Ph.D. 12


Cloud Computing: Infrastructure & Servi

Pods, Aggregation, and Silos


• Availability Zone
o Pods are aggregated into pools within an IaaS region or site called an
availability zone
o In very large cloud computing networks, when systems fail, they fail on a pod-
by-pod basis, and often on a zone-by-zone basis
o For AWS' IaaS infrastructure, the availability zones are organized around the
company's data centers in Northern California, Northern Virginia, Ireland, and
Singapore
o A failover system between zones gives IaaS private clouds a very high degree
of availability

Chapter # 5 Sheheryar Malik, Ph.D. 13


Cloud Computing: Infrastructure & Servi

Pods, Aggregation, and Silos


• Silos
o Silos are the cloud computing equivalent of compute islands
 They are processing domains that are sealed off from the outside
o When you create a private virtual network within an IaaS framework, the
chances are high that you are creating a silo
o Silos impose restrictions on interoperability that runs counter to the open
nature of build-componentized service-oriented applications
o A silo can be its own ecosystem; it can be protected and secured in ways that
an open system can't be
o Silos just aren't as flexible as open systems

Chapter # 5 Sheheryar Malik, Ph.D. 14


Cloud Computing: Infrastructure & Servi

Platform as a Service
(PaaS)

Chapter # 5 Sheheryar Malik, Ph.D. 15


Cloud Computing: Infrastructure & Servi

Platform as a Service (PaaS)


• PaaS offers a set of software and product development tools hosted
on the cloud service provider's infrastructure
• Users deploy onto the cloud infrastructure his self developed or
acquired applications
o created using programming languages, libraries, services, and tools provided
by the cloud vendor
• The users do not have a control over the underlying cloud
infrastructure including network, servers, operating systems, or
storage
o but they have a control over the deployed applications and possibly
configuration settings for the application-hosting environment

Chapter # 5 Sheheryar Malik, Ph.D. 16


Cloud Computing: Infrastructure & Servi

Platform as a Service (PaaS)


• Developers can create applications on the provider's platform over
the Internet without incurring cost for purchase and management of
underlying hardware and software layers
• PaaS must offer some type of development language so professional
developers can add value
• These environments need a way to monitor and measure resource
use and to track overall performance of the vendor’s platform
• Almost all PaaS platforms are based on a multi-tenancy architecture
o It lets multiple clients run their copy separately from each other through
virtualization) so that each customer’s code or data is isolated from others

Chapter # 5 Sheheryar Malik, Ph.D. 17


Cloud Computing: Infrastructure & Servi

Platform as a Service (PaaS)


• PaaS environment needs to support the development lifecycle and
the team development process, including testing
• PaaS platform needs to include services interfaces such as SOAP
(Simple Object Access Protocol) and XML (eXtensible Markup
Language)
• PaaS platform must be able to deploy, manage, test, and maintain the
developed applications
• Examples of PaaS include
o Salesforce's Force.com, Google App Engine, Amazon Elastic Beanstalk,
Microsoft Azure, Heroku, and Engine Yard

Chapter # 5 Sheheryar Malik, Ph.D. 18


Cloud Computing: Infrastructure & Servi

Platform as a Service (PaaS)


• A PaaS platform must support well-defined and well documented
interfaces so elements and components can be used in the following
o Composite applications
 they are created by combining services to create an enterprise application based on
orchestration of business logic and rules
o Mashups
 which let end users easily bring together two or more business services that can
communicate and exchange data
o Portals
 which are an organized environment that organizes application components for the
customer

Chapter # 5 Sheheryar Malik, Ph.D. 19


Cloud Computing: Infrastructure & Servi

Platform as a Service Environments


• PaaS environments can be divided into following categories

Integrated Lifecycle Platform

Enabling Technologies as a Platform

Chapter # 5 Sheheryar Malik, Ph.D. 20


Cloud Computing: Infrastructure & Servi

Integrated Lifecycle Platforms


• Several emerging key platforms provide the developer with a full
environment for creating an application without buying any individual
tools
o For example, the platform provider will provide the developer with a full stack
including an operating system, a programming language, security, storage,
version control, collaborative tools, as well as tools to build Web interaction
• These platforms provide services as a well-integrated and well-tuned
stack with its own middleware and often its own programming
interfaces
• Examples of integrated lifecycle platforms are Google App Engine and
Microsoft’s Azure

Chapter # 5 Sheheryar Malik, Ph.D. 21


Cloud Computing: Infrastructure & Servi

Integrated Lifecycle Platforms


• Integrated PaaS companies often include the following:

A workflow Development A testing An ability to Third-party


engine tools environment integrate tools and
databases services

Chapter # 5 Sheheryar Malik, Ph.D. 22


Cloud Computing: Infrastructure & Servi

Google App Engine


• Google isn’t trying to help customers create every application to run on every
platform
o It is actually quite focused, helping customers build Web-based applications
• Developer provides the Google App Engine with a URL (Web address) for the
application it’s building and the engine maps that code to Google’s development
platform
• The App Engine handles the Web application lifecycle, including routine tasks
such as
o request logs
o checking the application status
o updating the application version
o operating the underlying database
o handling workflow platform which is for development and deployment

Chapter # 5 Sheheryar Malik, Ph.D. 23


Cloud Computing: Infrastructure & Servi

Google App Engine – Development


Stack
• Google App Engine includes a development stack
o It is called Scalable Serving Infrastructure
o It connects the Web application code to the Google environment

• It integrates the following tools


o Python runtime
 It was the first one that was supported by Google
o Java runtime
 This runtime is integrated with Google’s toolkits and is intended to be used for AJAX (asynchronous
JavaScript and XML) or interactive Web applications
o A Software Development Kit (SDK)
 This set of development tools enables developers to write application code
o A Web-based administration console
 The console helps developers manage their applications
o Datastore
 It stores the Web application’s data and is built on the Bigtable (a high-performance database) structure
Chapter # 5 Sheheryar Malik, Ph.D. 24
Cloud Computing: Infrastructure & Servi

Microsoft Azure
• Azure is Microsoft’s PaaS strategy that was announced in 2008
• Microsoft defines the Azure platform as “an Internet-scale cloud
services platform hosted in Microsoft data centers, which provides an
operating system and a set of developer services that can be used
individually or together
• Main focus of the Azure platform is to bring Microsoft’s familiar
programming model to the cloud
o Microsoft also intends to support other programming models, including Ruby
on Rails and Python
• For interoperability, Microsoft supports various Internet protocols,
including HTTP, REST, SOAP, and XML

Chapter # 5 Sheheryar Malik, Ph.D. 25


Cloud Computing: Infrastructure & Servi

Microsoft Azure Platform


• The Azure platform is composed of four different components
o Microsoft Azure
 This Microsoft Azure environment runs applications locally and stores the related data on
servers inside the Microsoft data center
o Microsoft .NET Services
 These are the same .Net services that Microsoft has in its Windows environment
 It has been extended to support cloud-based as well as on-premise applications
o Microsoft SQL Services
 Same data services Microsoft offers on premise
 The data services expose both SOAP and REST interfaces as data access methods
o Live Services
 This set of services allows developers to connect code developed in the Windows Live platform
into the cloud
 These services include a framework intended to integrate, connect, and synchronize code
 The platform also includes support for different programming languages
Chapter # 5 Sheheryar Malik, Ph.D. 26
Cloud Computing: Infrastructure & Servi

Salesforce.com’s Force.com Platform


• Salesforce.com initiated a platform called Force.com as its venture
into the cloud platform market
• It helps commercial software developers create cloud-based
applications based on Salesforce.com’s development environment
• In addition, applications built with Force.com’s tools can also take
advantage of the CRM applications
• At the heart of this platform is the multi-tenancy architecture
• However, those instances and the application code built in those
instances are isolated from each other
o In this type of multitenancy the customizations designed by one user will be
isolated from customized designs built by any other user
Chapter # 5 Sheheryar Malik, Ph.D. 27
Cloud Computing: Infrastructure & Servi

Force.com Platform
• Metadata architecture
o Salesforce.com needed a metadata architecture to support its multi-tenancy
approach
o The metadata layer is complex and includes an application server called Resin
 Resin Application Server is a high-performance XML application server for use with Java
server pages (JSPs), servlets, JavaBeans, XML, and a host of other technologies

Chapter # 5 Sheheryar Malik, Ph.D. 28


Cloud Computing: Infrastructure & Servi

Force.com Platform
• Service delivery infrastructure
o Salesforce.com’s cloud delivery infrastructure is based on its managed and
secure data center environment
o This is the same infrastructure used to manage its CRM customers

• Database as a service
o The database is built on top of the metadata services
o The data services provide data security by enabling customers to declare
validation rules
 such as confirming that an account number is valid
o It enables customers to build customized objects and fields
o The customer isn’t responsible for database tuning, backup, or upgrades
because of the cloud infrastructure

Chapter # 5 Sheheryar Malik, Ph.D. 29


Cloud Computing: Infrastructure & Servi

Force.com Platform
• Integration as a service
o At the center of Force.com’s integration capabilities is a Web services Application
Programming Interface (API)
o This API allows customers to access data stored in a Force.com application because it supports
industry-standard SOAP Web services
o Salesforce. com partners use this API to create connectors to packaged applications such as
SAP R/3 and Oracle Financials
o There are prebuilt integrations to services such as Amazon’s Web services, Facebook, and
Google App Engine
o It also supports Web services standards including Java, .NET, PhP, and Perl
• Logic as a service
o This is a set of automated workflow services
o A built-in workflow engine includes services such as task creation, record assignment, and
other event-triggered services
o Customers can use a Salesforce.com programming language (called Apex) as a way to extend
the application by writing new code
Chapter # 5 Sheheryar Malik, Ph.D. 30
Cloud Computing: Infrastructure & Servi

Force.com Platform
• User interface as a service
o Force.com provides two ways of building or customizing user interfaces
 A builder to change the application layout and Visualforce
 A framework for building user interfaces for both private and public clouds Developers
can use standard Web development tools including HTML, AJAX, and Adobe Flex
• Development as a service
o Development tools include
 the Metadata API
 an IDE (Integrated Development Environment)
 a development sandbox (a separate development space for developers)
 a service called Code Share for building cloud-based applications
• AppExchange marketplace
o This site enables vendors that have used the Salesforce.com interfaces
 It is, in essence, a channel for partners to sell into the installed base

Chapter # 5 Sheheryar Malik, Ph.D. 31


Cloud Computing: Infrastructure & Servi

Enabling Technologies as a Platform


• Not all platforms in the cloud include a full lifecycle environment
• Some platforms are focused on providing specialized capabilities
• Some of these capabilities may be a specific tool
• Three types of such platforms are possible
o Testing in cloud
o Service management for the cloud
o Integration and configuration platform

Chapter # 5 Sheheryar Malik, Ph.D. 32


Cloud Computing: Infrastructure & Servi

Testing in the Cloud


• Testing in the cloud is very critical
o however, most platforms don’t provide their own testing environment
• Hundreds of vendors, big and small, provide services to test cloud-
based platforms
• They include HP, IBM, and independent companies such as iTKO and
SOASTA
• All have one common capability
o They integrate with the platform and enable customers to test their
applications before deploying them to a public or private cloud
• While the platform vendors themselves offer their own testing tied to
their platform, many customers and developers need testing for their
own code and for integration testing
Chapter # 5 Sheheryar Malik, Ph.D. 33
Cloud Computing: Infrastructure & Servi

Service Management for the Cloud


• Managing applications created in clouds is a complex area and few
platform vendors provide their own management services
• Therefore, a range of companies are emerging to fill the gap, including
companies like RightScale
• In fact, RightScale is the primary management platform for
Amazon.com EC2 offering
• Companies including HP, IBM, CA, and others also provide service
management offerings that are sold independently

Chapter # 5 Sheheryar Malik, Ph.D. 34


Cloud Computing: Infrastructure & Servi

Integration and Configuration Platforms


• Enabling tools make it easy to customize cloud applications for different
end-user needs
• A variety of platforms provide capabilities for this need
• For example
o WaveMaker
 It is a cloud-development platform based on Java
 It’s intended to make it easier for developers to customize and extend Web applications from a
Web browser
 It can also integrate existing data and logic into a cloud platform
o Gigaspaces
 The Gigaspaces XAP cloud PaaS is tightly integrated with Amazon EC2’s infrastructure
 It allows customers to build Web applications for the cloud by migrating existing enterprise
applications
 It does this by providing a development platform that supports major frameworks, languages,
and management environments
Chapter # 5 Sheheryar Malik, Ph.D. 35
Cloud Computing: Infrastructure & Servi

Software as a Service
(SaaS)

Chapter # 5 Sheheryar Malik, Ph.D. 36


Cloud Computing: Infrastructure & Servi

Software as a Service (SaaS)


• SaaS offers service in form of application software
• The SaaS cloud service provider offers the applications running on its
infrastructure to the users through either a thin client interface (such as a web
browser), or a program interface
• The users do not have control over the underlying cloud infrastructure or even
individual application capabilities (except user's specific application configuration
settings)
• User does not need to even create, install, or manage the application software in
the cloud
o these tasks are carried out by the cloud service provider.
• In SaaS, a cloud application can be multi-tenant to accommodate many users
• It provides a high level of application elasticity
• The billing for SaaS applications is normally done on a monthly or yearly basis

Chapter # 5 Sheheryar Malik, Ph.D. 37


Cloud Computing: Infrastructure & Servi

Software as a Service (SaaS)


• SaaS is the most mature area of cloud computing
• SaaS gained initial traction with the customer relationship
management (CRM) market and has expanded into others
o particularly the collaboration market and the enabling tools and
management environments
• Examples of SaaS include
o Google Apps, Quickbooks Online and Salesforce.com

Chapter # 5 Sheheryar Malik, Ph.D. 38


Cloud Computing: Infrastructure & Servi

Characterizing Software as a Service


• The SaaS application needs to
o be generalized enough
 so that lots of customers will be interested in the service
 For examples accounting, collaboration, project management, testing, analytics, content
management, Internet marketing, risk management and of course, CRM
o have sophisticated navigation and ease of use
 If a SaaS application isn’t easy to use, customers will simply stop subscribing
 Most SaaS vendors offer prospective customers a free trial for a month or so
• If the customer doesn’t start using the application during that first month, it’s likely that the
customer won’t sign a contract
• Studies says that less than 20 percent of users remain customers after the first month or so

Chapter # 5 Sheheryar Malik, Ph.D. 39


Cloud Computing: Infrastructure & Servi

Characterizing Software as a Service


• The SaaS application needs to;
o be modular and service oriented
 Without this modular approach, it will be hard to change and difficult to have third-party
independent companies join the ecosystem
o must have a built-in billing service
o include measuring and monitoring
 so customers can be charged actual usage
o have published interfaces and an ecosystem of partners
 who can expand the company’s customer base and market reach
o ensure customer’s data and configuration isolation
 Each customer’s data and specialized configurations should be separate and secure from
other customers’ data and configurations

Chapter # 5 Sheheryar Malik, Ph.D. 40


Cloud Computing: Infrastructure & Servi

Characterizing Software as a Service


• SaaS application needs to;
o provide sophisticated business process configurators for customers
 Each customer can change the process within the standardized SaaS application
 For example
• A company might want to add a process so a manager has to approve the price being offered
to a new customer
• A built-in configuration tool enables this to be done on an ad hoc basis without programming
o constantly provide fast releases of new features and new capabilities
 This must be done without impacting the customer’s ability to continue business as
usual
o protect the integrity of customer data
 That includes providing techniques for allowing data to migrate either to a private
database inside the firewall or to a third-party storage capability

Chapter # 5 Sheheryar Malik, Ph.D. 41


Cloud Computing: Infrastructure & Servi

Types of SaaS Platforms


• SaaS can be divided into three categories

Packaged Software

Collaborative Software

Enabling and Management Tools

Chapter # 5 Sheheryar Malik, Ph.D. 42


Cloud Computing: Infrastructure & Servi

SaaS Platforms: Packaged Software


• This is the biggest area of the SaaS market
• Packaged software comes in many different flavors
o customer relationship management,
o supply chain management,
o financial management,
o human resources,
o And many more
• These integrated offers focus on a specific process, such as managing employees’
benefits, salaries, and annual performance reviews
• These products tend to have several characteristics in common
o They’re designed with specific business processes built in that customers can modify
o They have moved in great numbers to the cloud because customers were finding the
platforms too hard to manage

Chapter # 5 Sheheryar Malik, Ph.D. 43


Cloud Computing: Infrastructure & Servi

SaaS Platforms: Packaged Software


• Companies in the packaged software market include the following
o Netsuite
 offers a CRM foundation, ERP application including financial capabilities, e-commerce, and
business intelligence
o Intuit
 provides a Financial Services Suite of products for SMBs
o RightNow
 provides a CRM suite of products including marketing, sales, and other solutions
o Concur
 Automates cost controls and focuses on employees spend management
o Taleo
 focuses on talent management tasks
o Constant Contact
 A marketing automation platform that partners directly with Salesforce.com and other CRM
platforms
Chapter # 5 Sheheryar Malik, Ph.D. 44
Cloud Computing: Infrastructure & Servi

SaaS Platforms: Collaborative Software


• It is an increasingly vibrant area of the market
• It is driven by the ubiquitous availability of the Internet, combined
with the fact that teams are located all over the world
• This area is dominated by software that focuses on all sorts of
collaborative efforts including Web conferencing, document
collaboration, project planning, instant messaging, and even email
• It was inevitable that these platforms would move to the cloud
o These tasks occur throughout the organization and need to be easily accessed
from many locations

Chapter # 5 Sheheryar Malik, Ph.D. 45


Cloud Computing: Infrastructure & Servi

SaaS Platforms: Collaborative Software


• Companies in the collaborative software market include the following
o MicrosoftLive
 Microsoft’s Collaboration as a service (Meeting Live offering)
 Offers Meeting Live and live messaging services
o LotusLive
 It is IBM’s collaborative environment that includes a set of tools including social networking,
instant messaging, and the ability to share files and conduct online meetings
o GoogleApps
 from Google, which has as many as 1.5 million businesses that use its various collaborative
applications including e-mail, document management, and instant messaging
o Cisco Webex
 Collaboration platform comes from Cisco and it has become the centerpiece of its collaboration
SaaS platform
o Citrix GotoMeeting
 offers an online meeting service as part of its larger suite of virtualization products
Chapter # 5 Sheheryar Malik, Ph.D. 46
Cloud Computing: Infrastructure & Servi

SaaS Platforms: Enabling and Management


Tools
• It includes
o the development tools that developers need when creating and extending a
SaaS platform
o the testing, monitoring, and measuring that a customer and the developer
need
o the compliance issues related to the use of this type of software in the real
world
• Many vendors these service platforms, including
o HP
o IBM
o Sogeti
o iTKO
o SOASTA
Chapter # 5 Sheheryar Malik, Ph.D. 47

You might also like