The Definitive Guide to
Cloud Computing Dan
Sullivan
Chapter 5: Strategies for Moving to
the Cloud Computing
 This chapter focuses on how to plan for the
organizational and technical issues around
the
move to cloud computing. It is specifically
structured around three broad topics:
• Planning principles
• Architectural principles
• Use case scenarios
Outlines
 The first section: planning principles : describe a
process for understanding the current state of IT
services and framing them.
 In the second section: architectural principles. (
Examine issues such as scalability, manageability,
and service delivery in terms of design and
implementation issues )
 Third: Usecases - applying the planning and
architectural principles
1. Planning Principles
Understanding
where you are and where you are trying to go
With a clear and well‐defined set of requirements
Documentation
1.1: Prioritizing According to Business
Drivers
 Strategic objectives of an organization
• Reducing time to market in new product
development , Increasing productivity
• Reducing production costs
• Optimizing product distribution and delivery
• Increasing market share
• Increasing customer retention
1.1: Prioritizing According to Business
Drivers
1.2: Defining Requirements
 Problem: One app Vs. Multiple Apps
 It is difficult
 Examine existing systems
 Assess additional requirements going forward.
1.2.1: Existing Applications Infrastructure:
The Current State of Affairs
“An inventory of existing applications and
workloads is a valuable asset “
 Include in the inventory key information in three
areas:
• Business requirements and related details
• Technical and implementation requirements
• Operational details and requirements
1.2.1:
 Who responsible for a service
 how critical that service
 What strategic objective is served by the application
1.2.1.1: Technical details
Technical details catalog some of the implementation details
about existing services :
 Server configuration
 Workloads on servers
 Dependencies and interoperability considerations
 Use of shared resources, such as disk arrays
1.2.1
1.2.2: Additional Requirements for New
Applications
 Future changes should capture during this phase
Long-term Changes Examples:
Using cloud storage to store single copies of data that
are accessed by multiple applications rather than
duplicating data sets
• Reducing the number of ad hoc reporting tools as
users standardized on the “best of the breed” tools
offered in the cloud’s service catalog
• New applications, such as statistical analysis and data
mining of large customer transaction data sets enabled
by on‐demand access to compute and storage resources
1.2.3: Accessing Workload
 CPU, I/O intensive
 Consistent over time
 Peak demand periods
1.2.4: Capacity Planning
“especially important if you are implementing a private cloud”
 Estimate the overall capacity of cloud services
 Public cloud customers will also find this data
useful for budgeting and long‐term planning
 For hybrid cloud configurations, this type of detail can help you
understand when internal capacity will be exceeded and public
cloud resources will be required
1.2.5: Scheduling
 Some jobs are heavy so we need to schedule the jobs
 I/O and CPU intensive extraction jobs.
 Schedule jobs in an optimal manner:
 apply as per variations in pricing schedules

1.2.5.1: Bidding for scheduling
One way to globally optimize scheduling is with a bid/accept
model for pricing. Cloud consumers can bid a price for a
server or CPU time based on the value of having a particular
job run. If it is a high‐priority job, the customer will bid a
higher price; if the job can wait, the customer will bid less.
1.3: Cost Recovery
 Cover costs and earn a profit
(Total Cost of Providing Service / Number of Units
Consumed) = Cost Per Unit

1.4: Aligning Requirements to Cloud
Services
 At the end of the planning phase, we should have:
 A set of high‐level requirements for existing applications
that will move to the cloud described in terms of business,
technical, and operational requirements
 Rough estimates for new applications enabled by the cloud
 Workload information that can provide the basis for capacity
planning, scheduling, and cost recovery
2. Architectural Principles for Cloud
Services
“Maximize the utility of computing infrastructure”
Architectural principles focused on:
• Designing for scalability
• Designing for manageability
• Deploying layered technical services
• Delivering business services
Where is virtualization here?
Insert more
resources if
required , in
diagonal
2.1: Designing for Scalability
 Concerns about scalability affect both
 cloud providers : How ?
 cloud service consumers : How?

2.1.1:Providing Scalable Computing
Resources
“cloud scalability may look like just a matter of hardware”
 Some of these services and features include:
