Microservices

This post summarizes ideas about microservices, that is a type of distributed system.

This post is part of a series of articles about distributed systems.

Description of Microservices

IT microservices is a service-oriented architecture (SOA) where the application is splitted into various independent services that perform the simplest operation possible. Because of the simplicity of these services, they are called microservices.

The services are loosely coupled, it means that each other are very independent.

Communication should be enabled between the different services, that are loosely coupled using lightweight protocols. A service mesh can be used to manage this communication.

Popular communication protocols within microservices are HTTP/REST, gRPC, or messaging (as for example, RabbitMQ or Apache Kafka).

Containerarization is an essential part of microservices as they can be easily exported and imported between different systems. You can read more about containerization on this post.

The more traditional alternative to microservices is monolith architecture.

Advantages of Microservices

Microservices are highly reusable in different projects, because each service solves a very basic problem that may be common to many applications.

This independence between microservices allows to be able to update a microservice without touching the other microservices.

Disadvantages of Microservices

Microservices increases complexity in communications in comparison to monolith architecture because it requires to manage the communication between separate entities.

Though microservices are independent between them, the applications using them are highly dependant on them, so any change on them may affect the application.

Recommendation about Microservices

According to some authors, it is recommended to start with a monolith architecture before tackling with microservice architecture. Starting a project with microservices may not provide the right outcome.

Bibliography about Microservices

This section offers some bibliography and articles about microservices.

Microservices: breaking the monolith

“Microservices: breaking the monolith”

https://dzone.com/guides/microservices-breaking-down-the-monolith

Evolve the Monolith to Microservices with Java and Node

http://www.redbooks.ibm.com/abstracts/sg248358.html?Open

Building Microservices

“Building Microservices”, Sam Newman

Online course: Monoliths to Microservices

“Online Course: Monoliths To Microservices”. Course by Sam Newman offered in O’Reilly Media’s Safari’s platform

Monolith first

“Monolith first” article

https://martinfowler.com/bliki/MonolithFirst.html

You might also be interested in…

External References

Leave a Reply

Your email address will not be published. Required fields are marked *