Ashish Sharma
Monolithic to Microservices +
Docker = SDLC on Steroids
Director SWE, SS&C Eze.
@asharma_im
About SS&C Eze
1,900Asset managers served
worldwide
25years delivering investment
management solutions
$40m+Annual R&D Investment
1050+
Employees
44%
Service
36%
R&D
Eze Eclipse
Data Integration
Prime Brokers
Administrators
Trade Execution
High-Touch Desk
Algorithms
Outsourced Trading
Desks
Tech Stack
Agenda
Developer
Experience
Testing Delivery
Tech Stack
Idea!
Innovators
Let's build a cloud native
Investment Suite!
Tech Stack 1.0
â—Ź Front End SPA in Angular
â—Ź ~12 Backend services in C#
â—Ź RMQ & Nginx based messaging
â—Ź MSSql Server for storage
Tech Stack 2.0
Polyglot Stack
Eclipse Infrastructure
Uniform Packaging Identical multistage environments
TEST PERF UAT PROD
Dynamic scaling
Simplified CI/CD tool chain
Standardization
Language/Framework agnostic standards and patterns
Bootstrapping
â—Ź Secrets management
â—Ź Configuration
Resource Access
â—Ź DB/Cache Access
â—Ź Authentication
â—Ź Authorization
â—Ź Logging and Tracing
APIs Boundary
â—Ź API Standards
â—Ź Swagger
â—Ź Contract driven
development
Developer Experience
Come to
office
Download
Code
Build
Restore DB/Register
Services/Configuration
Work on
Story
Monolithic Developer Experience:
Less than Ideal
Come to
office
Download
Code
docker-compose up
Work on
Story
Microservices Developer Experience
Self Contained Code
â—Ź Mono repo to micro repos
â—Ź Explicit dependencies, build
tools, tests and packaging
â—Ź It works the same way in local,
test, UAT and PROD
• Quick to onboard new developers
• Massive increase in cross team pull requests!
Onboarding
• Quick to onboard new developers
• Massive increase in cross team pull requests!
Onboarding
What happened Team-
A?
• Quick to onboard new developers
• Massive increase in cross team pull requests!
Onboarding
Team-A contributing into
Team-B’s repo
Testing
Service Tests
â—Ź Setup dependent services and data
â—Ź Environment reliability
â—Ź Slow
â—Ź Cleanup
Resource-1…………………….Resource-n
Service Tests
Unit Tests
Wouldn’t it be nice
if service tests
were as easy as
unit tests
Test Data
â—Ź Web crawler inspired technique to download
snapshots from immediate dependencies
â—Ź Snapshots are served as mock during test run
â—Ź Snapshots are checked into source control
Test Suite
Mock
DB
Test Client Service
Easy to write
Fast
Consistent
Coverage Report
Cleanup
Triggers on every check-in
Unit Tests Service Tests
Service Tests
Now as Easy as Unit Tests
Chaos Tests
MockTest Client Service
X-Request-Id = “/price return 500” Propagate headers
If X-Request-Id == “/price return 500”
→ set res.status = 500
Delivery
Delivery
Weekend Deployments
Extended Downtime
Painful Rollbacks
Multiple Deployments per day
Zero Down Time
Easy Rollbacks
Deployments
Patterns for Safe Delivery
Branch by abstraction
â—Ź Dark launch
â—Ź Feature Toggles
V1 V2
Clone Input
Workflow
Compare Results
Performance stats
V1 V2
Get Toggle
Workflow
ONOff
KEY TAKEAWAYS
Microservices with polyglot stacks are magical
but requires strict engineering discipline
Invest into making developer experience quick
and smooth
Shift Left. Test services in Isolation
Apply standard patterns for Safe Delivery
Thank you!

Monolithic to Microservices + Docker = SDLC on Steroids!