The document summarizes a presentation about computational patterns for cloud applications. It discusses four key patterns: 1) Reclaimable resources, where cloud applications provision resources on demand and release them when not needed; 2) Harvesting services, where applications consume external services via APIs to simplify responsibilities; 3) Distributed systems, which are the foundation of infrastructure/services and require awareness of failure theory; and 4) Continuous everything, where the cloud enables continuous delivery through automation and testing. The presentation emphasizes leveraging cloud resources, services, and continuous delivery practices.
2. InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/cloud-compute-patterns
3. Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
8. Pre-Cloud Applications
We have an
application ready
for deployment
Ticket to
request
resources
( budgets )
Procurement
Roll to production
on a hand-crafted
server
Maintenance
Uptime
Burden
9. Cloud Applications
We have an
application ready
for deployment
Provision servers on
demand (via APIs) &
deploy to production
Maintenance ( for used
resources only)
Pay
Uptime
Burden
14. Excel at Process
Anticipate failure
and plan for it
Use postmortems, checklists,
retrospectives, and play-books
Take them seriously
Also know that state can bite
15. Everything is a recipe
Infrastructure is maintained as code
Resources are used to increase the
availability & redundancy of applications
“A self service
cloud makes
impossible things
instant”
@adrianco
17. Importance of
Monitoring &
Benchmarking
Know your baseline *
Alerting & monitoring
are critical
Benchmarking is still
misunderstood
18. What does
healthy mean?
Many elements in place to
determine health
These visualizations fail us.
We need better ones
Complexity is complex
19. What does
healthy mean?
Many elements in place to
determine health
These visualizations fail us.
We need better ones
Complexity is complex
Instance
provisioned?
IaaS
Firewalls
set up?
IaaS
Chef
succeeded?
PaaSVolumes
provisioned?
IaaS
Process
running?
Role
Replica
up?
PaaS
20. Resource families
match use cases
Some awareness is needed
Cloud resources are
different than hardware-
based
Capacity planning is tricky
21. Think about cloud
resources in fluid
terms: compute &
release
compute with: the cloud as A collection of disposable resources
* Awareness is not optional
23. App Design for the cloud
Surrender the filesystem1
Our app becomes an
aggregate of services
2
Consume services via APIs3
24. Service oriented architecture
NoSQL Distilled: Fowler & Sadalage
My awesome e-commerce site
Shopping cart &
session data
Completed
orders
Inventory and
item pricing
Session Storage
service
K/V Store
Order Persistence
service
Document Store
Inventory & Price
service
RDBMS
Nodes and
relations service
Graph Store
Recommendations
engine
37. with properties & constraints
* Tip: Read `Distributed systems and the end of the API in references
Distributed systems exhibit a
set of uniformly unintuitive
behaviors related to causality,
consistency, and availability *
47. CD and the importance of tests
Are they fast?
Can we trust them?
What coverage
do we have?
What type of tests?
* Don’t ignore their maintenance
Tests
are
critical
50. Any prod
deploy
Kicks off a
suite
Our testing evolution
Master
PRs
Kick off a
suite
Dredd
Tests
Systems,
boundaries, &
integration
Stacks
OS + Our
Image
Scenario
Live setup +
assertions
Suite
Collection of
scenarios
51. Any prod
deploy
Kicks off a
suite
Our testing evolution
Master
PRs
Kick off a
suite
Dredd
Tests
Systems,
boundaries, &
integration
Stacks
OS + Our
Image
Scenario
Live setup +
assertions
Suite
Collection of
scenarios
Are Databas es?
Inst al l ing
Ba cki ng Up
Re stor ing
Setti ng Up
Re p li c ation
Pro m ot ing
Re p li c as
Wr ite a b le
53. Many testing
choices. And a
random note.
Testing is critical and
frameworks should help by
streamlining choices
Automation helps with
process & certifications
(SOCS2)
54. All planning
tools suck
Stop thinking that a tool will fix
your agile problems
Continuous delivery can
make flaws in goals &
direction obvious. Is your
vision clear?
55. Cloud-based apps,
resources, and
services enable
agility
compute with: Cloud (resources, apps, services) as continuous
* “The bottleneck is never code or creativity; it's lack of clarity.”Scott Berkun
56. Quickly provision resources &
release them when they are
not needed
Reclaimable
Resources
Leverage services to simplify
areas of responsibility in our app
Harvesting
services
Theoretical foundation as a core
competency for correctness
Distributed
Systems
The holy grail. Will reshape your
company & make everything
awesome
Continuous
Delivery
tl;dr
this will save
you 40
minutes
57. Cloud computing next
“…This is how cloud computing will continue to
evolve. Developers will worry less about the
thousands of machines needed to run their
application and more about the design of the
application itself.” Eric Brewer