• Security services
• Standardized catalog of applications
• A service oriented architecture (SOA)
2.1.1.1: Security Services in the Cloud
“Security in the cloud looks much like security outside a
cloud environment”
Several security requirements are:
• Identity management
• Access controls
• Auditing and logging
• Vulnerability management and threat assessment
2.2: Standardized Catalog of Services
“Standardization at the platform and application
level comes with a standardized catalog of services”
 Instantiate virtual machines from catalog
 Data planning stages building the service catalog
 Service catalog provides foundation for users
2.3: SOA
“This model scales to different types of services”
 Under varying workload conditions
 Large number of services
 Should be as few dependencies as possible
between applications.
2.3.1: Using Cloud Services in Scalable Ways
 Avoid processing bottlenecks
Constraints: single server.
 Avoiding this type of bottleneck
1- round robin manner
2-partitioning workloads.
2.3.2: Scaling with Round Robin Load
Balancing
 Case: peak demands during the holiday shopping
period
 Many users all accessing the Web site
 Solution at CC:
- Retailer will deploy multiple Web servers each
hosting the same content
- A load balancer receives all HTTP requests
2.3.2: Scaling with Round Robin Load
Balancing
 Adv: no single server becomes a bottleneck
 high availability (failure of any one Web server, no
problem)
 shown in fig.
2.3.3: Partitioning by Data Characteristics /
to divide workloads
“Another way to scale applications is to divide
workloads by some characteristic of the data”.
• Geographic location of customer
• Distribution center fulfilling an order
• Product category
• Customer name
2.3.3: Partitioning by Data
Characteristics / to divide workloads
Partitioning
1. Partitions of the data
1.partition criteria without significant
overhead
2. geographic partitioning scheme
1.one area grows faster than the others, one
could subdivide the fast‐growing geographic
area into two subdivisions
2.3.3: Partitioning by Data
Characteristics / to divide workloads
 Storing it in different databases
 Geographic distribution is especially helpful in
localizing network traffic
 Multiple databases
Each with cache so that many requests can be
fulfilled (shown in fig)
2.4: Designing for Manageability
“Architectural principle that strongly
influences how we implement and consume
cloud services”
Three key points in this area are:
• Provisioning
• Monitoring
• Usage and accounting
Managing Cloud Provisioning
 Provisioning in the cloud is the process of
instantiating one or more virtual servers running a
particular machine image.
 This is a fairly straightforward task
but still requires management software to allow
non‐IT personnel to manage the process.
 Selecting a machine image to run on the virtual
machine
• Determining the time to start the virtual
instance
• Deploying additional applications needed to
process the particular workload
• Starting services on the virtual machine
• Executing a workflow
• Shutting down the virtual server
 Example, a workflow may require six virtual servers
running a Java application server and a load balancer for
distributing transactions across the six other servers. The
servers may be shut down at different times as the
workload varies or other application servers may be added
to the set of servers to meet peak demand. Easy‐to‐use
software is essential to low‐cost provisioning.
Monitoring Jobs in the Cloud
 Once servers are provisioned and jobs are
running, we will need to monitor them.
This includes tracking:
• CPU and memory utilization to determine
whether additional resources are required
or some should be shut down
• Disk I/O to ensure sufficient throughput
on I/O operations to meet requirements
and service level agreements (SLAs)
 • Application logs to look for adverse events or
warnings of potential problems
• Jobs and workflows running in the cloud,
including running time, resources allocated, and
costs for those resources
Usage and Accounting Reports
 Usage and accounting reports are especially
important for verify billing and analyzing
trends in cloud usage.
 Who is using cloud services
• Number of virtual servers run per job and
the duration of jobs
• Machine images instantiated in the cloud
 The amount and type of I/O operations
Cloud users may find these reports especially
useful for optimizing how they schedule jobs.
Unlike running a dedicated server, there are easily
controlled marginal costs associated with running
jobs in the cloud.
Deploying Layered Technical Services
 Cloud services are layered as:
• Infrastructure services
• Software platforms
• Applications and information services

