SlideShare a Scribd company logo
1 of 28
Building Highly Scalable Applications
With Bluemix
By: Ryan Baxter
@ryanjbaxter
08/19/2014
What is Bluemix?
1
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.
2
By Scaling We Are Trying To Avoid This
3
How Did We Solve This Problem
Before?
4
Scaling Horizontally Is Cheaper
5
We End Up With Something Like This
6
Load
Balancer
Scalability cannot be an after-thought.
7
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
Does this application scale?
9
Client Side
Code
App
REST APIs
Search
Twitter
Streams
DBaaS
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
Smaller Is Better
11
Client Side Code
App
REST APIs
Twitter App
Twitter Streams
Search App
Search
DBaaS
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
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
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
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
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
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
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
Caching Services
19
Message Queue Services
Pub/Sub Services
Storing State Within The Application
20
Chat App
Hi There
Hi Ryan
Inconsistent State When Scaled
21
Chat App
Hi There
Chat App N
Hi Ryan
Load
Balancer
Store State In A Common Store
22
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
23
DEMO
24
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
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
Thank you.
Get Started: www.bluemix.net
@IBMBluemix
https://www.facebook.com/ibmbluemix

More Related Content

What's hot

Migrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for EnterprisesMigrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for EnterprisesVMware Tanzu
 
Back your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryBack your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryKenny Bastani
 
Microsoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop SlidesMicrosoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop SlidesVMware Tanzu
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureTouraj Ebrahimi
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureSlim Ouertani
 
The Agile Roots of Microservices
The Agile Roots of MicroservicesThe Agile Roots of Microservices
The Agile Roots of MicroservicesMatt McLarty
 
Building Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringBuilding Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringKenny Bastani
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDaniel Berg
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackNodejsFoundation
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyCloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyVMware Tanzu
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice PlatformDaniel Reuther
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyFrom Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyVMware Tanzu
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 

What's hot (20)

Migrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for EnterprisesMigrating .NET Apps to CF, A Strategy for Enterprises
Migrating .NET Apps to CF, A Strategy for Enterprises
 
Back your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud FoundryBack your app with MySQL and Redis on Cloud Foundry
Back your app with MySQL and Redis on Cloud Foundry
 
Microsoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop SlidesMicrosoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop Slides
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
The Agile Roots of Microservices
The Agile Roots of MicroservicesThe Agile Roots of Microservices
The Agile Roots of Microservices
 
Building Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringBuilding Cloud Native Architectures with Spring
Building Cloud Native Architectures with Spring
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Developing Hybrid Cloud Applications
Developing Hybrid Cloud ApplicationsDeveloping Hybrid Cloud Applications
Developing Hybrid Cloud Applications
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStack
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg ZhurakouskyCloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice Platform
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyFrom Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 

Viewers also liked

A Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to BluemixA Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to Bluemixibmwebspheresoftware
 
IBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for HackathonsIBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for Hackathonsgjuljo
 
Give Your Java Apps “The Boot” With Spring Boot And Cloud Foundry
Give Your Java Apps “The Boot” With Spring Boot And Cloud FoundryGive Your Java Apps “The Boot” With Spring Boot And Cloud Foundry
Give Your Java Apps “The Boot” With Spring Boot And Cloud FoundryRyan Baxter
 
Bluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationBluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationCraig Trim
 
Twitter analytics in Bluemix
Twitter analytics in BluemixTwitter analytics in Bluemix
Twitter analytics in BluemixWilfried Hoge
 
BigData processing in the cloud – Guest Lecture - University of Applied Scien...
BigData processing in the cloud – Guest Lecture - University of Applied Scien...BigData processing in the cloud – Guest Lecture - University of Applied Scien...
BigData processing in the cloud – Guest Lecture - University of Applied Scien...Romeo Kienzler
 
IAB3948 Wiring the internet of things with Node-RED
IAB3948 Wiring the internet of things with Node-REDIAB3948 Wiring the internet of things with Node-RED
IAB3948 Wiring the internet of things with Node-REDPeterNiblett
 
An Overview of IBM Streaming Analytics for Bluemix
An Overview of IBM Streaming Analytics for BluemixAn Overview of IBM Streaming Analytics for Bluemix
An Overview of IBM Streaming Analytics for Bluemixlisanl
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Daniel Krook
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスIBMソリューション
 
Flow based programming an overview
Flow based programming   an overviewFlow based programming   an overview
Flow based programming an overviewSamuel Lampa
 
