3. Cloud Service Models COS497 - Cloud Computing

COS497 - Cloud Computing
3. Cloud Service Models
IT as a Service
How do you offer IT as a service?
Different users have different needs!
Consider the needs of the
- Average End-User
- Mobile Application Developer
- Enterprise System Architect
Their needs, in terms of resources, are all different.
Requirements to Transform IT to a Service in the Cloud
Combining the Enabling Technologies …
Different Cloud Computing Models (aka Cloud Service Models)
“Why do it yourself if you can pay someone to do it for you?”
• Infrastructure as a Service (IaaS) - Utility computing
– Why buy machines when you can rent machine cycles?
– Example: Amazon’s EC2
• Platform as a Service (PaaS)
– Let me upload my app and run it for me!
– Example: Google App Engine
• Software as a Service (SaaS)
– Just let me use your apps!
– Examples: Google Apps, Gmail
Types of Cloud Services
(On-Premise)
(as a Service)
(as a Service)
(as a Service)
Applications
Applications
Applications
Applications
Runtimes
Runtimes
Runtimes
Runtimes
Security & Integration
Security & Integration
Security & Integration
Databases
Databases
Servers
Servers
Servers
Virtualization
Virtualization
Server HW
Server HW
Storage
Storage
Networking
Networking
Security & Integration
Managed by vendor
You manage
Databases
You manage
Software
You manage
Platform
Virtualization
Databases
Servers
Virtualization
Server HW
Server HW
Storage
Storage
Networking
Networking
Managed by vendor
Infrastructure
Managed by vendor
Private
Cloud computing architecture
e.g. Web browser
SaaS , e.g. Google Docs
PaaS, e.g. Google AppEngine
IaaS, e.g. Amazon EC2
Different types of cloud computing
IaaS
Amazon EC2
Clients can rent
virtualized hardware,
can control the
software stack on the
rented machines
PaaS
Microsoft Azure
Clients can choose
languages, but cannot
change the operating
system or runtime
Google AppEngine
Provides a
programmable
platform that can
scale easily
SaaS- Exploiting Software as a Service
Software is delivered as a service over the Internet, eliminating the
need to install and run the application on the customer's
own computer.
This simplifies software maintenance and support for the
customer.
With SaaS, a provider licenses an application to customers either
as a service on demand, through a subscription, in a “pay-as-yougo” model, or (increasingly) at no charge when there is opportunity
to generate revenue from streams other than the user, such as
from advertising (e.g. Google AdWords).
Examples: Gmail, YouTube, and Google Docs, among others
Some defining characteristics of SaaS include:
• Web access to commercial software.
• Software is managed from a central location.
• Software delivered in a “one (program) to many (customers)”
model – multi-tenancy.
• Users not required to handle software upgrades and patches.
• Application Programming Interfaces (APIs) allow for integration
between different pieces of software.
SaaS is widely accepted to have been introduced to the business
world by the Salesforce Customer Relationship Management
(CRM) product.
As one of the earliest entrants, it is not surprising that CRM is
the most popular SaaS application software.
However e-mail, financial management, customer service and
expense management have also gotten a good uptake via SaaS.
SaaS systems typically include some or all of the following:
- Accessing virtual desktops on a per-user-per-month rental
basis.
- Accounting, financial management, inventory and
e-commerce.
- Collaborations between employees and clients on projects.
- Creating flowcharts, diagrams, floor plans and other
technical drawings.
- Customer Relationship Management (CRM).
- Editing, storing and sharing documents, presentations,
spreadsheets, blogs, web pages and videos,
- Project management.
- Web-mail, calendaring, instant messaging, video
conferencing and social networking.
Example: Some of the SaaS applications available from Zoho.com
PaaS – Delivering Platform as a Service
Platform as a Service (PaaS) brings the benefits that SaaS bought
for applications, but over to the software development world.
The cloud provider supplies a set of development tools (a platform)
which allows users to create an application without the complexity
of buying and maintaining the software and infrastructure
underneath it.
But, note, some cloud providers just provide an execution
platform, not a development platform.
The application may then run on the provider’s infrastructure,
i.e. servers, storage and network
However, the cloud provider manages the underlying
infrastructure and requirements.
PaaS systems typically include some or all of the following features:
- Browser-based development environment for creating
databases and editing application code – either directly or through
visual, point-and-click tools.
-Built-in scalability, security, access control and web service
interfaces.
- Easy integration with other applications on the same
Platform.
- Tools for connecting to applications outside the platform’s
cloud.
- Tools for designing web forms, defining business rules and
creating workflows.
The provider supplies Web-based user interface creation tools.
The application may be integrated with Web Services and
databases in the cloud.
This model allows building high-availability, high-scalability, and
high-performance cloud environments or applications.
Example - Google App Engine:
Build web applications on Google’s Infrastructure
Example - The Facebook Developer Platform:
Set of APIs that allow you to create Facebook Applications
Delivery of an integrated computing platform (to
build/test/deploy custom apps) and solution stack as a
service.
Deploy your applications and do not worry about buying
and managing the underlying hardware and software layers
IaaS – Infrastructure as a Service
IaaS is a way of delivering cloud computing infrastructure –
servers, storage, network and operating systems – as an ondemand service.
Rather than purchasing servers, software, datacenter space or
network equipment, clients instead rent those resources as a fully
outsourced service on demand.
The cloud provider leases to users Virtual Machine Instances (i.e.
computer infrastructure) using virtualization technology.
The user has access to a standard operating system environment
and can install and configure all the layers above it.
Virtualization Technology is a major enabler of IaaS.
It is a path to share IT resource pools: Web servers, storage, data,
network, software and databases.
Higher utilization rates made possible
Linux
Windows
Mac OS
Example Software Stack
Example - Amazon Web Service Elastic Compute Cloud (EC2)
IaaS systems typically include some or all of the following features:
- A choice of ready-made virtual machines with pre-installed operating
systems including numerous versions of Windows and Linux
- A choice of virtual appliances – virtual machines with specific sets of
software pre-installed
- Ability to store copies of particular data in different locations around
the world to make downloads of the data as fast as possible
- Software tools to help process large amounts of data (in Data Grids) and
perform complex calculations (in Compute Grids) using large arrays of virtual
servers working in parallel on the same problem
- Ability to manually increase or decrease the computing resources
assigned to you using a web browser as your requirements change
- Ability to automatically scale computing resources up and down in
response to increases and decreases in application usage.
Questions?