architecting for the cloud
play

Architecting for the Cloud Horizontal Scalability via Transient, - PowerPoint PPT Presentation

Architecting for the Cloud Horizontal Scalability via Transient, Shardable, Share-Nothing Resources Adam Wiggins QCon 2009 Thursday, November 19, 2009 Thursday, November 19, 2009 Heroku is home to over 40,000 applications Thursday,


  1. Architecting for the Cloud Horizontal Scalability via Transient, Shardable, Share-Nothing Resources Adam Wiggins QCon 2009 Thursday, November 19, 2009

  2. Thursday, November 19, 2009

  3. Heroku is home to over 40,000 applications Thursday, November 19, 2009

  4. Automatically scaling apps - without code changes Thursday, November 19, 2009

  5. Enabling factors: Thursday, November 19, 2009

  6. Enabling factors: • Virtualization Thursday, November 19, 2009

  7. Enabling factors: • Virtualization • Cloud (virtualization as a service) Thursday, November 19, 2009

  8. Cloud is about horizontal scalability Thursday, November 19, 2009

  9. Scale out instead of up to avoid the ceiling of Moore’s law Thursday, November 19, 2009

  10. Taking advantage of cloud: shardable resources Thursday, November 19, 2009

  11. Resources, aka software infrastructure: • Database • Caching • HTTP router • Message bus Thursday, November 19, 2009

  12. The father of modern shardable resources: memcached Thursday, November 19, 2009

  13. “hashtable in the sky” Thursday, November 19, 2009

  14. Built by one of the first web-scale produts: LiveJournal Thursday, November 19, 2009

  15. Facebook: 800 memcached servers supplying 28 terrabytes of memory http://www.facebook.com/note.php?note_id=39391378919 Thursday, November 19, 2009

  16. Pricinples • Transient • Shardable • Share-nothing Thursday, November 19, 2009

  17. Transient Any node in the cluster can be lost Thursday, November 19, 2009

  18. Shardable Client lookup by hashring Thursday, November 19, 2009

  19. Thursday, November 19, 2009

  20. Share nothing Nodes are unaware of each other Thursday, November 19, 2009

  21. Is memcached is cheating? Thursday, November 19, 2009

  22. CouchDB Thursday, November 19, 2009

  23. CouchDB • Document database Thursday, November 19, 2009

  24. CouchDB • Document database • Eventual consistency Thursday, November 19, 2009

  25. CouchDB • Document database • Eventual consistency • MVCC Thursday, November 19, 2009

  26. Eventually consistent Thursday, November 19, 2009

  27. Multiversion concurrency control instead of locking Thursday, November 19, 2009

  28. Comparable to a distributed source control system Thursday, November 19, 2009

  29. Transient No master server Thursday, November 19, 2009

  30. Shardable Clients can go to any server Thursday, November 19, 2009

  31. Share nothing Nodes communicate only when asked to replicate Thursday, November 19, 2009

  32. CouchDB: The Definitive Guide http://books.couchdb.org/relax/ Thursday, November 19, 2009

  33. Hadoop big data processing • MapReduce • Cut big data into small chunks • Cut big work into distributable jobs http://hadoop.apache.org/ Thursday, November 19, 2009

  34. Redis key-value store • Like memcached with persistence • Shards with hashring • Lists and sets • Extremely fast and lightweight http://code.google.com/p/redis/ Thursday, November 19, 2009

  35. Varnish http cache • Like Squid, but horizontally scalable • Combine with ngx_http_upstream_consistent_hash for hashring-style access http://varnish.projects.linpro.no/ http://wiki.nginx.org/NginxHttpUpstreamConsistentHash Thursday, November 19, 2009

  36. RabbitMQ message bus • Job queueing • Cluster broadcast via exchanges • Cross-language http://www.rabbitmq.com/ Thursday, November 19, 2009

  37. Erlang functional language • High concurrency • No mutable variables • Lightweight processes http://www.erlang.org/ Thursday, November 19, 2009

  38. Horizontal scalability promises to shatter the glass ceiling of vertical scale Thursday, November 19, 2009

  39. ...but only if we architect resources to be transient, shardable, and share-nothing Thursday, November 19, 2009

  40. The End. http://heroku.com Adam Wiggins http://adam.blog.heroku.com Thursday, November 19, 2009

Recommend


More recommend