February 11th, 2020
Aleksandar and Luka prepared a paper on Microservices for one of our clients. In this short fragment, we are sharing some pros and cons of using such architecture.
The Microservice Architectural Style is an approach to developing a single application as a suite of small services, each running in its own process and communication with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.
Microservice architecture advantages
- Microservices make on-boarding easier. Microservices are modular in design, each independent service is much smaller in scope when compared to monolithic. Each service can handle all the components required in order to perform its function, including data storage and communication. As a result, small teams can be assigned to developing, testing, and deploying a single service. A smaller scope creates an enormous advantage when on-boarding new developers. A single microservice is much easier to understand, because new developer does not need to understand the functionality and interdependence of each service.
- Microservices reduce risk. Monolithic applications can take a long time to develop, test and deploy. A microservice architecture stands in contrast to the traditional approach in that each service can be developed and deployed independently. This reduces risk, because a failure in one service will not result in failure of other services, or even the entire application.
- Microservice provide flexible data storage.
- Microservices increase speed of deployment.
- Microservices provide scalability and flexibility.
- Microservice simplify security monitoring. Each service is isolated from other service in the application. This makes identifying the source of a security issue easy to locate and keeps issues from affecting other areas of the application.
Microservice architecture disadvantages
Microservice architecture tends to solve a lot of problems that monolithic application has, but they come with some drawbacks:
- The biggest disadvantage of a microservices architecture is its increased complexity over a monolithic application. The complexity of a microservice based application is directly correlated with the number of services involved.
- Microservices will require a cultural shift in organization. They require mature DevOps team and culture.
- Microservices Pose Security Challenges, due to the increases in inter-service communication over the network.
Each of those drawbacks can be avoided if everything is planned, and we take the smallest details into consideration while planning microservices.
By Aleksandar & Luka
Image credits: “Microservice architecture” by psd is licensed under CC BY 2.0