Home > Design Patterns > Microservice Deployment

Microservice Deployment (Merson)

How can a service be deployed independently to avoid the limitations imposed by a monolithic deployment?

Microservice Deployment

Problem

Services and other components of a software solution are packaged together in a monolithic deployment bundle. Deploying a new version of a service that is part of the solution can require redeploying the entire solution. Also, there is less flexibility to configure service-specific scalability, availability, persistence, monitoring, and security logic.

Solution

Each service is treated as an independent product and is deployed is an isolated package that contributes to service autonomy.

Application

Services are packaged and deployed in a highly autonomous environment that may utilize containerization technology. Packaging and deployment of services are typically highly automated. Services are commonly designed for use with HTTP/REST and to support asynchronous inter-service communication.

Impacts

Services can be developed and evolved more independently. Service deployments can be tailored and new versions can be released with minimal downtime. An increased memory footprint may be required and performance overhead can be imposed due to the increased need for network-based communication.

Architecture

Service, Composition
"Microservice" is an industry term that can be used for services that comply to the microservice model and to which service-orientation has been applied (and are therefore part of an SOA environment), as well as for services that are not part of an SOA environment. As part of the SOA patterns catalog, the Microservice Deployment pattern is authored solely for services that are part of an SOA environment and, most commonly, to which the Micro Task Abstraction pattern has been applied.