SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Kürzlich hochgeladen (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

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