patterns for cloud computing
what applications make sense in the cloud?
- intro to cloud computing
- 5 patterns for cloud-based applications
- show implementations of patterns
how does it change what we do today?
common environments
1) application runs on premise
buy own, and control and repsonsibility (comes with price)
2) application runs at a hoster
renting machine, but fewer
Lower capability costs,but pay for fixed capacity, even if idle
3) application runs on cloud platform
pay someone for a pool of computing resources that can be applied to a set of applications
shared multitenant that is abstracted from underlying infrastructure that is pay as you go
NIST (cloud computing)
variants
public cloud
- pool computing resources offering through vendor
private cloud
- pool of computing resources that lies within not shared
Patterns
=====
#1) using the cloud for scale spikes
today start ordering hardware, need to call add servers, or maybe need more apps added, or need to partition try
browser ====> (NLB) web role ---> NLB (work role) ----> storage
repeat
antipattern is coupling between web role and worker role
process
web role ---> queue ---> worker role
1) web role (place in que)
2) resond to UI
3) pickup from queue
4) process
5) table
sepearte roles of loging and analysis to know how to scale by application
demo: prime solver
takeaways
core tenant scale up and scale down
understand how to communicate between roles and nodes
strategy on when to scale up/down roles in production (different for every app)
#2) using he cloud for muti-tenancy
browser --> web tier --> app tier ---> database
browser
schema customization in multitenant environmetn
3 options)
a) everybody uses same db
pro: easy to dev
con: no cusotmization, restoring difficult
b)give everyone there on database/schema
pro: flexible, high isolation
con: costly, difficut to upgrde db schemas
c) fixed database/schema
fix schema (shared value) then customization data for eg. postal /zip code
comes down to url approach given (VMC gicen a url based on that uri (mapping of url with cname)
considerations identity
#3) using the cloud for compute
(map reduce) master with that is mapped to workers
takeaways
mapreduce very visible, although can be difficult to initally grasp
lean about existing frameworks, especially hardoop
#4) Using the cloud for storage
server ---> data
- breaks affinitiy between your data and hardware
- how to store data (blobs (images,movies, etc), tables, relational)
takeaway
- storage in the cloud may loo the same, but breaks the affinity issue
#5) Using the cloud for communications
- have queues (rest based to go between companies tends to be bad idea with shared queues need to give security keys)
- proxy using own queue (bad too)
soluton service bus in cloud --> tcp relay and message buffer (opens bidriect socket kept alive in background)
company 1 ---> outbound one-way socket
>>> service bus
company 2 ---> outbound one-way socket
takeways
be careful ocnsuming REST bases on queues using shared secrets
firewalsl/nats ca be trouble
0 Responses to patterns for cloud computing
Something to say?