SlideShare a Scribd company logo
1 of 27
Download to read offline
Writing Applications at Cloud Scale
by Matt Ryan
Tuesday, May 7, 13
What is “Cloud Computing”?
Pooled computing resources available to any subscriber
Available over network
Elasticity of resources
Self-servicing / automated resource deployment
Metered billing
Source: The NIST Definition of Cloud Computing (http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)
Tuesday, May 7, 13
Cloud Implications - Elasticity
Your app needs to support any number of users
Your app needs to be able to run on any number of machines
Your app achieves scalability by adding machines
Your app needs to be built atop elastic resources and infrastructure
Tuesday, May 7, 13
Cloud Implications - Self-Service
Your users can scale their usage up or down automatically on their own
The resources your app uses can grow and shrink based on demand
Tuesday, May 7, 13
Cloud Implications
You have to assume your app is multi-machine and asynchronous
You have to rely on replacements for many operating system primitives
Programming language is not that important for scale
Tuesday, May 7, 13
#!/usr/bin/env python
from magic import magician
from voodoo import voodoo_foo
class uber_magic_foo(magician):
def say_alakazam(self):
voodoo_foo()
self.impress_audience()
if __name__ == ‘__main__’:
umf = uber_magic_foo()
umf.say_alakazam()
+
≠
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Tuesday, May 7, 13
Your App
Tuesday, May 7, 13
Your App Your AppYour App
Your App Your AppYour App
Your App Your AppYour App
Tuesday, May 7, 13
Your App
Tuesday, May 7, 13
Your App
Compute
Storage
Messaging
Configuration
Security
Tuesday, May 7, 13
So why do I care?
Tuesday, May 7, 13
Tuesday, May 7, 13
Demo: AudioFile v.1
Tuesday, May 7, 13
Typical Approaches to Scalability
Use multithreading / multiple processes
Profile / look for hotspots
Batch file I/O / buffer / cache
Cluster RDBMS / split or shard DB
Rewrite in C / Assembly
Tuesday, May 7, 13
Demo: AudioFile v.2
Tuesday, May 7, 13
Preparing for the cloud
Segregate application from infrastructure
Isolate components that can be replaced by cloud-based services
File storage, thread execution, database access...
Simulate cloud computing metaphors
Producer/consumer, asynchronous processing...
Tuesday, May 7, 13
Demo: AudioFile v.3
Tuesday, May 7, 13
A Cloud-Scale App
SQLite database replaced with MongoDB
Other options: CouchDB, Cassandra, Redis...
Threadpool replaced with ActiveMQ + workers
Other options: RabbitMQ, 0MQ, Starling...
Other possibilities:
Use Storm to manage producers and consumers
Use Zookeeper to manage app configuration
Tuesday, May 7, 13
Takeaways
Cloud apps are not just “on the Internet” — they are apps that perform at
cloud scale
Cloud scale apps have to be designed that way from the start
Cloud scale is the expectation for 21st century applications
Tuesday, May 7, 13
Matt Ryan
@mattvryan
http://www.mvryan.org
https://github.com/mattvryan
Tuesday, May 7, 13
Licensing
Slide 7
Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0
Cloud: Public Domain
Slide 8 - Disc Drive: Source: Jeff Kubina, License: CC BY-SA 2.0
Slide 9 - Padlock and Key: Public Domain
Slide 10 - Wild Rabbits at Edinburgh Zoo: Source: Worm That Turned via Wikimedia Commons, License: CC BY-SA 3.0
Slide 11 - Gear: Public Domain
Slide 12 - Message in a Bottle: Source: copy-ninja-Alex, License: CC BY-NC-ND 3.0
Slide 13 - Stockholm Public Library: Source: Marcus Hansson via Wikimedia Commons, License: CC BY 2.0
Slide 19 - Garmin GPS: Source: Joe Gallagher, License: CC BY-NC-ND 2.0
All other content: Created by Matt Ryan CC BY-SA 3.0
Tuesday, May 7, 13

More Related Content

Similar to Writing Applications at Cloud Scale

Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...IIJSRJournal
 
Cloud computing
Cloud computingCloud computing
Cloud computingSyam Lal
 
Synopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant uptaSynopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant uptaPrashant Gupta
 
Cloud computing and its application in libraries
Cloud computing and its application in librariesCloud computing and its application in libraries
Cloud computing and its application in librariesNabi Hasan
 
A STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGEA STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGEDaniel Wachtel
 
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...IOSR Journals
 
From Grid to Cloud
From Grid to CloudFrom Grid to Cloud
From Grid to Cloudgojkoadzic
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.pptMunmunSaha7
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.pptahmedraed19
 

Similar to Writing Applications at Cloud Scale (20)

