Moving Towards a Leaner Deployment in Your Enterprise
Eranga Perera - Senior Technical Lead
Chathura Kulasinghe - Senior Solutions Engineer
Agenda• Evolutionary Trends• Microservices• Container Based Deployments• Serverless• Deploying WSO2 products in your Enterprise
2
Forces that Shape the Evolution
5
Image credits: [1] http://coloradobusinessonline.com[2] http://businessonlinefromhome.com/
● More transactions are happening online● More frequent touch points with customer● Global reach
Online Presence Pace of Innovation
● Ability to adapt and deliver rapidly changing needs
● Shorter time to market● Competition
The Previous Generation
6
Monolithic Application PaaS
● Hard to scale● Slow to develop● Slow to react● Hard to update
● Language dependant● Environment Dependant● Lock-in● Expensive
Image credits: [1] https://images.google.com
Microservice
7
Image Credit: http://electric-cloud.com/
Microservices is a specialisation of an implementation approach for
service-oriented architectures (SOA) used to build flexible, independently
deployable software systems.
- Wikipedia
Microservices
8
• Allow for Application composability• Allow massive scalability• Allow to tackle problems separately (Plug in/out)• Allow for agile incremental updates of a single
component• Allow components and team to be shared• Allow component reuse to accelerate innovation• Allow components to be taken from heterogeneous
sources
Challenges Presented by Microservice
9
• Components are much more small and numerous• More dependencies among components• Difficulty understanding performance as a whole• As network plays a major role needs to be thought
through• Multiple databases and transaction management can be
painful• Complex monitoring needs
Making Pizza the Microservices Way
11
Image credits: [1] https://images.google.com[2] http://www.florencetown.com
Microservice Deployment
13
• Ability to deploy/un-deploy independently of other microservices
• Must be able to scale at each microservices level• Building and deploying microservices quickly• Failure in one microservice must not affect any of the
other services
What is Serverless?
15
• Single page web applications or rich client applications that does not have a server side.
• Application developed on an architecture that run in stateless compute containers, that are event-triggered & ephemeral
A typical Design of a solution
WSO2 API Manager
3rd Party System Units
WSO2 Message Broker
Organizational System Units
WSO2 Enterprise Service Bus
WSO2 Data Services Server
WSO2 Application Server
WSO2 Identity Server
Extensibility of the Solution
Example,1st Year → Coffee shop 4th year → Coffee shop +Bakery outlet8th year → Coffee shop +Bakery outlet +Grocery shop
WSO2 context,1st Year → Integration platform4th year → Integration +API Management platform8th year → Integration +API Management +Analytics platform
Scalability of a product cluster - (i.e Throughput)
Example,Within a certain time unitif a single barista makes ω cups of coffeeto make η cups of coffee,it takes minimum η/ω number of baristas
i.e. WSO2 ESB, WSO2 MB, WSO2 API-M Gateway
Cluster
WSO2 Carbon
Cluster
WSO2 Carbon
WSO2 Carbon
Sample deployment : Clusters / deployment topology
LB 3rd Party System Units3rd Party
System Units3rd Party System Units
Data
Cen
ter -
01
Data
Cen
ter -
02
Organization 3rd PartiesClients
Production Hardening - Deployment ModelWSO2 products are,
• Are JVM based, • Support many operating systems,• and many Infrastructure
• Basic virtual machines• Cloud (Microsoft Azure & Amazon AWS)• Containers (i.e Docker)
Production Hardening - Hardware specificationis based on the number of JVM/WSO2 instances
Typically, 1 CPU per JVM instance2 GB of RAM per JVM instance10 GB of Hard disk space
and,1 CPU for operating system2 GB for operating system
Following the basics,VMs are configured or Selected (i.e Amazon EC2 c1.large)
VM (Virtual Machine)
CPU 2CPU 1
CPU 1
2 GB RAM2 GB RAM
OS
OSFiles Space
JDK W
SO2
Bina
ry{Z
IP a
rchi
ve e
xtra
cted
}
Carbon/JVM instance
DevOps and Automation : The Typical WSO2 Product
Carbon Kernel
Features Collection
Carbon Kernel
Identity Management
Features
Carbon Kernel
Integration Features
Carbon Kernel
Application ServerFeatures
Identity Server ESB Application Server
Carbon Kernel
Clustering Server-framework Registry
Logging Data-sources Transports User-management Multi-Tenancy
Admin-console Feature-manager
Dep-sync
Backup & Disaster recoveryThe design and configuration
Deployment automation with executable scriptsor with Immutable server oriented design
Deployed artifactsShared repository
RegistryDatabase backup
DataDatabase and files backup