What are Microservices?

What are Microservices?
Micro Services is a buzzword nowadays people are wondering what exactly these micro services are and how to test them.
In this article, we will try to understand what is MicroServices and what are the different strategies to test them.
Before going into depth of micro services, we need to understand exactly what monolithic architecture prevailed before the introduction of micro services.

What is the Monolithic  Architecture


Below you will find some important aspects of monolithic architecture.

  •        The entire application is built using a single code base.
  •        The application is then divided into several modules.
  •        These large monolithic code bases are complex and difficult to understand.
  •        If a new developer starts to use it, he will face challenges to understand himself.
  •        Since they come from a single code, they need a unique construction.
  •         And the build time will also be high; it will continue to increase with the addition of new features.
Problems Related to Monolithic Architecture

   1.   UnScaling - Scaling the application will be very difficult because every time an application needs to be updated even for minor changes.
Once the application is complete, it will be very difficult to change the language or the framework because everything is closely linked.

          2.   Slow Development - It takes a lot of time to build because for any change, everything has to be            built sequentially.

  •         Continuous integration and deployment will be complex with longer build times.
  •         If there is a code problem in a module, it can lead to the failure of the entire system.
  •         If you want to manage this problem, you must create a complete application and deploy it completely.
It's an architectural style that structures an application into a set of services that are
  1.       Highly maintainable and testable
  2.       Loose coupling
  3.       Deployable independently
  4.       Organized around the company's capabilities
  5.           Owned by a small team
The microservice architecture enables fast, frequent and reliable delivery of large and complex applications. It also allows an organization to evolve its technology stack.

Some of the important features include:
This contains small individual modules for each service.
Each service will implement a use case.
Since they are independent, they will be very small and weakly coupled.
The beauty of microservices lies in the fact that each service can have a different code base.

  •        JAVA
  •        Python
  •     Javascript
  •      PHP etc.
As these services are independent, they can be built and deployed independently.
Thus, if changes must be made to a service, we can deploy only the construction of this service, contrary to the complete construction of the monolithic architecture.
With these flexibilities, we can develop and deploy services that are independent of each other.
Developers do not need to have a complete picture of the entire project.
They can only focus on the service they work, which is very flexible for new employees.
Maintaining multiple small teams for different services is flexible.



Comments