I started another online course about a week ago. And I bumped into a new term for me — Microservices. I was curious about it and checked for a quick and short explanation, but couldn’t find anything brief and easy to understand. And I decided to create my own short version. So don’t blame me if I missed something because this article is not about advanced details of microservices architecture, it is just a small note for basic understanding.
Microservices is a type of software architecture, where application structure is made of small autonomic services that are modeled around the main business idea.
Before Microservices came to our world there was another architecture style — Monolithic Architecture. This type of application architecture is built as a single and indivisible unit.
I know that it is not really clear yet what is a microservice, right?
What is Microservice?
Microservice is self-contained and implements a single business capability. In other words, it is handling its own data, performing its own functionality, and has its own database and codebase. So, we can say that microservice is a small application that provides a single business functionality.
Usually, the architecture is managed by an orchestration technology like Kubernetes (for e.g. placing services on the nodes, identify failures and rebalance nodes).
Communication between services occurs through APIs.
- Microservices are deployed independently. It’s easier and faster to manage bugs and releases.
- Microservice codebase is small. It doesn’t share code or data stores as a result dependencies are minimized and it’s easier to add new features.
- You can choose the technology that best fits your service. And don’t be afraid of the technology mix! This architecture pattern handles it perfectly.
- If something is wrong with one of the microservices, the whole application won't be broken.
The most famous examples of microservices applications are Netflix, Amazon, and PayPal.
Hope this really short summary was helpful!