Building Highly Scalable Apps On Bluemix

download Building Highly Scalable Apps On Bluemix

of 28

  • date post

    21-Jan-2015
  • Category

    Software

  • view

    253
  • download

    0

Embed Size (px)

description

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.

Transcript of Building Highly Scalable Apps On Bluemix

  • 1. Building Highly Scalable Applications With Bluemix By: Ryan Baxter @ryanjbaxter 08/19/2014

2. What is Bluemix? 1 Bluemix is a cloud- based platform for building, managing, and running applications of all types. 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. By Scaling We Are Trying To Avoid This 3 5. How Did We Solve This Problem Before? 4 6. Scaling Horizontally Is Cheaper 5 7. We End Up With Something Like This 6 Load Balancer 8. Scalability cannot be an after-thought. 7 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. Does this application scale? 9 Client Side Code App REST APIs Search Twitter Streams DBaaS 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. Smaller Is Better 11 Client Side Code App REST APIs Twitter App Twitter Streams Search App Search DBaaS 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. 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. 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. 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. 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. 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 cant do much. 17 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. Caching Services 19 Message Queue Services Pub/Sub Services 21. Storing State Within The Application 20 Chat App Hi There Hi Ryan 22. Inconsistent State When Scaled 21 Chat App Hi There Chat App N Hi Ryan Load Balancer 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. 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 manuallyits 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. DEMO 24 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. 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. Thank you. Get Started: www.bluemix.net @IBMBluemix https://www.facebook.com/ibmbluemix