0% found this document useful (0 votes)
14 views95 pages

Lecture 4 - PaaS Techniques

The document provides an overview of Platform as a Service (PaaS), explaining its evolution from Infrastructure as a Service (IaaS) and highlighting its properties and characteristics. PaaS offers a computing platform that abstracts infrastructure and middleware, enabling developers to create and deploy applications efficiently while ensuring scalability, availability, and security. Case studies, particularly on Microsoft Windows Azure, illustrate the practical applications and benefits of PaaS in cloud computing environments.

Uploaded by

Haru Zii
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)
14 views95 pages

Lecture 4 - PaaS Techniques

The document provides an overview of Platform as a Service (PaaS), explaining its evolution from Infrastructure as a Service (IaaS) and highlighting its properties and characteristics. PaaS offers a computing platform that abstracts infrastructure and middleware, enabling developers to create and deploy applications efficiently while ensuring scalability, availability, and security. Case studies, particularly on Microsoft Windows Azure, illustrate the practical applications and benefits of PaaS in cloud computing environments.

Uploaded by

Haru Zii
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/ 95

雲端計算

Cloud Computing

Platform as a Service
Agenda
• Introduction
 From IaaS to PaaS
 What is PaaS
 PaaS properties and characteristics

• Cloud Platform
 Case studies
From IaaS to PaaS
What is PaaS
PaaS properties and characteristics

INTRODUCTION
What Has IaaS Done
• IaaS provides virtual machines and resources such
that IaaS vendors can segment resources for each
user
• IaaS providers can also make users do not need to
purchase the hardware
• IaaS can make better use of resources

But is it enough?
What IaaS Can Do
• Traditional IT • IaaS
Applications Applications
Data Data

You Manage
Runtime Runtime
Middleware Middleware
You Manage

OS OS

Provider Manage
Virtualization Virtualization
Servers Servers
Storage Storage
Networking Networking
IaaS is Not Enough
• IaaS provides many virtual or physical machines,
but it cannot alter the quantity automatically
• Consumers might
 Require automatic make-decisions of dispatching jobs
to available resources
 Need a running environment or a development and
testing platform to design their applications or services
More Requirements
• Consumers require more and more…
 Large-scale resource abstraction and management
 Requirement of large-scale resources on demand
 Running and hosting environment
 Automatic and autonomous mechanism
 Distribution and management of jobs
 Access control and authentication
 …
More and More…

We need more
services
PaaS Buys It for You
• PaaS provides a series of
properties that can satisfy
user’s requirements

• PaaS guarantees the


quality of resources,
services and applications
From IaaS to PaaS

Traditional IT IaaS PaaS

You Manage
Applications Applications Applications
Data Data Data

You Manage
Runtime Runtime Runtime
Middleware Middleware Middleware
You Manage

Provider Manage
OS OS OS

Provider Manage
Virtualization Virtualization Virtualization
Servers Servers Servers
Storage Storage Storage
Networking Networking Networking
From IaaS to PaaS
What is PaaS
PaaS properties and characteristics

INTRODUCTION
Platform as a Service
Platform as a Service (PaaS) is a computing
platform that abstracts the infrastructure, OS, and
middleware to drive developer productivity
Platform as a Service
• Deliver the computing platform as a service
 Developing applications using programming languages and tools
supported by the PaaS provider
 Deploying consumer-created applications onto the cloud
infrastructure

Enabling Services
provide

Core Platform

abstract

Resource Pool
Resource Pool
The capacities to abstract and control all the
underlying resources
• Resource Pool dynamically
provides an abstraction Enabling Services
and consolidation of large- provide
scale resources
Core Platform
• Consumers can acquire abstract

and return resources from


Resource Pool
the resource pool on
demand
Resource Pool
• Reduce the complexity and
responsibility of cloud
infrastructure

• Provide the automatic


management to provision
resources

• Access resources from the


resource pool on demand
Resource Pool
• PaaS providers define the smallest unit of resource
 1GHz CPU computation ability
 1GB storage space
 1MB memory capacity
 …etc

• PaaS consumers can require units on their demand


• Consumers may not be aware of whether provided
resource is dedicate or shared
Core Platform
To provide a reliable environment for running
applications and services
• Core Platform provides
basic functionalities of a Enabling Services
PaaS environment provide