About clouds
About cloudsAbout clouds
About clouds
 
pptseminar.pptx
pptseminar.pptxpptseminar.pptx
pptseminar.pptx
 
Above theclouds
Above thecloudsAbove theclouds
Above theclouds
 
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Synopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant uptaSynopsis on cloud computing by Prashant upta
Synopsis on cloud computing by Prashant upta
 
Cloud computing and its application in libraries
Cloud computing and its application in librariesCloud computing and its application in libraries
Cloud computing and its application in libraries
 
A STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGEA STUDY ON CLOUD STORAGE
A STUDY ON CLOUD STORAGE
 
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
Implementing SAAS: Cloud Computing and Android Based Application Framework fo...
 
Ey35869874
Ey35869874Ey35869874
Ey35869874
 
From Grid to Cloud
From Grid to CloudFrom Grid to Cloud
From Grid to Cloud
 
Cloud Computing Neccesity
Cloud Computing  NeccesityCloud Computing  Neccesity
Cloud Computing Neccesity
 
cloud computing by satwik
cloud computing by satwikcloud computing by satwik
cloud computing by satwik
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloudcoputing
CloudcoputingCloudcoputing
Cloudcoputing
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 
cloudintro-lec01.ppt
cloudintro-lec01.pptcloudintro-lec01.ppt
cloudintro-lec01.ppt
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Writing Applications at Cloud Scale

  • 1. Writing Applications at Cloud Scale by Matt Ryan Tuesday, May 7, 13
  • 2. What is “Cloud Computing”? Pooled computing resources available to any subscriber Available over network Elasticity of resources Self-servicing / automated resource deployment Metered billing Source: The NIST Definition of Cloud Computing (http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf) Tuesday, May 7, 13
  • 3. Cloud Implications - Elasticity Your app needs to support any number of users Your app needs to be able to run on any number of machines Your app achieves scalability by adding machines Your app needs to be built atop elastic resources and infrastructure Tuesday, May 7, 13
  • 4. Cloud Implications - Self-Service Your users can scale their usage up or down automatically on their own The resources your app uses can grow and shrink based on demand Tuesday, May 7, 13
  • 5. Cloud Implications You have to assume your app is multi-machine and asynchronous You have to rely on replacements for many operating system primitives Programming language is not that important for scale Tuesday, May 7, 13
  • 6. #!/usr/bin/env python from magic import magician from voodoo import voodoo_foo class uber_magic_foo(magician): def say_alakazam(self): voodoo_foo() self.impress_audience() if __name__ == ‘__main__’: umf = uber_magic_foo() umf.say_alakazam() + ≠ Tuesday, May 7, 13
  • 14. Your App Your AppYour App Your App Your AppYour App Your App Your AppYour App Tuesday, May 7, 13
  • 17. So why do I care? Tuesday, May 7, 13
  • 20. Typical Approaches to Scalability Use multithreading / multiple processes Profile / look for hotspots Batch file I/O / buffer / cache Cluster RDBMS / split or shard DB Rewrite in C / Assembly Tuesday, May 7, 13
  • 22. Preparing for the cloud Segregate application from infrastructure Isolate components that can be replaced by cloud-based services File storage, thread execution, database access... Simulate cloud computing metaphors Producer/consumer, asynchronous processing... Tuesday, May 7, 13
  • 24. A Cloud-Scale App SQLite database replaced with MongoDB Other options: CouchDB, Cassandra, Redis... Threadpool replaced with ActiveMQ + workers Other options: RabbitMQ, 0MQ, Starling... Other possibilities: Use Storm to manage producers and consumers Use Zookeeper to manage app configuration Tuesday, May 7, 13
  • 25. Takeaways Cloud apps are not just “on the Internet” — they are apps that perform at cloud scale Cloud scale apps have to be designed that way from the start Cloud scale is the expectation for 21st century applications Tuesday, May 7, 13
  • 27. Licensing Slide 7 Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0 Cloud: Public Domain Slide 8 - Disc Drive: Source: Jeff Kubina, License: CC BY-SA 2.0 Slide 9 - Padlock and Key: Public Domain Slide 10 - Wild Rabbits at Edinburgh Zoo: Source: Worm That Turned via Wikimedia Commons, License: CC BY-SA 3.0 Slide 11 - Gear: Public Domain Slide 12 - Message in a Bottle: Source: copy-ninja-Alex, License: CC BY-NC-ND 3.0 Slide 13 - Stockholm Public Library: Source: Marcus Hansson via Wikimedia Commons, License: CC BY 2.0 Slide 19 - Garmin GPS: Source: Joe Gallagher, License: CC BY-NC-ND 2.0 All other content: Created by Matt Ryan CC BY-SA 3.0 Tuesday, May 7, 13