Software is created using an architectural and organisational strategy known as microservices, which consists of small, autonomous services that communicate over clearly defined APIs. These services are run by tiny, independent teams. Microservices architectures make applications easier to scale andfaster to develop, enabling innovation and acceleratingtime-to-market for new features.
With monolithic architectures, all processes are tightly coupled and run as a single
service. This means that if one process of the application experiences a spike in demand, the entire
architecture must be scaled. Adding or improving a monolithic application’s features becomes more
complex as the code base grows. This complexity limits experimentation and makes it difficult to
implement new ideas. Monolithic architectures add risk for application availability because many
dependent and tightly coupled processes increase the impact of a single process failure.
With a microservices architecture, an application is built as independent components that run each
application process as a service. These services communicate via a well-defined interface using
lightweight APIs. Services are built for business capabilities and each service performs a single
function. Because they are independently run, each service can be updated, deployed, and scaled to
meet demand for specific functions of an application.
Autonomous
In a microservices architecture, each component service can be created, deployed, run, and scaled
independently of the other services. Services are not required to exchange any of their
implementation or source code with other services. Individual component communication takes place
Specialized
Each service is tailored to a particular set of capabilities and focuses on addressing a particular
issue. A service can be divided into smaller services if developers add more code to it over time
and the service becomes complex.