cost optimization as major architectural consideration for cloud application

Post on 20-Jun-2015

1.572 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Although it is generally believed that the biggest challenge of architecting a cloud application is security and reliability, there is another major dimension which is generally overlooked, which is, cost optimization. In response to a poll by Tech Republic on “What is the main risk with cloud computing?”, 59% of the participants identified data security to be the main concern and 20% thought it was reliability of the cloud services. The fact that the applications need to be designed differently to take advantage of cloud and thus reduce cost did not even enter into the consideration.Traditionally, actual cost of deployment has never directly been considered as a parameter of architectural tradeoffs. Specific parts of the application may get tuned based on the result of load testing. Post deployment, tuning may also happen if the response time is unacceptably slow. Since the hardware and software is a capital expenditure, the sizing is done to take care of future needs and initially there will always be unutilized capacity. So, once the initial investment is made, there is no incentive for spending effort on optimizing the application.But, when the application is deployed in the cloud it is no longer true. CIOs are taking a serious look at cloud computing for its promise of cost saving through “pay for what you use” philosophy. That implies:Don’t pay for unutilized resourcesLess resource consumed means more savingSo, for any cloud application, there will always be an incentive to build and optimize applications to consume lesser resources. Not only is there a paucity of available benchmarks and guidelines, but also the cloud scenario itself is constantly changing. To top that, major cloud platforms differ from each other and the right approach for one may be ineffective and even wrong for another. The best practices will evolve over a period of time but in the mean time, what does an architect do?

TRANSCRIPT

Cost Optimization as

Major Architectural Consideration

for

Cloud ApplicationUdayan Banerjee

udayan.banerjee@niit-tech.comhttp://setandbma.wordpress.com

Service provider with LARGE number of networked computer systems …

Allowing you to use a SLICE of that processing power and storage …

SHIELDING your program and data from others sharing the same service, and

Charging you only for your ACTUAL USAGE

New

Technology

Adoption

New Capability

SimplificationCost

Saving

Cloud

Computing

New Capability

Simplification

Cost

Saving

Cloud

Computing

New Capability

Simplification

Cost

Saving

You have no case

if hardware is already in

place

Cloud

Computing

New Capability

Simplification

Cost

Saving

Match movement to cloud with

Your hardware replacement cycle

You have no case

if hardware is already in

place

Elastic Capacity – Pay for what you actually use

Economy of Scale – Hardware, Infrastructure & Management

Productivity through Sharing – Better utilization of Resources

«»

Dedicated Server Hosting vs. Cloud On-demand Hosting

«»

Dedicated Server Hosting vs. Cloud On-demand Hosting

For Fixed capacityPrices are comparable

Elastic Capacity – Pay for what you actually use

Economy of Scale – Hardware, Infrastructure & Management

Productivity through Sharing – Better utilization of Resources

For You

For the Cloud Service Provider

Lo

ad

Bursting

Time

Lo

ad

Growing

Time

Lo

ad

Cyclic

Time

Lo

adOn and Off

Time

Lo

ad

Bursting

Time

Lo

ad

Growing

Time

Lo

ad

Cyclic

Time

Variable Load = Acquire and release resources when needed

Lo

adOn and Off

Time

Lo

ad

Bursting

Time

Lo

ad

Growing

Time

Lo

ad

Cyclic

Time

Variable Load = Acquire and release resources when needed

Lo

adOn and Off

Time

Infrastructure should support it

Application should be designed for it

Acquiring and releasing resources • What resource?• What is the unit?• How are you charged?

Depends of the provider

Google App Engine

Google App Engine

Acquiring and releasing resources • What resource?• What is the unit?• How are you charged?

Depends of the provider

Google App Engine

Acquiring and releasing resources • What resource?• What is the unit?• How are you charged?

Depends of the providerCPU Storage Bandwidth Data I/O

You have 4 parameters

to juggle with

CPU Storage Bandwidth Data I/OChoose from 9 available virtual machine configuration

Charged for the duration the machine in ON

Charged for the provisioned storage

Charged on actual volume

Charged on actual volume

CPU Storage Bandwidth Data I/OChoose from 9 available virtual machine configuration

Charged for the duration the machine in ON

Charged for the provisioned storage

