SOA Patterns > Service Implementation Patterns > Microservice Deployment
Microservice Deployment (Merson)
How can a service be deployed independently to avoid the limitations imposed by a monolithic 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.
Principles
Architecture
Service, Composition