Core Platform
• Act as a bridge between
consumer and hardware abstract

Resource Pool
Core Platform
• Reduce the responsibility of
the runtime environment

• Based on the core platform


to develop their applications

• Do not need to care about


how to built, configure,
manage and maintain the
backend environment
Core Platform
• PaaS providers can provide a runtime
environment for the developer platform
• Runtime environment is automatic control such
that consumers can focus on their services
 Dynamic provisioning
• On-demand resource provisioning
 Load balancing
• Distribute workload evenly among resources
 Fault tolerance
• Continuously operating in the presence of failures
 System monitoring
• Monitor the system status and measure the usage of resources
Enabling Services
To provide platform interfaces and services to
drive the development productivities
• Enabling Services provide
programming IDE and system Enabling Services
control interfaces to access provide
the PaaS environment
Core Platform
• Consumers can develop their abstract

applications through the APIs


Resource Pool
and development tools
Enabling Services
• Provide a development and
testing platform for running
developed applications on the
runtime environment

• Reduce the responsibility of


managing the development
environment

• Decrease the development painful


period
Enabling Services
• Enabling Services are the main focus of consumers
• Consumers can make use of these sustaining
services to develop their applications
 Programming IDE
• Integrate the full functionalities supported from the runtime
environment
• Provide some development tools, such as profiler, debugger and
testing environment
 System Control Interfaces
• Make the decision according to some principles and requirements
• Describe the flow of installation and configuration of resources
From IaaS to PaaS
What is PaaS
PaaS properties and characteristics

INTRODUCTION
Platform as a Service
• Guarantee some properties and characteristics
 Scalability
 Availability
 Manageability
 Performance
 Accessibility
Scalability
• PaaS needs to support
dynamic provisioning
that can increase or
decrease resources on
demand

• PaaS provides the


abstraction of cloud
infrastructure and the
automatic management
Scalability
• For enterprises, they need a dynamically changed
storage size or computation ability on demand
 Application may need a high peak of computation usage
on morning but slow down at afternoon
 It also needs a large storage space for some time
• For end users, they could not see the alert about
the lack of memory or storage space
 For example…
Availability
• PaaS needs to support the
fault tolerance ability
such that system would
not crash on failure

• PaaS also needs to provide


system resilience by
duplicating applications
or services
Availability
• PaaS supports automatic backup and disaster
recovery such that consumers do not need to
worry about system failures
• When some resources are failed, PaaS would start
up the backup resources
• When applications occur fault, PaaS would migrate
services to the duplicate one

There is no error
Manageability
• PaaS needs to support self-
management for running
applications and services
on the cloud platform

• PaaS needs to provide


automatic control, analysis
and measurement for the
resource usage
Manageability
• PaaS provides automatic mechanisms to control
the utilization of platform resources
• Monitoring service provides the ability of
management, analysis and operation for resources
and jobs
• Based on the system monitoring, PaaS can record
and report the usage of resources
• Consumers can pay for what they use
Billing
• Consumers pay the bill according to how many units
of resources and services they use
 Input/output network bandwidth
 Management report or warning
 CPU time
 Storage space
 Data migration
 …etc
Billing
• Consumers can set the boundary they would not
like to pay the overestimate
• PaaS vendor may provide the free quota for users
• PaaS vendor can also alert consumer the suddenly
increased usage
• As a result, consumers only pay what they use on
demand
Performance
• PaaS needs to support
the capabilities
 Distribute jobs to idle
resources
 Remove jobs from the
overloading resources

• PaaS also needs to


distributes data to
storage system with
load balancing
Performance
• Enterprise runs complicated applications on PaaS
which can allocate jobs to available servers
• If possible, PaaS would run application in parallel
• No resource is always overloading on the load
balancing PaaS
• Utilization and performance could be further
improved
Security
• Security is an important
characteristic in PaaS

• PaaS needs to provide


authentication and
authorization to
differentiate the access
rights of different users
Security
• Authorization can be used to control the user’s
access right and reject the malicious request
• Authentication is the act of establishing or
confirming something or someone as authentic
• All of these can limit the malicious behavior
Accessibility
• PaaS needs to provide an
interactive interface for
consumers to access
cloud services or monitor
the system status

• Consumers could develop


