SPA
(browser)
Mobile
Apps
App Services
DB Server
Integration
Server
Auth
Server
Document
Management
Server
Lets start out with a conventional architecture
SPA
(browser)
Mobile
Apps
App Services
DB Server
Master
Integration
Server
Auth
Server
DMS
Real world deployment and clustering for failover and scalability brings in complexities
App Services
Load Balancer
DB Server
RO Slave
DB Server
RO Slave
Integration
Server
DMS
Load Balancer Load BalancerLoad Balancer
SPA
(browser)
Mobile
Apps
App Services
DB Server
Master
Integration
Server
Auth
Server
DMS
Microservices Architectures further distribute processing and make the architecture complex
Service1
Load Balancer
DB Server
RO Slave
DB Server
RO Slave
Integration
Server
DMS
Load Balancer
Load BalancerLoad Balancer
App Services
Service2
Load Balancer
App Services
Service3
Load Balancer
DMSNOSQL
Server
Load Balancer
App Services
Service4
Load Balancer
DMSApache Spark
+ HDFS
Load Balancer
App Services
Service5
Load Balancer
API Gateway
Inter Service
Communication Bus
Managing/Automating tens of VMs, through conventional scripting is tough, error prone and unreliable
If your deployment automation scripts are aware of nature of application inside the VM, then it makes your deployments
brittle and not easily scalable
Besides, other softwares are needed which keep track of which machines are running which VMs and for automating dynamic
scale-out and failover
Besides a good deployment automation also needs to support, service discovery, scheduling(which VMs go where),
healthchecks and monitoring, upgrades and rollback support and easy scale out of selective VMs
Benefits of containerization
The container is quite opaque to the deployment orchestration scripts
DEV, QA, UAT, PRE-PROD and PROD, all environments can be treated alike and this facilitates CI and CD
Container orchestrators like Kubernetes and Mesos can satisfy all the deployment automation requirements like service
discovery, scheduling(which VMs go where), healthchecks and monitoring, upgrades and rollback support and easy scale out of
selective VMs

Deployment Automation with Microservices

  • 1.
  • 2.
    SPA (browser) Mobile Apps App Services DB Server Master Integration Server Auth Server DMS Realworld deployment and clustering for failover and scalability brings in complexities App Services Load Balancer DB Server RO Slave DB Server RO Slave Integration Server DMS Load Balancer Load BalancerLoad Balancer
  • 3.
    SPA (browser) Mobile Apps App Services DB Server Master Integration Server Auth Server DMS MicroservicesArchitectures further distribute processing and make the architecture complex Service1 Load Balancer DB Server RO Slave DB Server RO Slave Integration Server DMS Load Balancer Load BalancerLoad Balancer App Services Service2 Load Balancer App Services Service3 Load Balancer DMSNOSQL Server Load Balancer App Services Service4 Load Balancer DMSApache Spark + HDFS Load Balancer App Services Service5 Load Balancer API Gateway Inter Service Communication Bus
  • 4.
    Managing/Automating tens ofVMs, through conventional scripting is tough, error prone and unreliable If your deployment automation scripts are aware of nature of application inside the VM, then it makes your deployments brittle and not easily scalable Besides, other softwares are needed which keep track of which machines are running which VMs and for automating dynamic scale-out and failover Besides a good deployment automation also needs to support, service discovery, scheduling(which VMs go where), healthchecks and monitoring, upgrades and rollback support and easy scale out of selective VMs Benefits of containerization The container is quite opaque to the deployment orchestration scripts DEV, QA, UAT, PRE-PROD and PROD, all environments can be treated alike and this facilitates CI and CD Container orchestrators like Kubernetes and Mesos can satisfy all the deployment automation requirements like service discovery, scheduling(which VMs go where), healthchecks and monitoring, upgrades and rollback support and easy scale out of selective VMs