Large-size application deployment has seen a transition, for the better, from being boxed in rigid steel appliances to scalable clouds. Even then, if the application is not re-architected to make use of the efficiency a cloud-deployment brings in, it continues to be shackled artificially.
Amongst many, a container-cloud brings in 2 main efficiencies - deployment of micro-services and service-discovery. Migrating an application to leverage these cloud efficiencies will unshackle the application deployment further and let it scale up and down on demand.
This talk explains the migration in the context of two prominent applications - application load-balancer and photo.com web-application.
2. Agenda
Application Evolution – Legacy to Microservices
Application Delivery Controller - Evolution
Example – photo.com
Microservices
Service Discovery
Load Balancing
Elastic Load Balancing
3. Application Evolution – from Monolith to Microservices
Rapid Move to Distributed Application Architectures
Users
Discover
Scale Monitor
Secure
Web Application
Order Mgmt
Customer
Service
Product Order Customer
UI Storefront
Catalog
Service
Catalog UI Checkout UI
Order Mgmt
UI
Account
Mgmt UI
Catalog
Service
Review
Service
Login Service
Order
Service
Customer
Service
Web App UI
Users
Firewall DNS/IPAM
Load
Balancer
NPM/
APM
App
Architecture
Evolution
Microservices
Containers
Discover
Scale Monitor
Secure
Discover
Scale Monitor
Secure
East-West
Services
North-South
Traffic
“Loosely coupled service oriented
architecture with bounded contexts”
– Adrian Cockcroft
5. PUBLIC CLOUD
PRIVATE CLOUD
(VMware, OpenStack…)
SDN
(Cisco ACI/...)
RESTAPI
Appliance
SoftwareController
Management
• Scalable Network Services
Separated control and data plane
• Centralized Management
Manage a single fabric, not many devices
• Visibility & Analytics
Actionable insights key to automation
• Hybrid Cloud
Single solution, any environment
Application Delivery (ADC) Evolution – Appliance to Distributed
Distributed Architecture with Central Control
ContainerBare Metal Virtualized Public Cloud
Service Engine
Data Plane
VM
VM
VM
VM VM
SoftwareService Engine
Data Plane
Software
6. • Controller Integration with Mesos/Docker
• Add Service Engine (Service Proxies) to ALL nodes
• Controller Integration with Marathon/UCP
• When a new application is added, automatically create
a proxy service on all Mesos nodes
• Automated, non-disruptive configuration updates
• Apply load balancing, auto-scaling, monitoring and
security policies from central controller
• Ongoing/Run-Time
• Add/remove SEs to/from Mesos/Docker nodes
• Auto-scale application instances using Marathon/UCP
LB – Container Clustering Integration
Fully Automated, Policy –Driven Deployment of Apps / Services
Marathon
Mesosphere
Mesos Nodes
Universal Control Plane
19. Photo.com ..
Black List …..
Catalog ….....
Marketing ….......
Shopping Cart …..
Corp DNS
Checkout …..
What port is
checkout.avi.xyz.com?
Universal Control Plane
Service Engine
Service Discovery
20. Photo.com ..
Black List …..
Catalog ….....
Marketing ….......
Shopping Cart …..
Corp DNS
Checkout …..
ADC Controller is
authoritative for
avi.xyz.com
Universal Control Plane
Service Engine
21. Photo.com ..
Black List …..
Catalog ….....
Marketing ….......
Shopping Cart …..
172.16.0.1:10001
Corp DNS
Checkout …..
What port is
checkout.avi.xyz.com?
Universal Control Plane
Service Engine
22. Photo.com ..
Black List …..
Catalog ….....
Marketing ….......
Shopping Cart …..
172.16.0.1:10001
Corp DNS
Checkout …..
checkout.avi.xyz.com
is
172.16.0.1:10001
Universal Control Plane
Service Engine
23. Photo.com ..
Black List …..
Catalog ….....
Checkout …..
Marketing ….......
Shopping Cart …..
Service EngineUniversal Control Plane
Load Balancing
24. Photo.com ..
Black List …..
Catalog ….....
Checkout …..
Marketing ….......
Shopping Cart …..
10.10.10.2:41498
10.10.10.3:59921
10.10.10.3:34097
10.10.10.4:30002
10.10.10.5:50250
10.10.10.6:41703
Virtual Service
172.16.0.1:10001
Universal Control Plane
Service Engine
Load Balancing
Checkout
25. Photo.com ..
Black List …..
Catalog ….....
Checkout …..
Marketing ….......
Shopping Cart …..
10.10.10.2:41498
10.10.10.3:59921
10.10.10.3:34097
10.10.10.4:30002
10.10.10.5:50250
10.10.10.6:41703
Virtual Service
172.16.0.1:10001
10.10.10.1:57878
10.10.10.3:41173
10.10.10.4:34097
10.10.10.4:41882
10.10.10.4:31126
10.10.10.5:41703
Virtual Service
172.16.0.1:10001
Universal Control Plane
Service Engine
Elastic Load Balancing – Configuration Update
Checkout
26. Cloud
Key takeaways – To Scalability
Web Application
Order Mgmt
Customer
Service
Product Order Customer
UI Storefront
Catalog
Service
Catalog UI Checkout UI
Order Mgmt
UI
Account
Mgmt UI
Catalog
Service
Review
Service
Login Service
Order
Service
Customer
Service
Web App UI
Move Application to Cloud
Rearchitect Application to
use Micro-Services
Scale each Micro-Service on
demand
Use a scalable load-balancerPhoto.com
Checkout
Catalog
Marketing
ShoppingCart
Show of hands – how many of you know what’s a load balancer, firewall, IPAM, NPM/APM?
Show of hands – how many of you know what’s a load balancer, firewall, IPAM, NPM/APM?
You transition your monolithic app and embrace a micro service architecture.
But how do all these containers discover and talk to each other?
An orchestrator and scheduler is needed to help microservices scale, such as Mesos and Marathon.
Your developers deploy microservices directly to Marathon. Mesos decides where resources are available for your containers.
Avi specific Labels embedded in the YML file of the applications –
COM.AVINETWORKS.AVI_PROXY {“virtualservice”:”ip_address”:{“type”:”v4”, “addr”:”x.x.x.x”}, “analytics_policy”:{“client_insights”: “NO_INSIGHTS”,
Containers spin up with a random port so how do your microservices talk to each other?
Containers spin up with a random port so how do your microservices talk to each other?
Avi Controller listens to Mesos and Marathon’s messaging bus, so when new containers are deployed, Avi Controller learns which containers belong to which microservice and also which port each container is listening on.
When the photo.com app wants to talk to the checkout app, it connects to the VS on the Avi SE on the same node, and it load balances the traffic to the appropriate checkout containers in the cluster. Photo.com learns of the VS address from Avi’s service discovery.
When containers move around and spin up on new ports, backend pool mapping is updated automatically.
Unbox your application from appliance to Cloud
Rearchitect to make use of micro-services
So each service can scale up/down on need basis
Use service-discovery along with a good load-balancer to distribute traffic across micro-services