and test their
applications via web
browsers or other thin-
clients
Summary
• PaaS is a magic box
 Request anything on demand, and return the rent of
resources dynamically
 Automatically build an initial environment and support
self-management with high quality of service and
performance
 Provide an ability of fault tolerance and disaster recovery
that make services be more available and reliable
 Support the security property to limit malicious behavior
in cloud environments
• More important
 Do not care about how it works
 Pay as you go
Case Studies

CLOUD PLATFORM
PaaS Players
• PaaS venders
 Microsoft Windows Azure
 Hadoop
 Google App Engine
Microsoft Windows Azure
• Windows Azure platform is one of PaaS vendors
 Based on .NET and Microsoft’s supported development tools
• Windows Azure starts general availability at Feb 2010,
and builds the global data center around the world
Windows Azure Platform
• A group of cloud technologies, each providing a
specific set of services to application developers
Major Components
• Windows Azure
 Provides a Windows-based environment for running
applications and storing data on servers in Microsoft data
centers

• SQL Azure
 Provides data services in the cloud based on SQL Server

• AppFabric
 Provides cloud services for connecting applications
running in the cloud or on premises
Windows Azure
SQL Azure
AppFabric

WINDOWS AZURE PLATFORM


Windows Azure
• Customers use it to
run applications and
store data on Internet-
accessible machines
owned by Microsoft
• Those applications
might provide services
to businesses, to
consumers, or both
What is Windows Azure
• Windows Azure is a foundation for running
Windows applications and storing data in the cloud
 Provides Windows-based compute and storage services for
cloud applications
Components
• Compute
 Running applications
 Support applications that have a very large number of
simultaneous users and that can scale out
• Storage
 Storing and accessing data
 Applications require storage as simple blobs, a more
structured way to store information, or a way to exchange
data between different parts of an application
• Fabric
 Managing resources
 Providing a common way to manage and monitor
applications that use this cloud platform
Overview
Compute

• Compute
• Storage
• Fabric
Windows Azure
Windows Azure - Compute
• In cloud computation,
Windows Azure provides
 Variety of services, like web
service or background
computation
 A running environment of IIS 7
and .NET
• Four types of compute unit
 A basic type provide single-core
1.66 GHz CPU, 1.75 GB of
memory, and 225 GB of instance
storage
 Incremental by power of 2
Compute
• A Windows Azure application can have multiple
instances, each executing in its own virtual machine
(VM)
• Each VM is provided by a hypervisor (Hyper-V)
• A developer can create
 A hosting account for running applications
 A storage account for storing data
 or both
• A developer can access
 The instance through an interface
 The Windows Azure portal through the Web browser
Instance Types
• Windows Azure provides two types of computation
roles
 Web role
• A running environment that user can access
• Web application service
 Worker role
• An environment runs particular processing
• Ability to handle distributed or complicated tasks
Instance Types
• Any service must include at least one role of either
type, but may consist of any number of web roles
or work roles
• Worker role can communicate with Web role using
the Windows Azure storage queues
• Each VM contains an agent to allow the application
to interact with the Windows Azure fabric
Storage

• Compute
• Storage
• Fabric
Windows Azure
Windows Azure - Storage
• In enterprise, it may need
10GB to 10PB storage
space when company is
growing
• Enterprise does not know
how many disks are
needed at initial
 It could be underestimate
or overestimate
Storage
• If underestimate
 Violate the contract and does not expand storage in time
• If overestimate
 Waste of resource and additional management costs

• Windows Azure can take care about the storage


management
 Users do not need to worry about maintaining storage
space, back-up and hardware fail
 Enterprises do not need to purchase the data center nor
take the responsibility of maintenance only for a peak loads
Storage Types
• Windows Azure provides three type of storage and
each one provides a special purpose
 Blob
• Provides blocks of storage that can store text or binary file
 Table
• Provides structured-based storage
 Queue
• Provides slices storages that support communication between
applications

• Each type of storage service has its own limitation


 Size of a file
 Number of operations at once
Blob
• An account has his Blob storage, and can have
multiple containers
• Each container has multiple Blobs, each can store
blocks or pages
Account Container Blob Block

song. Block1
music mp3
Block2
John Image1.
jpg
photo
Image2.
jpg
Blob Types
• Block Blob
 Segment read/write
 Identify by Block ID
 Maximum size
