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
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