Using bluemix predictive analytics service in Node-RED
Using bluemix predictive analytics service in Node-REDUsing bluemix predictive analytics service in Node-RED
Using bluemix predictive analytics service in Node-REDLionel Mommeja
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsIBM UrbanCode Products
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...MongoDB
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceDavid Currie
 
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Sven Beauprez
 

Viewers also liked (16)

A Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to BluemixA Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to Bluemix
 
IBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for HackathonsIBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for Hackathons
 
Give Your Java Apps “The Boot” With Spring Boot And Cloud Foundry
Give Your Java Apps “The Boot” With Spring Boot And Cloud FoundryGive Your Java Apps “The Boot” With Spring Boot And Cloud Foundry
Give Your Java Apps “The Boot” With Spring Boot And Cloud Foundry
 
Bluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationBluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web Application
 
Twitter analytics in Bluemix
Twitter analytics in BluemixTwitter analytics in Bluemix
Twitter analytics in Bluemix
 
BigData processing in the cloud – Guest Lecture - University of Applied Scien...
BigData processing in the cloud – Guest Lecture - University of Applied Scien...BigData processing in the cloud – Guest Lecture - University of Applied Scien...
BigData processing in the cloud – Guest Lecture - University of Applied Scien...
 
IAB3948 Wiring the internet of things with Node-RED
IAB3948 Wiring the internet of things with Node-REDIAB3948 Wiring the internet of things with Node-RED
IAB3948 Wiring the internet of things with Node-RED
 
An Overview of IBM Streaming Analytics for Bluemix
An Overview of IBM Streaming Analytics for BluemixAn Overview of IBM Streaming Analytics for Bluemix
An Overview of IBM Streaming Analytics for Bluemix
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービス
 
Flow based programming an overview
Flow based programming   an overviewFlow based programming   an overview
Flow based programming an overview
 
Using bluemix predictive analytics service in Node-RED
Using bluemix predictive analytics service in Node-REDUsing bluemix predictive analytics service in Node-RED
Using bluemix predictive analytics service in Node-RED
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
Big Data Analytics 3: Machine Learning to Engage the Customer, with Apache Sp...
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
 

Similar to Building Highly Scalable Apps On Bluemix

Scalable apps
Scalable appsScalable apps
Scalable appsIBM
 
Di api di server b1 ws
Di api di server b1 wsDi api di server b1 ws
Di api di server b1 wsAbhishek Sur
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022 Shelly Megan
 
Aws serverless multi-tier_architectures
Aws serverless multi-tier_architecturesAws serverless multi-tier_architectures
Aws serverless multi-tier_architecturesDevthilina Abayaratne
 
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석Amazon Web Services Korea
 
Top local databases for react native app development
Top local databases for react native app developmentTop local databases for react native app development
Top local databases for react native app developmentSameerShaik43
 
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...RapidValue
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdfSGBSeo
 
Deployment Automation with Microservices
Deployment Automation with MicroservicesDeployment Automation with Microservices
Deployment Automation with MicroservicesGanesh Ghag
 
Aws serverless multi-tier_architectures
Aws serverless multi-tier_architecturesAws serverless multi-tier_architectures
Aws serverless multi-tier_architecturessonpro2312
 
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...Katy Slemon
 
Serverless architectures-with-aws-lambda
Serverless architectures-with-aws-lambdaServerless architectures-with-aws-lambda
Serverless architectures-with-aws-lambdasaifam
 
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile Apps
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile AppsFirebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile Apps
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile AppsDevathon
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Emmanuel Olowosulu
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed? Dev_Events
 
MongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB
 

Similar to Building Highly Scalable Apps On Bluemix (20)

Scalable apps
Scalable appsScalable apps
Scalable apps
 
Serverless: State Of the Union
Serverless: State Of the UnionServerless: State Of the Union
Serverless: State Of the Union
 
Serverless - State Of the Union
Serverless - State Of the UnionServerless - State Of the Union
Serverless - State Of the Union
 
Di api di server b1 ws
Di api di server b1 wsDi api di server b1 ws
Di api di server b1 ws
 
List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022					List of Top Local Databases used for react native app developement in 2022
List of Top Local Databases used for react native app developement in 2022
 
Aws serverless multi-tier_architectures
Aws serverless multi-tier_architecturesAws serverless multi-tier_architectures
Aws serverless multi-tier_architectures
 
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
 
