Date post: | 10-Jun-2015 |
Category: |
Technology |
Upload: | ibm-bluemix |
View: | 187 times |
Download: | 3 times |
Building Highly Scalable Applications With Bluemix
By: Ryan Baxter@ryanjbaxter08/19/2014
What is Bluemix?
2
Bluemix is a cloud-based platform for building, managing, and running applications of all types.
What does it mean to be scalable?
Applications are considered scalable when additional instances can be added to accommodate a growing workload.
3
By Scaling We Are Trying To Avoid This
4
How Did We Solve This Problem Before?
5
Scaling Horizontally Is Cheaper
6
We End Up With Something Like This
7
Load Balancer
Scalability cannot be an after-thought.
8
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!!!
9
Does this application scale?
10
Client Side Code
App
REST APIs
Search Twitter Streams
DBaaS
Is this really better?
1111
My App 1
DBaaS
Client Side Code
App
REST APIs
Search
Twitter Streams
Load Balancer
My App 1Client Side Code
App N
REST APIs
Search
Twitter Streams
Smaller Is Better
12
Client Side Code
App
REST APIs
Twitter App
Twitter StreamsSearch App
Search
DBaaS
Scaling The Web App
13
Twitter App
Twitter Streams
Client Side Code
App N
REST APIs
Client Side Code
App
REST APIs
Load Balancer
Search App
Search
DBaaS
Pub/Sub To Distribute Data
14
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
What About Search?
15
Client Side Code
App N
REST APIs
Client Side Code
App
REST APIs
Search App
Search
Load Balancer
DBaaS
Twitter Not Shown For Simplicity
Does This Make It Better?
16
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
Lets Use A Queue
17
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
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.
18
Use A Caching Service
19
Search Worker
Search
DBaaSClient Side Code
App N
REST APIs
Client Side Code
App
REST APIs
Search Worker NSearch
Search Queue
Data Cache
Twitter App
Twitter Streams
Pub/Sub
Load Balancer
Caching Services
20
Message Queue Services
Pub/Sub Services
Storing State Within The Application
21
Chat App
Hi There
Hi Ryan
Inconsistent State When Scaled
22
Chat App
Hi There
Chat App N
Hi Ryan
Load Balancer
Store State In A Common Store
23
Chat App
My Chat App N
Load Balancer
Hi There
Hi Ryan
Data Store
Chat App N
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
24
DEMO
25
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
26
Additional Resources https://www.ibm.com/developerworks/cloud/libr
ary/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
27
Thank you.Get Started: www.bluemix.net
@IBMBluemix
https://www.facebook.com/ibmbluemix