2. Microservices
Why adopt the Microservices paradigm?
Increase enterprise agility
Minimize catastrophic Failures
For better resource utilization
For building faster, smaller and cohesive applications
3. Microservices
Independent Observable
Business Domain Centric Resilient/Fail Safe
Decentralized
Decentralized • A single application failure will
not impact other applications
Observable • Constantly monitored and
measures taken to recover failed
application
Business Domain Centric • Cohesive
• Single Area of Focus
Resilient/Failsafe • Multiple instances running behind
load balancer
• Data is partitioned and replicated
• Ability to scale
4. X scaling
Load balancer
Y scaling
End point per concern
Z scaling
Data shards
Microservices
7. Case Study #1 – Central Data Repository
Problem:
Data Consolidation
Not all data providers needed to scale to the same degree
Backend Data Model definition
Data migration
API Data format definition for multiple consumers
8.
9. Case Study #2: Rules Engine Microservices
Problem Domain:
Large data processing
Avoiding total system failures
Selective scaling
Fast scaling
12. Automation
Jenkins + Git + Salt for CI/CD
Salt for configuration
management
App Dynamics for monitoring
JIRA + Slack for communication
Docker for containerization
• Kubernetes at the Enterprise Level
13. Process
Red Green
Refactor
Code Review
Automated
Unit Tests
Salt
Deployment
to
Integration
Environment
Integration
Tests
User
Acceptance
Tests
Security
Audit
Load Tests Production
14. Git WorkFlow
Each developer forks create a fork
Code is reviewed prior to merging
to master
Jenkins build from master
Releases are tagged in master
Feature / Release branches are
maintained
15. Challenges
DevOps Talent
Y Scaling
How should a microservice be partitioned?
Z Scaling
How should data be partitioned?
No atomic transactions. Have to rely on eventual consistency.
Achieving resiliency with on premises infrastructure
16. Conclusion
Easier to build faster systems
DevOps work can impact project timelines
Elastic environments, like Amazon EC2, make it easier to achieve
scaling and resiliency
Microservices like any other paradigm can be misused