Writing Applications at Cloud Scaleby Matt RyanTuesday, May 7, 13
What is “Cloud Computing”?Pooled computing resources available to any subscriberAvailable over networkElasticity of resour...
Cloud Implications - ElasticityYour app needs to support any number of usersYour app needs to be able to run on any number...
Cloud Implications - Self-ServiceYour users can scale their usage up or down automatically on their ownThe resources your ...
Cloud ImplicationsYou have to assume your app is multi-machine and asynchronousYou have to rely on replacements for many o...
#!/usr/bin/env pythonfrom magic import magicianfrom voodoo import voodoo_fooclass uber_magic_foo(magician):def say_alakaza...
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 AppTuesday, May 7, 13
Your App Your AppYour AppYour App Your AppYour AppYour App Your AppYour AppTuesday, May 7, 13
Your AppTuesday, May 7, 13
Your AppComputeStorageMessagingConfigurationSecurityTuesday, May 7, 13
So why do I care?Tuesday, May 7, 13
Tuesday, May 7, 13
Demo: AudioFile v.1Tuesday, May 7, 13
Typical Approaches to ScalabilityUse multithreading / multiple processesProfile / look for hotspotsBatch file I/O / buffer /...
Demo: AudioFile v.2Tuesday, May 7, 13
Preparing for the cloudSegregate application from infrastructureIsolate components that can be replaced by cloud-based ser...
Demo: AudioFile v.3Tuesday, May 7, 13
A Cloud-Scale AppSQLite database replaced with MongoDBOther options: CouchDB, Cassandra, Redis...Threadpool replaced with ...
TakeawaysCloud apps are not just “on the Internet” — they are apps that perform atcloud scaleCloud scale apps have to be d...
Matt Ryan@mattvryanhttp://www.mvryan.orghttps://github.com/mattvryanTuesday, May 7, 13
LicensingSlide 7Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0Cloud: Public DomainSlide 8 - Dis...
Upcoming SlideShare
Loading in …5
×

Writing Applications at Cloud Scale

484 views

Published on

Presentation I gave at OpenWest 2013, uploaded for the benefit of those who attended and wanted to be able to download the slides.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
484
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Writing Applications at Cloud Scale

  1. 1. Writing Applications at Cloud Scaleby Matt RyanTuesday, May 7, 13
  2. 2. What is “Cloud Computing”?Pooled computing resources available to any subscriberAvailable over networkElasticity of resourcesSelf-servicing / automated resource deploymentMetered billingSource: The NIST Definition of Cloud Computing (http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)Tuesday, May 7, 13
  3. 3. Cloud Implications - ElasticityYour app needs to support any number of usersYour app needs to be able to run on any number of machinesYour app achieves scalability by adding machinesYour app needs to be built atop elastic resources and infrastructureTuesday, May 7, 13
  4. 4. Cloud Implications - Self-ServiceYour users can scale their usage up or down automatically on their ownThe resources your app uses can grow and shrink based on demandTuesday, May 7, 13
  5. 5. Cloud ImplicationsYou have to assume your app is multi-machine and asynchronousYou have to rely on replacements for many operating system primitivesProgramming language is not that important for scaleTuesday, May 7, 13
  6. 6. #!/usr/bin/env pythonfrom magic import magicianfrom voodoo import voodoo_fooclass 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
  7. 7. Tuesday, May 7, 13
  8. 8. Tuesday, May 7, 13
  9. 9. Tuesday, May 7, 13
  10. 10. Tuesday, May 7, 13
  11. 11. Tuesday, May 7, 13
  12. 12. Tuesday, May 7, 13
  13. 13. Your AppTuesday, May 7, 13
  14. 14. Your App Your AppYour AppYour App Your AppYour AppYour App Your AppYour AppTuesday, May 7, 13
  15. 15. Your AppTuesday, May 7, 13
  16. 16. Your AppComputeStorageMessagingConfigurationSecurityTuesday, May 7, 13
  17. 17. So why do I care?Tuesday, May 7, 13
  18. 18. Tuesday, May 7, 13
  19. 19. Demo: AudioFile v.1Tuesday, May 7, 13
  20. 20. Typical Approaches to ScalabilityUse multithreading / multiple processesProfile / look for hotspotsBatch file I/O / buffer / cacheCluster RDBMS / split or shard DBRewrite in C / AssemblyTuesday, May 7, 13
  21. 21. Demo: AudioFile v.2Tuesday, May 7, 13
  22. 22. Preparing for the cloudSegregate application from infrastructureIsolate components that can be replaced by cloud-based servicesFile storage, thread execution, database access...Simulate cloud computing metaphorsProducer/consumer, asynchronous processing...Tuesday, May 7, 13
  23. 23. Demo: AudioFile v.3Tuesday, May 7, 13
  24. 24. A Cloud-Scale AppSQLite database replaced with MongoDBOther options: CouchDB, Cassandra, Redis...Threadpool replaced with ActiveMQ + workersOther options: RabbitMQ, 0MQ, Starling...Other possibilities:Use Storm to manage producers and consumersUse Zookeeper to manage app configurationTuesday, May 7, 13
  25. 25. TakeawaysCloud apps are not just “on the Internet” — they are apps that perform atcloud scaleCloud scale apps have to be designed that way from the startCloud scale is the expectation for 21st century applicationsTuesday, May 7, 13
  26. 26. Matt Ryan@mattvryanhttp://www.mvryan.orghttps://github.com/mattvryanTuesday, May 7, 13
  27. 27. LicensingSlide 7Network cables: Source: http://www.freefoto.com, License: CC BY-NC-ND 3.0Cloud: Public DomainSlide 8 - Disc Drive: Source: Jeff Kubina, License: CC BY-SA 2.0Slide 9 - Padlock and Key: Public DomainSlide 10 - Wild Rabbits at Edinburgh Zoo: Source: Worm That Turned via Wikimedia Commons, License: CC BY-SA 3.0Slide 11 - Gear: Public DomainSlide 12 - Message in a Bottle: Source: copy-ninja-Alex, License: CC BY-NC-ND 3.0Slide 13 - Stockholm Public Library: Source: Marcus Hansson via Wikimedia Commons, License: CC BY 2.0Slide 19 - Garmin GPS: Source: Joe Gallagher, License: CC BY-NC-ND 2.0All other content: Created by Matt Ryan CC BY-SA 3.0Tuesday, May 7, 13

×