Microservices
Internal
External
Overview
An application based on micro services is composed of small, highly decoupled, mostly autonomous components, that are built to offer a specific (mostly business) functionality. A cloud-native application is composed of multiple microservices that communicated through shared infrastructure, in most cases over HTTP/REST. The microservices architecture provides two major advantages: various components can be developed, deployed, monitored, and troubleshot independently, on a service-by-service basis, rather than dealing with the entire application. The second advantage is that a specific layer can be scaled independently by other layers. The underlying infrastructure can also be provisioned and changed independently and faster.
James Lewis and Martin Fowler definition: Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
To Process
- https://www.youtube.com/watch?v=CZ3wIuvmHeM
- https://martinfowler.com/articles/microservices.html
- http://basho.com/posts/technical/microservices-please-dont/
- https://content.pivotal.io/blog/should-that-be-a-microservice-keep-these-six-factors-in-mind
- Chris Richardson's https://www.infoq.com/articles/microservices-intro
- The Hidden Dividends of Microservices https://queue.acm.org/detail.cfm?id=2956643
- https://opensource.com/article/18/11/revisiting-unix-philosophy-2018
- Pre-processed, good talk: Design Microservice Architectures the Right Way Michael Bryzek CTO of Flow Commerce https://www.infoq.com/presentations/microservices-arch-infrastructure-cd
- High cohesion