• 4MB for each block, and up to 50000 block
• Page Blob
 Provided a Windows Azure Driver (aka X-Driver)
 Random read/write
 Identify by a range
 Up to 1TB
X-Driver
• The underlying storage
• A mechanism for viewing
persistent storage as if it
were a local drive
• Implemented as a
Windows Azure Page
Blob containing an
NTFS-formatted Virtual
Hard Disk (VHD)
Table
• A simple structural data storage that can store
some structural data
 Similar to the EXIF information for describing a photo
• Table can be used as a lightweight database
• Entry is called as a line of data
• Every entry has a particular identifier which
contains Account Key and Table Key
Table
• Account Name and Table Name are used to specify
the account and table
• Partition Key is used to specify the same data on
different partitions
• Row Key is an identifier of row data
Partition Key Row Key Property 1 Property 2
Class Number Score 1 Score 2
Table A
entry
Class A No 1 A A+
Class A No 2 B- B- Partition 1

Class B No 1 B+ A-
Class B No 2 B+ B+ Partition 2
Class B No 3 A A-
Queue
• Queue usually is used between application’s
communication
• A queue consists of some slices
• Each slice contains 8 KB data
• There is a particular process to handle the queue
such that each slice is processed once
Queue

Message queuing Backend


A Large-size message Request Queue Processing
Backend
Multiple messages Server
Processing
Backend
Server
Web Server Processing
FE
Data location Server
Web Server
Front-End

Blob Store Table Store


Fabric

• Compute
• Storage
• Fabric
Windows Azure
Windows Azure - Fabric
• Windows Azure
provides an automatic
and autonomous way to
manage resources
 Automatically report and
recode the status of
machines
 Provide a control center
to perform failure
recovery when one or
many machines crash
Fabric Types
• Windows Azure supports two fabrics to control and
manage the machines and jobs
• Fabric Agent
 Each virtual machine has one fabric agent
 Report the status to fabric controller
 Provide user’s authentication and defense of attack
• Fabric Controller
 Monitor and control the virtual machine by fabric agent
 Manage the virtual machines, running environment and
software configuration
 Control the work flow
Example of Fabric
• The fabric controller interacts with Windows
Azure applications via the fabric agent
Fabric
• Fabric Agent records the status of machine and
reports to Fabric Controller

Who is
Who is alive?
available?
job

Me
Me Me

Machine

Fabric Agent

Fabric Controller
Windows Azure
SQL Azure
AppFabric

WINDOWS AZURE PLATFORM


SQL Azure
• In many situations,
enterprises or developers
might need to find the
relations between data
 Enterprises need a
database to store their
critical and mass data
• Windows Azure Platform
provides the SQL Azure to
approach data services
SQL Azure
• SQL Azure provides a cloud-based database
management system (DBMS) and data-oriented
services in the cloud
SQL Azure
• SQL Azure Database
 A relational database
 Supports Transact-SQL (T-SQL) language such that
customers can use exist data model to develop services
 Integrates with SQL Server, include Visual Studio,
development tools
 Reliable and scalable database on demand
• Limitation
 A query can run for only a limited time
 The maximum size of a single database is 10 GB
SQL Azure Database
• An application can use a single database or
multiple databases
 An application whose data
is within the limit can use
just one database
 An application with more
data will need to create
multiple databases
Architecture
Data Database Browser or
Application Server Service Client

Windows Azure
Cloud Applications

SQL Service Load Balancer

Service Layer (SQL Azure Gateway)

SQL Azure SQL Azure SQL Azure ………… SQL Azure


Backend Backend Backend Backend
TDS
Windows Azure Computes
HTTP
Architecture
• Application can access the proper database which
storing its data
 Coordinate by the SQL Azure Fabric service
 Link to a database via the connection routing
 Do not care about the exactly location of database
• Each connection between application and SQL
Azure could link to different database servers
 Provide a high availability
SQL Azure Gateway
SQL SQL Azure WCF Data
Native Client Management Portal Service
• SQL Azure Gateway is
the critical component Connection Admin Provisioning
 Access data Manager Endpoint Endpoint
Protocol
 Handle commands Parser
• With the Gateway, user
can ignore the detail of Business Logic Services
backend server Connection Manager
 Network topology
 System deployment
 Maintain method
