Microservices: Patterns for Enterprise Agility and Scalability
Introduction To The Microservices Software Architecture Style, Concepts, Recommended Patterns, And Suggested Adoption Approach
Microservices is an architectural pattern gaining steam in the development community.
A Microservices architecture addresses problems that modern enterprises often face, including responding to market demands, handling spikes in traffic, and being tolerant to failure. These benefits are achieved by functionally decomposing a business’ domain into microservices, services that handle only a single responsibility.
This aids agility by allowing teams to focus on a narrower domain, increasing scalability by giving smaller units of scale so additional instances of a service can be spun up in response to demand, and enhancing fault tolerance providing isolation units that can contain the scope of faults.
The Microservices approach originally evolved from web companies that needed to be able to handle millions of users with significant variance in traffic, while being able to also maintain the agility to respond to market demands. What those companies pioneered–technologies, design patterns, and operational platforms– have been shared with the open source community in an effort to help other organizations to adopt Microservices. While a formal standard does not yet exist, certain common characteristics define a Microservices architecture: independently deployable services, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.
White Paper Topics
In this free white paper, we discuss a number of topics related to Microservices. Topics include:
- How Microservices Came To Be
- Contrasting Architecture Patterns
- Features of a Microservices Architecture
- Established Patterns
- Getting Started With Microservices
- Suggestions For Microservices Adoption and Migration
Download White Paper