Charged on actual volume

Charged on actual volume

For Elastic Capacity -Peak load should

require more than 1 CPU

CPU Storage Bandwidth Data I/OCharged based on actual CPU cycles used

Limit imposed on peak usage & total usage

Up to a level it is free

Charged for the actual data volume

Up to a level it is free

Charged on actual volume

Up to a level it is free

Charged on actual volume

Up to a level it is free

Google App Engine

CPU Storage Bandwidth Data I/OCharged based on actual CPU cycles used

Limit imposed on peak usage & total usage

Up to a level it is free

Charged for the actual data volume

Up to a level it is free

Charged on actual volume

Up to a level it is free

Charged on actual volume

Up to a level it is free

For Elastic Capacity -Taken care by cloud OS

You have no controlGoogle App Engine

CPU Storage Bandwidth Data I/OCharged for the duration an application is deployed

No specific option to select virtual machine configuration

Charged for the provisioned storage

Charged on actual volume

Charged on actual volume

CPU Storage Bandwidth Data I/OCharged for the duration an application is deployed

No specific option to select virtual machine configuration

Charged for the provisioned storage

Charged on actual volume

Charged on actual volume

For Elastic Capacity -Considerations similar

to Amazon

Cloud Computing is about cost saving

═ No variable load – no cost saving

═ Match Unit of scalability & Size of application

═ Pricing dictates tradeoff between CPU, Storage, Bandwidth & Data I/O

Think distributed – think parallel – it is different

═ Look beyond Relational Databases

═ Richer client – lesser server load – reduced cost

═ Measure – Measure – Measure

═ Learning from one platform not transferrable to another

Cost optimized design will become a moving target

Traditional thinking – Larger problem = LARGER machine

Cloud thinking – Larger problem = MANY machines

Traditional thinking – Larger problem = LARGER machine

Cloud thinking – Larger problem = MANY machines

Think Distributed

ThinkParallel

Traditional thinking – Larger problem = LARGER machine

Cloud thinking – Larger problem = MANY machines

Think Distributed

ThinkParallel

Algorithm Efficiency

Persistence Mechanism

Application Distribution

Design Pattern

Efficiency = Cost Saving

Changed Paradigm for …

New Breed of Algorithm

New Breed of Languages

March 1, 2010

March 11, 2010

?

March 1, 2010

March 11, 2010

?Managing distributed in

RDBMS have remained

a Technology Challenge

New Breed of Persistence Mechanism

Lesser Processing at Server

= Cost Saving

Lesser Processing at Server

= Cost Saving

Offline working Local storage 2 way communication with

server Rich Text Editor Support for 2D drawing

HTML5 ?

Cloud Computing is about cost saving

═ No variable load – no cost saving

═ Match Unit of scalability & Size of application

═ Pricing dictates tradeoff between CPU, Storage, Bandwidth & Data I/O

Think distributed – think parallel – it is different

═ Look beyond Relational Databases

═ Richer client – lesser server load – reduced cost

Cost optimized design will become a moving target

═ Learning from one platform not transferrable to another

═ Measure – Measure – Measure

What happens if the cost structure changes?

?

What happens if the cost structure changes?

?How do you know

which design pattern is more efficient for

cloud?

What happens if the cost structure changes?

?How do you know

which design pattern is more efficient for

cloud?

Are there more cost

saving potential post deployment?

What happens if the cost structure changes?

?How do you know

which design pattern is more efficient for

cloud?

Does EC2, GAE & Azure

work in similar way?

Are there more cost

saving potential post deployment?

Cloud Computing is about cost saving

═ No variable load – no cost saving

═ Match Unit of scalability & Size of application

═ Pricing dictates tradeoff between CPU, Storage, Bandwidth & Data I/O

Think distributed – think parallel – it is different

═ Look beyond Relational Databases

═ Richer client – lesser server load – reduced cost

Cost optimized design will become a moving target

═ Learning from one platform not transferrable to another

═ Measure – Measure – Measure

Cost Optimization as

Major Architectural Consideration

for

Cloud ApplicationUdayan Banerjee, CTO – NIIT Technologies Ltd.

udayan.banerjee@niit-tech.comhttp://setandbma.wordpress.com

top related