Building Microservices: Designing Fine-Grained System by Sam Newman
-
Upload
ismail-habib-muhammad -
Category
Software
-
view
1.722 -
download
0
Transcript of Building Microservices: Designing Fine-Grained System by Sam Newman
![Page 1: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/1.jpg)
![Page 2: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/2.jpg)
services?What is Microservices?
![Page 3: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/3.jpg)
Microservices are small, autonomous services that work
together
![Page 4: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/4.jpg)
![Page 5: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/5.jpg)
ModelliModelling Microservices
![Page 6: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/6.jpg)
What makes a good service? Loose Coupling + High Cohesion
![Page 7: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/7.jpg)
The Bounded ContextSpecific responsibility enforced by explicit boundaries
![Page 8: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/8.jpg)
![Page 9: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/9.jpg)
grationIntegration
![Page 10: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/10.jpg)
Avoid breaking changes
Technology Agnostics
Simple for Consumers
Hide internal implementation detail
Integration Technology - what are we looking for?
![Page 11: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/11.jpg)
Avoid at all cost:The Shared Database
![Page 12: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/12.jpg)
Decide between:
Synchronous vs AsynchronousOrchestration vs Choreography
![Page 13: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/13.jpg)
RecommendationsAvoid database integration at all cost
Strongly consider REST for request/response integration
Prefer choreography over orchestration
Avoid breaking changes and the need to version
![Page 14: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/14.jpg)
User IntUser Interface
![Page 15: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/15.jpg)
API Composition
![Page 16: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/16.jpg)
UI Fragment Composition
![Page 17: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/17.jpg)
API Gateway - not like this
![Page 18: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/18.jpg)
Backends for Frontends done properly
![Page 19: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/19.jpg)
estingTesting
![Page 20: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/20.jpg)
Mike Cohn’s Test Pyramid
![Page 21: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/21.jpg)
End-to-end tests are...Flaky, brittle, and slow
![Page 22: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/22.jpg)
Consumer-Driven tests to the rescueNo real tests against the real consumers, use consumer-driven contract (CDC)
![Page 23: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/23.jpg)
Recommendations
Optimize for fast feedback
Avoid end-to-end tests when possible (use consumer-driven contracts)
Use consumer-driven contracts to provide conversation between teams
Understand the trade-off between putting more efforts into testing and detecting
issues faster in production
![Page 24: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/24.jpg)
Topics not coveredSplitting the Monolith
Deployment
Monitoring
Security
...and many more
![Page 25: Building Microservices: Designing Fine-Grained System by Sam Newman](https://reader031.fdocuments.in/reader031/viewer/2022021814/58e51ee21a28ab624e8b584b/html5/thumbnails/25.jpg)
Any organization that designs a system will inevitably produce a design whose structure is a copy of the
organization’s communication structure