Enterprise Microservices Design [Part 1: Introduction]
Microservice architecture (MSA) is a method of developing software applications by building them as collections of independent and modular services. Microservices can be deployed to create a more flexible digital architecture. Smaller teams can work separately on these microservices and share them with other application developers via APIs for reuse. In fact, these individual services can be released, scaled, and updated without impact to the rest of the system. When coupled with a containerized environment, MSA is the ideal option for projects that must deliver and scale fast and enable support for a range of platforms and devices.
In this series, we will discuss on designing Microservices for an enterprise and go through various design consideration when developing them
Table of Content
- Introduction
- Inner Architecture Zone
- Outer Architecture Zone
- External Architecture Zone
- Cross-cutting Concerns
Disclaimer: Please note, this series will not cover the DevOps concepts and is primary focused on the microservices design and implementation in an enterprise. DevOps concepts related to cloud infrastructure, deployment, and maintenance of microservices will be covered in future articles
1.1 Microservice Architecture
MSA is an evolution of Service Oriented Architecture (SOA) and adopting an MSA is closely correlated with the use of DevOps and continuous integration and continuous delivery (CI/CD). Cloud native microservices (microservices that exploit the advantages of cloud computing, container packaging, and dynamic management) take the SOA concept to a new level where the cloud infrastructure enables services to be implemented and managed at scale. With Docker and Kubernetes providing effective ways to develop, deploy, and manage microservices, developers can spin up countless services all at once, monitor the services, and provide each service with the resources it needs. Each microservice can be deployed, upgraded, scaled, and restarted independent of all the sibling services in the application.
1.2 Microservice Architecture Zones
In contrast to a more classic monolithic application, in which everything is tightly-coupled and deployed as one big chunk, a microservice architecture tries to decouple all modules, where each service has its own unique and well-defined scope and runs in its own process. Each microservice should ideally own a single responsibility. By enabling small autonomous teams to develop, deploy, and scale their respective services independently, microservices enable parallel development, thereby speeding up the production cycle significantly.
Microservices architecture (MSA) can be divided into three zones as given below:
- Zone 1: Inner Architecture
- Zone 2: Outer Architecture
- Zone 3: External Architecture