Microservices in short

This time we will go with some theory, do you think you have got enough experience on PHP or JAVA or Dot NET and you want to explore the new world of microservices just to overcome the problem that you have faced in your application development and deployment experience. Incase you are new to large scale software development and deployment, first i will suggest you to have some hands on experience on that and then move ahead to this new world, otherwise it will never possible to understand the bottleneck of last decade architeture.

Microservices Architecture are involved for faster

  • Development
  • Deployment
  • Scalability

Monolithic Architecture vs Mircoservices Architecture:

Monolithic Architecture in details

mono

  • Biggest advantage is its simple at first
  • Low infrastructure for small scale application
  • Running good for small scale application
  • From year 2000, it was dominated by .Net, Java and PHP
  • Since last 2 decade we are using Monolithic Architecture. Where entire code base will be single unit and for each new release all code will be deployed each time there is a new release
  • It is very difficult to use multiple technology in single code base like either the application will be on PHP or JAVA or .NET
  • UI was part of single code base. Where there is a neeed to change the UI entire Code based was compiled and deployed to server. Huge time consuming
  • During deployment if anything breaks, entire thing need a rebuild and redeplayment

Microservice Architecture in details

micro

  • Sometimes if might be Hard or it will be very simple to develop
  • Breaking Bigger single unit Code based to Multiple code base
  • Multiple codebase connected to same or different database
  • Single UI will communicate with multiple single single unit (Microservices)
  • Deployment will be related to a perticular unit rather than all unit at a time
  • Multiple technology can be used for different UNit. One microservice will use NODEJS where as other can use .NetCore or Java. As each microservice will run a special environment called container.
  • Decoupled environment
  • Efficient scaling
  • Modularity based development

So whats the real problem, why enterprise needs to move microservices architecture so fast

  • Industry moving from Physical and Virtual servers to cloud servers
  • Monolithics to Microservices is really required to overcome the problem development has faced in last decade
  • Fully automated deployment and release with less or zero bug in such process (DevOps)
  • Rather than vertical scaling industry need horizonal scale too

Container Technology

  • Docker
  • LXC

Orchestration Framework

  • Kubernetes ( Google)
  • Mesos (Apache)

I will update this article in more details, in coming days.