Saturday, June 16, 2018

Micro Service Introduction

A microservice is a single self-contained unit which, together with many others, makes up a large application. By splitting app into small units every part of it is independently deployable and scalable, can be written by different teams and in different programming languages and can be tested individually.






PROs of Microservices architecture:
  • The application takes lesser time to start, which increases developers productivity and speeds up deployments.
  • The system can be scaled easily and boost system performance.
  • Each service can be deployed without affecting other services, which allows deployment of new versions of services frequently.
  • Microservices are independent of each other and have a specific role. Changes made to one microservice does not affect other.
  • No restriction of technology in developing any service, there by making system technologically independent.
CONs of Microservices:
  • Deployment complexity increases as the need to manage a system comprised of many different service types.
  • The developer needs to handle complexity for creating separate distributed system.

Microservices versus monolithic architecture when application grows

Monolithic
  • Understanding huge code base becomes difficult, especially for new developers.
  • Large code files make development environment slow like IDE.
  • Changing technology or language becomes complicated as the code base is tightly coupled.
  • CI/CD becomes challenging and time-consuming and needs a dedicated team to manage it.
Microservices
  • Microservices are small and specific to business requirements.
  • Microservices are loosely coupled and can be easily developed and deployed.
  • Development can be done using different technologies.
  • Microservices can be built with new technology stack enabling faster development cycle.
  • Microservices can be easily scaled on demand.

Why Microservices with Node.JS
  • Productivity – Node.js uses NPM (node package manager) which comes up with tons of ready to use modules which speed up the development process. Node.js uses javascript as interface language so that same language can be used for back end and front end. This saves lots of development time.
  • Performance – Node.js event driven I/O model along with microservices strategy which can handle an extreme amount of load with lesser response time.
  • Developer Friendly – Node.js has vast community support and is backed by millions of developers across the globe. Node package manager (NPM) contains more than 4 million ready to use modules which serve as heaven for developers. Node.js enables faster development of applications which are easily scaleable, there by making the developer happy through out application development life cycle.
Node.js supports multiple Microservices framework which enables development of application based on microservices strategy. Most popular among them are Senaca js.  Senaca js provides a complete environment for the development of the microservice based application.

x

No comments: