Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 res...
Cloud Implications - Elasticity
Your app needs to support any number of users
Your app needs to be able to run on any numb...
Cloud Implications - Self-Service
Your users can scale their usage up or down automatically on their own
The resources you...
Cloud Implications
You have to assume your app is multi-machine and asynchronous
You have to rely on replacements for many...
#!/usr/bin/env python
from magic import magician
from voodoo import voodoo_foo
class uber_magic_foo(magician):
def say_ala...
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 / buffe...
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 s...
Demo: AudioFile v.3
Tuesday, May 7, 13
A Cloud-Scale App
SQLite database replaced with MongoDB
Other options: CouchDB, Cassandra, Redis...
Threadpool replaced wi...
Takeaways
Cloud apps are not just “on the Internet” — they are apps that perform at
cloud scale
Cloud scale apps have to b...
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 -...
Upcoming SlideShare
Loading in …5
×

of

Writing Applications at Cloud Scale Slide 1 Writing Applications at Cloud Scale Slide 2 Writing Applications at Cloud Scale Slide 3 Writing Applications at Cloud Scale Slide 4 Writing Applications at Cloud Scale Slide 5 Writing Applications at Cloud Scale Slide 6 Writing Applications at Cloud Scale Slide 7 Writing Applications at Cloud Scale Slide 8 Writing Applications at Cloud Scale Slide 9 Writing Applications at Cloud Scale Slide 10 Writing Applications at Cloud Scale Slide 11 Writing Applications at Cloud Scale Slide 12 Writing Applications at Cloud Scale Slide 13 Writing Applications at Cloud Scale Slide 14 Writing Applications at Cloud Scale Slide 15 Writing Applications at Cloud Scale Slide 16 Writing Applications at Cloud Scale Slide 17 Writing Applications at Cloud Scale Slide 18 Writing Applications at Cloud Scale Slide 19 Writing Applications at Cloud Scale Slide 20 Writing Applications at Cloud Scale Slide 21 Writing Applications at Cloud Scale Slide 22 Writing Applications at Cloud Scale Slide 23 Writing Applications at Cloud Scale Slide 24 Writing Applications at Cloud Scale Slide 25 Writing Applications at Cloud Scale Slide 26 Writing Applications at Cloud Scale Slide 27
Upcoming SlideShare
Writing likert scale questions
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

Writing Applications at Cloud Scale

Download to read offline

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

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Writing Applications at Cloud Scale

  1. 1. Writing Applications at Cloud Scale by Matt Ryan Tuesday, May 7, 13
  2. 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. 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. 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. 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. 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
  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 App Tuesday, May 7, 13
  14. 14. Your App Your AppYour App Your App Your AppYour App Your App Your AppYour App Tuesday, May 7, 13
  15. 15. Your App Tuesday, May 7, 13
  16. 16. Your App Compute Storage Messaging Configuration Security Tuesday, 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.1 Tuesday, May 7, 13
  20. 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
  21. 21. Demo: AudioFile v.2 Tuesday, May 7, 13
  22. 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
  23. 23. Demo: AudioFile v.3 Tuesday, May 7, 13
  24. 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. 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
  26. 26. Matt Ryan @mattvryan http://www.mvryan.org https://github.com/mattvryan Tuesday, May 7, 13
  27. 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

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

Views

Total views

602

On Slideshare

0

From embeds

0

Number of embeds

5

Actions

Downloads

4

Shares

0

Comments

0

Likes

0

×