Microservices: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 14: Line 14:


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.
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.
=Use Cases=
A situation when we may benefit from splitting an application into separate services is when:
* Logic is loosely coupled
* Data models are different
* Data is generally independent


=Discovery=
=Discovery=

Revision as of 20:19, 26 September 2023

Internal

Learning

Microservices Learning

Overview

An application based on microservices 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.

Use Cases

A situation when we may benefit from splitting an application into separate services is when:

  • Logic is loosely coupled
  • Data models are different
  • Data is generally independent

Discovery

Synchronous Communication

Asynchronous Communication

Data Storage

Deployment

Unit and Integration Testing

Observability

Observability