XenonStack

A Stack Innovator

Post Top Ad

Saturday 14 December 2019

Microservices Architecture Design and Best Practices 


What is Microservices Architecture?

A microservices architecture style is an approach for developing small services each running in its process. It enables the continuous delivery/deployment of large, complex applications. It also allows an organization to evolve its technology stack.

Why Microservices Architecture?

Microservices came in a picture of building systems that were too big. The idea behind microservices is that there are some applications that can easily build and maintain when they are broken down into smaller applications that work together. Each component is continuously developed and separately managed, and the application is then merely the sum of its constituent elements. Whereas in traditional “monolithic” application which is all developed all in one piece.

Microservices Architecture Design

Distributed architecture
All the services communicate with the API gateway through REST or RPC. These services can be deployed as multiple instances, and the requests can be distributed to these instances.for
Separately deployed components
Each component is deployed separately. If one component needs changes, others don’t have to deploy again.
Service components
Services components communicate with each other via service discovery
Bounded by contexts
It encapsulates the details of a single domain, and define the integration with other domains. It is about implementing a business capability.

Benefits of Adopting Microservices Architecture Design

  • Asynchronicity.
  • Integration & Disintegration.
  • Complected Deployments.
  • Evolutionary Architecture.
  • Components are deployed.
  • Features are released.
  • Applications consist of routing.
  • Easier to understand the code — It is easy to distinguish one small service and flow of the whole service rather than one big codebase.
  • Fast Software delivery — Each service can be developed by different developers and in many different languages.
  • Efficient debugging — Don’t have to jump through multiple layers of an application and in essence better fault isolation.
  • Reusable — Since it is an independent service it can be used in other projects also.
  • Scalability
  • Horizontal scaling
  • Workload partitioning
  • Don’t have to scale the whole project. We only need to scale up that component that needs to scale up.
  • Deployment — Need only to deploy that service which has been changed not the whole project again.

Characteristics of Microservices Architecture Design

  • Small in size
  • Messaging enabled
  • Bounded by contexts
  • Autonomously developed
  • Independently deployable
  • Decentralized
  • Built and released with automated processes

Continue Reading: XenonStack/Insights

No comments:

Post a Comment