Blog

Microservices, Technology

What is Microservices And Its Benefits | Skybin

Surili Tyagi November 15, 2017

Microservices vs traditional approach

Microservice is a method of developing software application as set independently small modules, in which each service runs unique process. It communicates through a well-defined mechanism to serve the purpose.

Software engineers near Venice in May 2011 used the term as “microservices” to the common style of programming many of them were exploring about. James Lewis presented some of the ideas in case study in March 2012 and named it as “microservices”.

Microservices are one that many industries want to adopt. Companies like Netflix, Amazon, and others have adopted the concept of microservices in their product.

To understand it in proper way, let’s look at monolithic software. In this traditional web application client posts a request on browser. The business tier executes the business logic, the database collects/stores application specific persistent data, and the UI shows the data or the result to the user.

Microservices vs traditional approach

However you have created a multiple-module project, one module is dependent on another and, moreover, the module needs dependent modules in its class path. So you can use a distributed environment, but it runs under single process background.

So we see that there in one single process, different services are communicating with each other. To achieve all this, all artifacts and their required libraries are required in each application container.

Benefits of Microservices are:

  1. Microservices is independent and is like a new project, each service can be developed in any language that is best fitted for the requirement of the service.
  2. The developer is only concentrated on a particular service, so the code base will be very small, and the developer will know his code well. Also the chances of any mistake would be less.
  3. Whenever one service needs to talk to another service, they can do it by using EventBus or Polling: https.
  4. There is no centralized database. Each module has its own database so, there is data decentralization. You can use NoSQL or relational database depending on the module.
  5. It is flexible: failure in one service will not impact the other running modules. Unlike monolithic software.
  6. Easy to enhance as there is less dependency.
  7. Ease to build & deploy independently on demand without disrupting other services availability. There are following patterns for deploying services: Multiple service instances per host, Single service instance per host, Service instance per VM, Service instance per Container, We will review them deeply in next articles.
  8. Freedom to choose technology

That’s all for now. We’ll be posting another part of this series on Microservices soon, so stay tuned. You can freely subscribe to this blog for weekly updates on new articles.