Overview On Microservices


Monolithic architecture:

Monolith means composed all in one piece. The Monolithic application describes a single-tiered software application in which different components combined into a single program from a single platform.


Microservices:

Microservices is an architectural style, approach to developing a single application as a smaller pieces of services where each services are running in its own process individually and communicate with each others. All smaller services are independently deplorable.
The main idea behind microservice architecture is that applications are simpler to build and maintain when we broke down into the smaller pieces that work seamlessly together.Using microservices, we isolate software functionality into multiple independent modules that are individually responsible for performing precisely defined, standalone tasks. These modules communicate with each other through simple, universally accessible application programming interfaces (APIs).
Applications built using microservices possess certain characteristics.




  • Standardized service contract (services follow a standardized description)
  • Loose coupling (minimal dependencies)
  • Service abstraction (services hide their internal logic)
  • Service statelessness (services don’t persist state from former requests)
  • Service discover-ability (services come with discoverable metadata and/or a service registry)
  • Service comparability (services can be used together)
    With microservices you can mix multiple languages, development frameworks and data-storage technologies. Using Spring Boot is the most popular way to build microservices in Java. it possible to set up stand-alone Spring apps with minimal configuration.We used Spring Boot, and Spring Cloud to build the application.
The way of creating a small services using Spring boot For creating a small services Spring boot is a very good choice because Spring Boot enables building production-ready applications quickly and provides non-functional features:
 *  Embedded servers which are easy to deploy with the containers.
 *  It helps in monitoring the multiples components.
 *  It helps in configuring the components externally.
 *  It contains powerful database transaction management capabilities using Java frameworks like JPA/Hibernate ORM.
 *  It reduces the cost and development time of the application.

Why Microservices is so popular?

  • Monolith  Application Gets bigger and bigger over iterations, and becomes difficult to manage and takes really long to startup, if the application is too big where as The size will remain  smaller, as each component is dissected to smaller services
  • In Monolith  Application Continuous deployment becomes difficult where as Continuous deployment is possible here.
  • Scaling of application requires entire application scaling but in microservice Scaling of application requires entire application scaling.
  • For  Monolith  Application Testing is difficult but in microservice testing becomes easier with individual service.


Comments

Popular posts from this blog

Easy way to learn Spring boot: Introduction Part