9. SOA ?
ESB
(proprietary tools)
Heavy Integration
(like WCF, SOAP, JBI)
Hard to test
Technical service
boundaries
Business Contract
as boundaries
Lightweight transport
(like http/json)
What are Microservices?
11. Microservices
Write programs that do one thing and do it
well. Write programs to work together
- The Unix Way
What are Microservices?
12. Characteristics of a Microservice
Architecture
> Componentization via Services
> Organized around Business Capabilities
> Products not Projects
> Smart endpoints and dumb pipes
> Decentralized Governance
> Decentralized Data Management
> Infrastructure Automation
> Design for failure
> Evolutionary Design
http://martinfowler.com/articles/microservices.html
14. Organized around Business Capabilities
Presentation
Business Logic
Data Access / DB
Characteristics of a Microservice
15. Characteristics of a Microservice
Catalog
Order
Shipping
Bounded Context
Organized around Business Capabilities
16. Characteristics of a Microservice
Catalog
Order
Shipping
Organized around Business Capabilities
"organizations which design systems ... are constrained to produce
designs which are copies of the communication structures of these
organizations" —Melvin Conway
18. {
"id": "iphone-6s-16gb",
"specification": {
"...": "..."
},
"price": 35000,
"currency": "₹",
"...": "..."
}
Smart endpoints and dump pipes
Characteristics of a Microservice
Catalog
Order
Communication
RESTful
(http / json)
/items/iphone-6s-16gb
19. Characteristics of a Microservice
Catalog
Order
Decentralized Governance
Communication
20. Characteristics of a Microservice
Catalog
Order
Communication
Decentralized Data Management
21. Infrastructure Automation
Characteristics of a Microservice
> builds
> tests - unit, integration, end to end, performance
> provisioning
> deployment
> from test environment
> to production
23. Design for failure
Characteristics of a Microservice
> Tolerate the failure of services
> Timeouts, retries and circuit breaker patterns
> Real-time monitoring
> Log aggregation
24. Evolutionary Design
Characteristics of a Microservice
> Build few bigger services first
> Then, slowly peel off different services
> Based on independent replacement and upgradeability
> Make granular releases
25. Characteristics of a Microservice
Architecture
> Componentization via Services
> Organized around Business Capabilities
> Products not Projects
> Smart endpoints and dumb pipes
> Decentralized Governance
> Decentralized Data Management
> Infrastructure Automation
> Design for failure
> Evolutionary Design
http://martinfowler.com/articles/microservices.html
27. Readiness for microservices
Are you ready for Microservices?
> Operational Complexity due to distribution
> Tolerance for Eventual consistency
> Automated Testing (Test Pyramid)
> Automated Build and Deployment
> Rapid Provisioning
> Monitoring needs
> Remote calls – expensive
Avoid microservices envy