Microservices are loosely coupled application services, each independently built and maintained. Collectively and working together, they form an application. They are usually organized to align individually to business functions, such as a payment or a messaging service.
Microservices-based architecture is a popular option for development teams that embrace a DevOps philosophy. Breaking an application into individual components facilitates agile development with rapid and more frequent deployments.
Microservices can drive better infrastructure efficiencies, as they can scale up and down as required, compared to monolithic architectures.
Get details about microservices benefits
Microservices are typically packaged in containers, including their application code and dependencies. This offers a lightweight, standardized application deployment and delivery model, abstracted from physical infrastructure.
In order to manage containers at scale, Kubernetes has become the de facto standard for how containers are orchestrated and deployed.
A monolithic application is a software application that is built as a single code package, compared to a microservices-based application, which comprises individual code components.
The tight coupling of a monolithic application's components requires that the code package is replaced in its entirety, when an update needs to be made. This increases potential risk both from a code and infrastructure perspective, while reducing feature velocity and change.
Conversely, a microservices-based application can be updated more frequently and with less risk, as the changes to its individual components (microservices) can be rolled out independent of each other.