Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Building Highly Scalable Apps On Bluemix

1.520 Aufrufe

Veröffentlicht am

Horizontal scalability cannot be an afterthought, it must be part of your design and implementation. This deck contains patterns you can use while building your application to make sure your application will scale flawlessly in the cloud.

Veröffentlicht in: Software
  • Login to see the comments

Building Highly Scalable Apps On Bluemix

  1. 1. Building Highly Scalable Applications With Bluemix By: Ryan Baxter @ryanjbaxter 08/19/2014
  2. 2. What is Bluemix? 1 Bluemix is a cloud- based platform for building, managing, and running applications of all types.
  3. 3. What does it mean to be scalable? Applications are considered scalable when additional instances can be added to accommodate a growing workload. 2
  4. 4. By Scaling We Are Trying To Avoid This 3
  5. 5. How Did We Solve This Problem Before? 4
  6. 6. Scaling Horizontally Is Cheaper 5
  7. 7. We End Up With Something Like This 6 Load Balancer
  8. 8. Scalability cannot be an after-thought. 7
  9. 9. Lessen The Load  Load is the reason for scaling  We can lessen the load by diverting requests elsewhere  Use a content-delivery-network (CDN) for static resources  Libraries like JQuery, Bootstrap, etc can be delivered to clients more efficiently via a CDN while at the same time lessening the work of your app server  You can even put custom libraries on a CDN if it makes sense  Make everything you can cacheable!!! 8
  10. 10. Does this application scale? 9 Client Side Code App REST APIs Search Twitter Streams DBaaS
  11. 11. Is this really better? 1010 My App 1 DBaaS Client Side Code App REST APIs Search Twitter Streams Load Balancer My App 1 Client Side Code App N REST APIs Search Twitter Streams
  12. 12. Smaller Is Better 11 Client Side Code App REST APIs Twitter App Twitter Streams Search App Search DBaaS
  13. 13. Scaling The Web App 12 Twitter App Twitter Streams Client Side Code App N REST APIs Client Side Code App REST APIs Load Balancer Search App Search DBaaS
  14. 14. Pub/Sub To Distribute Data 13 Twitter App Twitter Streams Pub/Sub Client Side Code App N REST APIs Client Side Code App REST APIs Load Balancer DBaaS Search Not Shown For Simplicity
  15. 15. What About Search? 14 Client Side Code App N REST APIs Client Side Code App REST APIs Search App Search Load Balancer DBaaS Twitter Not Shown For Simplicity
  16. 16. Does This Make It Better? 15 Search App Search Client Side Code App N REST APIs Client Side Code App REST APIs Search App N Search Load Balancer Load Balancer DBaaS Twitter Not Shown For Simplicity
  17. 17. Lets Use A Queue 16 Search Worker Search Client Side Code App N REST APIs Client Side Code App REST APIs Search Worker N Search Load Balancer Search Queue DBaaS Twitter Not Shown For Simplicity
  18. 18. What About The Database?  Our application scales nicely, we have small modular components that focus on specific tasks  However in some cases we can only respond as fast as our database operations perform  We can have all the worker threads we want to handle search but if the DB is busy they can’t do much. 17
  19. 19. Use A Caching Service 18 Search Worker Search DBaaS Client Side Code App N REST APIs Client Side Code App REST APIs Search Worker N Search Search Queue Data Cache Twitter App Twitter Streams Pub/Sub Load Balancer
  20. 20. Caching Services 19 Message Queue Services Pub/Sub Services
  21. 21. Storing State Within The Application 20 Chat App Hi There Hi Ryan
  22. 22. Inconsistent State When Scaled 21 Chat App Hi There Chat App N Hi Ryan Load Balancer
  23. 23. Store State In A Common Store 22 Chat App My Chat App N Load Balancer Hi There Hi Ryan Data Store Chat App N
  24. 24. Auto-Scaling  You can manually scale applications using the command line or the Bluemix UI  Use the auto-scaling service to avoid having to scale manually…it’s FREE!!!  Works with Java Liberty, Node.js, and Ruby runtimes  Java – scale based on CPU, JVM Heap, Memory  Node.js – scale based on CPU and Memory  Ruby – scale based on Memory 23
  25. 25. DEMO 24
  26. 26. Additional Resources  http://12factor.net/ - Great rules to follow for building scalable cloud applications  http://www.amazon.co.uk/Building-Scalable-Web-Sites- Henderson/dp/0596102356 - Book on building scalable websites  http://www.ibm.com/developerworks/cloud/library/cl- bluemix-node-redis-app/index.html - dW article on BlueChatter App  http://developer.ibm.com/bluemix - All things Bluemix 25
  27. 27. Additional Resources  https://www.ibm.com/developerworks/cloud/library/cl- bluemix-autoscale/ - Scaling Applications On Bluemix  http://www.pivotal.io/platform-as-a-service/cloud- foundry-summit-2014 - Talks on microservices which are relevant to scalability 26
  28. 28. Thank you. Get Started: www.bluemix.net @IBMBluemix https://www.facebook.com/ibmbluemix

×