Slides ch-5-the definitive guide to cloud computing -by- dan sullivan

  • 1.
    The Definitive Guideto Cloud Computing Dan Sullivan Chapter 5: Strategies for Moving to the Cloud Computing
  • 2.
     This chapterfocuses on how to plan for the organizational and technical issues around the move to cloud computing. It is specifically structured around three broad topics: • Planning principles • Architectural principles • Use case scenarios
  • 3.
    Outlines  The firstsection: planning principles : describe a process for understanding the current state of IT services and framing them.  In the second section: architectural principles. ( Examine issues such as scalability, manageability, and service delivery in terms of design and implementation issues )  Third: Usecases - applying the planning and architectural principles
  • 4.
    1. Planning Principles Understanding whereyou are and where you are trying to go With a clear and well‐defined set of requirements Documentation
  • 5.
    1.1: Prioritizing Accordingto Business Drivers  Strategic objectives of an organization • Reducing time to market in new product development , Increasing productivity • Reducing production costs • Optimizing product distribution and delivery • Increasing market share • Increasing customer retention
  • 6.
    1.1: Prioritizing Accordingto Business Drivers
  • 7.
    1.2: Defining Requirements Problem: One app Vs. Multiple Apps  It is difficult  Examine existing systems  Assess additional requirements going forward.
  • 8.
    1.2.1: Existing ApplicationsInfrastructure: The Current State of Affairs “An inventory of existing applications and workloads is a valuable asset “  Include in the inventory key information in three areas: • Business requirements and related details • Technical and implementation requirements • Operational details and requirements
  • 9.
    1.2.1:  Who responsiblefor a service  how critical that service  What strategic objective is served by the application
  • 10.
    1.2.1.1: Technical details Technicaldetails catalog some of the implementation details about existing services :  Server configuration  Workloads on servers  Dependencies and interoperability considerations  Use of shared resources, such as disk arrays
  • 12.
  • 13.
    1.2.2: Additional Requirementsfor New Applications  Future changes should capture during this phase Long-term Changes Examples: Using cloud storage to store single copies of data that are accessed by multiple applications rather than duplicating data sets • Reducing the number of ad hoc reporting tools as users standardized on the “best of the breed” tools offered in the cloud’s service catalog • New applications, such as statistical analysis and data mining of large customer transaction data sets enabled by on‐demand access to compute and storage resources
  • 14.
    1.2.3: Accessing Workload CPU, I/O intensive  Consistent over time  Peak demand periods
  • 15.
    1.2.4: Capacity Planning “especiallyimportant if you are implementing a private cloud”  Estimate the overall capacity of cloud services  Public cloud customers will also find this data useful for budgeting and long‐term planning  For hybrid cloud configurations, this type of detail can help you understand when internal capacity will be exceeded and public cloud resources will be required
  • 16.
    1.2.5: Scheduling  Somejobs are heavy so we need to schedule the jobs  I/O and CPU intensive extraction jobs.  Schedule jobs in an optimal manner:  apply as per variations in pricing schedules 
  • 17.
    1.2.5.1: Bidding forscheduling One way to globally optimize scheduling is with a bid/accept model for pricing. Cloud consumers can bid a price for a server or CPU time based on the value of having a particular job run. If it is a high‐priority job, the customer will bid a higher price; if the job can wait, the customer will bid less.
  • 18.
    1.3: Cost Recovery Cover costs and earn a profit (Total Cost of Providing Service / Number of Units Consumed) = Cost Per Unit 
  • 19.
    1.4: Aligning Requirementsto Cloud Services  At the end of the planning phase, we should have:  A set of high‐level requirements for existing applications that will move to the cloud described in terms of business, technical, and operational requirements  Rough estimates for new applications enabled by the cloud  Workload information that can provide the basis for capacity planning, scheduling, and cost recovery
  • 20.
    2. Architectural Principlesfor Cloud Services “Maximize the utility of computing infrastructure” Architectural principles focused on: • Designing for scalability • Designing for manageability • Deploying layered technical services • Delivering business services Where is virtualization here?
  • 21.
  • 23.
    2.1: Designing forScalability  Concerns about scalability affect both  cloud providers : How ?  cloud service consumers : How? 
  • 24.
    2.1.1:Providing Scalable Computing Resources “cloudscalability may look like just a matter of hardware”  Some of these services and features include: • Security services • Standardized catalog of applications • A service oriented architecture (SOA)
  • 25.
    2.1.1.1: Security Servicesin the Cloud “Security in the cloud looks much like security outside a cloud environment” Several security requirements are: • Identity management • Access controls • Auditing and logging • Vulnerability management and threat assessment
  • 27.
    2.2: Standardized Catalogof Services “Standardization at the platform and application level comes with a standardized catalog of services”  Instantiate virtual machines from catalog  Data planning stages building the service catalog  Service catalog provides foundation for users
  • 28.
    2.3: SOA “This modelscales to different types of services”  Under varying workload conditions  Large number of services  Should be as few dependencies as possible between applications.
  • 29.
    2.3.1: Using CloudServices in Scalable Ways  Avoid processing bottlenecks Constraints: single server.  Avoiding this type of bottleneck 1- round robin manner 2-partitioning workloads.
  • 30.
    2.3.2: Scaling withRound Robin Load Balancing  Case: peak demands during the holiday shopping period  Many users all accessing the Web site  Solution at CC: - Retailer will deploy multiple Web servers each hosting the same content - A load balancer receives all HTTP requests
  • 31.
    2.3.2: Scaling withRound Robin Load Balancing  Adv: no single server becomes a bottleneck  high availability (failure of any one Web server, no problem)  shown in fig.
  • 33.
    2.3.3: Partitioning byData Characteristics / to divide workloads “Another way to scale applications is to divide workloads by some characteristic of the data”. • Geographic location of customer • Distribution center fulfilling an order • Product category • Customer name
  • 34.
    2.3.3: Partitioning byData Characteristics / to divide workloads Partitioning 1. Partitions of the data 1.partition criteria without significant overhead 2. geographic partitioning scheme 1.one area grows faster than the others, one could subdivide the fast‐growing geographic area into two subdivisions
  • 35.
    2.3.3: Partitioning byData Characteristics / to divide workloads  Storing it in different databases  Geographic distribution is especially helpful in localizing network traffic  Multiple databases Each with cache so that many requests can be fulfilled (shown in fig)
  • 37.
    2.4: Designing forManageability “Architectural principle that strongly influences how we implement and consume cloud services” Three key points in this area are: • Provisioning • Monitoring • Usage and accounting
  • 38.
    Managing Cloud Provisioning Provisioning in the cloud is the process of instantiating one or more virtual servers running a particular machine image.  This is a fairly straightforward task but still requires management software to allow non‐IT personnel to manage the process.
  • 39.
     Selecting amachine image to run on the virtual machine • Determining the time to start the virtual instance • Deploying additional applications needed to process the particular workload • Starting services on the virtual machine • Executing a workflow • Shutting down the virtual server
  • 40.
     Example, aworkflow may require six virtual servers running a Java application server and a load balancer for distributing transactions across the six other servers. The servers may be shut down at different times as the workload varies or other application servers may be added to the set of servers to meet peak demand. Easy‐to‐use software is essential to low‐cost provisioning.
  • 41.
    Monitoring Jobs inthe Cloud  Once servers are provisioned and jobs are running, we will need to monitor them. This includes tracking: • CPU and memory utilization to determine whether additional resources are required or some should be shut down • Disk I/O to ensure sufficient throughput on I/O operations to meet requirements and service level agreements (SLAs)
  • 42.
     • Applicationlogs to look for adverse events or warnings of potential problems • Jobs and workflows running in the cloud, including running time, resources allocated, and costs for those resources
  • 43.
    Usage and AccountingReports  Usage and accounting reports are especially important for verify billing and analyzing trends in cloud usage.  Who is using cloud services • Number of virtual servers run per job and the duration of jobs • Machine images instantiated in the cloud
  • 44.
     The amountand type of I/O operations Cloud users may find these reports especially useful for optimizing how they schedule jobs. Unlike running a dedicated server, there are easily controlled marginal costs associated with running jobs in the cloud.
  • 45.
    Deploying Layered TechnicalServices  Cloud services are layered as: • Infrastructure services • Software platforms • Applications and information services