SQL Azure Gateway
• Connecting to the gateway can access all
functionalities on SQL Azure
• Gateway will check the TDS (a communication
protocol used by SQL Server)
 Analyze malicious commands
 Authenticate the account
 Billing
• Gateway redirects TDS to the backend server, and
packs the result as a security TDS to client
Backend Server
• SQL Azure is build on Windows Azure’s computes
unit
 High available
 Distributed storage system

Other Server’s
SQL Azure Fabric
SQL Azure Fabric

Databases
SQL Server
Instance

Other Server’s
Management Service Management Service
Backend Server
• SQL Azure Fabric manages databases that stores
data in many SQL Azure nodes distributively
• SQL Azure Fabric controls the policy and
frequency of data replication
 Merge replication
 Transactional replication
• Access any one of SQL Azure service can link to the
proper database and get the correct data
Windows Azure
SQL Azure
AppFabric

WINDOWS AZURE PLATFORM


AppFabric
• AppFabric provides cloud-based infrastructure in
connecting distributed services and applications
AppFabric
• What AppFabric can do
 Make connections between applications possible
 Provide a service application for enterprise-level
architecture
 Based on open communication and standard of service,
venders provide the concept of service reusability

• Components
 Service Bus
• Makes connection simpler by letting an application expose endpoints
that can be accessed by other applications
 Access Control
• Provides the ability for applications with authentication and
authorization
Service Bus
• Service provider can register endpoints with Service Bus
• Service consumer can discover and use those endpoints to
access the service

Service Service
Consumer Provider
Service Bus
• AppFabric Service Bus supports two types of
communication mechanisms according to client
application
 Message reply
 Directly connect
• Client application can set the Hybrid connection
mode
 Try to use directly connect
 If Service Bus does not detect the direct connection,
use the message reply
Message Reply
Service application
(inside the cloud)

Service Bus

Service Bus
reply message
Service Registry
Client requests
the service by URL

Service application
Client
(outside the cloud)
Directly Connect
Service application
(inside the cloud)

Service Bus

Service Bus probes


a directly link if possible

Service application
Client
(outside the cloud)
Access Control
• Access Control service helps applications authenticate and
receive identity information about their client applications

Client Server
Application Application
Access Control
• Access control is a Single Sign-On (SSO) service for
service bus
 User accesses the service bus must be authenticated by the
access control
• User only needs a token when access multi-services
 The token can be recognized for multi-services in a period
of time
Scenarios
 Creating a web application with background
processing
 Using cloud storage from an on-premises or
hosted application

Windows Azure Platform


Scenario 1
• Web application with background processing
 Scalable
 Support a large number of simultaneous users
Scenario 2
• An on-premises or
hosted application can
use Blobs and Tables
to store its data in the
cloud
 Access is likely to be
slower, but
• Cheaper
• Scalable
• Reliable
Summary
• Microsoft Windows Azure platform could
 Support applications, data, and infrastructure in the cloud
 Provide a subset of SQL server’s functionality to support
the relational database and SQL-like queries
 Create an application whose code and data can exist either
on-premises or in the cloud
 Charge based on your usage
 Guarantee Guarantee Rate
 … External connection 99.95%
Web / Worker role process 99.9%
Success of insert, update, delete data 99.9%
Access of SQL azure 99.9% (per month)
Properties & Characteristics
• Scalability
 Provide scale-out compute/storage capability of handling very large amounts of
application/data
• Availability
 Provide the ability of failure tolerance such that application or service would not
stop on failure
• Manageability
 Let applications run continuously while minimizing the administrative effort
required
• In particular, customers do not worry about Windows patches
• Performance
 Provide load balancing to spread request across Web role instances and support
parallel processing with Worker role instances
• Accessibility
 Control and monitor running instances through the web portal or the
programming APIs
References
• Web resources:
 Microsoft Windows Azure.
http://www.microsoft.com/windowsazure/
 Chu’s blog. http://www.dotblogs.com.tw/regionbbs/
 From Wikipedia, the free encyclopedia.
• Book:
 小朱 , Windows Azure 教戰手札:您必須學會的微軟雲端開發技術 , 碁峰
2010
• All resources of the materials and pictures were
partially retrieved from the Internet

You might also like