Cost Optimization as Major Architectural Consideration for Cloud Application

44
Cost Optimization as Major Architectural Consideration for Cloud Application Udayan Banerjee [email protected] http://setandbma.wordpress.com

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 of Cost Optimization as Major Architectural Consideration for Cloud Application

Page 1: Cost Optimization as Major Architectural Consideration for Cloud Application

Cost Optimization as

Major Architectural Consideration

for

Cloud ApplicationUdayan Banerjee

[email protected]://setandbma.wordpress.com

Page 2: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 3: Cost Optimization as Major Architectural Consideration for Cloud Application

New

Technology

Adoption

New Capability

SimplificationCost

Saving

Page 4: Cost Optimization as Major Architectural Consideration for Cloud Application

Cloud

Computing

New Capability

Simplification

Cost

Saving

Page 5: Cost Optimization as Major Architectural Consideration for Cloud Application

Cloud

Computing

New Capability

Simplification

Cost

Saving

You have no case

if hardware is already in

place

Page 6: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 7: Cost Optimization as Major Architectural Consideration for Cloud Application

Elastic Capacity – Pay for what you actually use

Economy of Scale – Hardware, Infrastructure & Management

Productivity through Sharing – Better utilization of Resources

Page 8: Cost Optimization as Major Architectural Consideration for Cloud Application

«»

Dedicated Server Hosting vs. Cloud On-demand Hosting

Page 9: Cost Optimization as Major Architectural Consideration for Cloud Application

«»

Dedicated Server Hosting vs. Cloud On-demand Hosting

For Fixed capacityPrices are comparable

Page 10: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 11: Cost Optimization as Major Architectural Consideration for Cloud Application

Lo

ad

Bursting

Time

Lo

ad

Growing

Time

Lo

ad

Cyclic

Time

Lo

adOn and Off

Time

Page 12: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 13: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 14: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Depends of the provider

Google App Engine

Page 15: Cost Optimization as Major Architectural Consideration for Cloud Application

Google App Engine

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

Depends of the provider

Page 16: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 17: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 18: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 19: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 20: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 21: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 22: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 23: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 24: Cost Optimization as Major Architectural Consideration for Cloud Application

Traditional thinking – Larger problem = LARGER machine

Cloud thinking – Larger problem = MANY machines

Page 25: Cost Optimization as Major Architectural Consideration for Cloud Application

Traditional thinking – Larger problem = LARGER machine

Cloud thinking – Larger problem = MANY machines

Think Distributed

ThinkParallel

Page 26: Cost Optimization as Major Architectural Consideration for Cloud Application

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 …

Page 27: Cost Optimization as Major Architectural Consideration for Cloud Application
Page 28: Cost Optimization as Major Architectural Consideration for Cloud Application

New Breed of Algorithm

Page 29: Cost Optimization as Major Architectural Consideration for Cloud Application
Page 30: Cost Optimization as Major Architectural Consideration for Cloud Application

New Breed of Languages

Page 31: Cost Optimization as Major Architectural Consideration for Cloud Application

March 1, 2010

March 11, 2010

?

Page 32: Cost Optimization as Major Architectural Consideration for Cloud Application

March 1, 2010

March 11, 2010

?Managing distributed in

RDBMS have remained

a Technology Challenge

Page 33: Cost Optimization as Major Architectural Consideration for Cloud Application

New Breed of Persistence Mechanism

Page 34: Cost Optimization as Major Architectural Consideration for Cloud Application
Page 35: Cost Optimization as Major Architectural Consideration for Cloud Application
Page 36: Cost Optimization as Major Architectural Consideration for Cloud Application

Lesser Processing at Server

= Cost Saving

Page 37: Cost Optimization as Major Architectural Consideration for Cloud Application

Lesser Processing at Server

= Cost Saving

Offline working Local storage 2 way communication with

server Rich Text Editor Support for 2D drawing

HTML5 ?

Page 38: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 39: Cost Optimization as Major Architectural Consideration for Cloud Application

What happens if the cost structure changes?

?

Page 40: Cost Optimization as Major Architectural Consideration for Cloud Application

What happens if the cost structure changes?

?How do you know

which design pattern is more efficient for

cloud?

Page 41: Cost Optimization as Major Architectural Consideration for Cloud Application

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?

Page 42: Cost Optimization as Major Architectural Consideration for Cloud Application

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?

Page 43: Cost Optimization as Major Architectural Consideration for Cloud Application

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

Page 44: Cost Optimization as Major Architectural Consideration for Cloud Application

Cost Optimization as

Major Architectural Consideration

for

Cloud ApplicationUdayan Banerjee, CTO – NIIT Technologies Ltd.

[email protected]://setandbma.wordpress.com