Top local databases for react native app development
Top local databases for react native app developmentTop local databases for react native app development
Top local databases for react native app development
 
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...
A Technology Backgrounder to Serverless Architecture - A Whitepaper by RapidV...
 
API.docx
API.docxAPI.docx
API.docx
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
 
Deployment Automation with Microservices
Deployment Automation with MicroservicesDeployment Automation with Microservices
Deployment Automation with Microservices
 
Aws serverless multi-tier_architectures
Aws serverless multi-tier_architecturesAws serverless multi-tier_architectures
Aws serverless multi-tier_architectures
 
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
React Native Database: A Comprehensive Guideline on Choosing the Right Databa...
 
Serverless architectures-with-aws-lambda
Serverless architectures-with-aws-lambdaServerless architectures-with-aws-lambda
Serverless architectures-with-aws-lambda
 
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile Apps
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile AppsFirebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile Apps
Firebase vs MongoDB Stitch vs AWS Amplify vs Azure Mobile Apps
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)
 
App Development Evolution: What has changed?
App Development Evolution: What has changed? App Development Evolution: What has changed?
App Development Evolution: What has changed?
 
MongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB AtlasMongoDB Europe 2016 - MongoDB Atlas
MongoDB Europe 2016 - MongoDB Atlas
 
Demistifying serverless on aws
Demistifying serverless on awsDemistifying serverless on aws
Demistifying serverless on aws
 

More from Ryan Baxter

Boston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM ContainersBoston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM ContainersRyan Baxter
 
Boston Cloud Foundry Meetup 5-22-14
Boston Cloud Foundry Meetup 5-22-14Boston Cloud Foundry Meetup 5-22-14
Boston Cloud Foundry Meetup 5-22-14Ryan Baxter
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixRyan Baxter
 
Boston Bluemix Meetup 5/15/14
Boston Bluemix Meetup 5/15/14Boston Bluemix Meetup 5/15/14
Boston Bluemix Meetup 5/15/14Ryan Baxter
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialRyan Baxter
 
JMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialJMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialRyan Baxter
 

More from Ryan Baxter (7)

Boston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM ContainersBoston Cloud Meetup - IBM Containers
Boston Cloud Meetup - IBM Containers
 
MWLUG Bluemix
MWLUG BluemixMWLUG Bluemix
MWLUG Bluemix
 
Boston Cloud Foundry Meetup 5-22-14
Boston Cloud Foundry Meetup 5-22-14Boston Cloud Foundry Meetup 5-22-14
Boston Cloud Foundry Meetup 5-22-14
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMix
 
Boston Bluemix Meetup 5/15/14
Boston Bluemix Meetup 5/15/14Boston Bluemix Meetup 5/15/14
Boston Bluemix Meetup 5/15/14
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocial
 
JMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocialJMP102 Extending Your App Arsenal With OpenSocial
JMP102 Extending Your App Arsenal With OpenSocial
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 

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
  • 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 can’t 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 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
  • 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

Editor's Notes

  1. Problems: -if one component crashes the entire instance crashes -if one compoent blocks everything else is blocked as well -probably have some data consistancy issues – twitter is streaming data to each instance
  2. If we break the app into individual components we can eliminate some problems -the first one being that if one component crashes everything else can still run, functionality may be decreased but we are not completely lost -can help isolate any data consistence issues when we scale
  3. The most common place you might first look to scale is the client side code and your rest apis. This in theory may be getting the most use. Technically you may want to also separate out rest apis as well. -we now can have a bottleneck in search -twitter streams def has an issue do to load balancer in front
  4. Lets introduce a service to help with twitter, We want all instances to know about the tweets coming in so we can use a pub sub model to help distribute tweets When an instance starts it subscribes to our pub sub service. Our twitter app publishes tweets to the service and the service now distributes them All instances now have the same data and we can add/subtract client side instances at will
  5. Search is also a problem eventualy our search “service” may get bogged down with requests and we have a bottleneck
  6. If we just scale the search app without any changes what may happen? It might make things better, but not really The load balancer infront of the apps is now distributing requests to the instances underneath, who says that is happening efficiently, again we can make all of them busy and completely block the apps above using the service
  7. What is we use a queue instead and have workers which handle doing the searches. Our apps above can put things in the queue and continue on with their work, waiting for responses to the requests they put in the queue. Worked underneath pick requests off the queue do the work and return responses. Now we can scale our worked up and down do to load in the queue