The term "microservices" describes a software architectural style that gives modern developers a way to design highly scalable, flexible applications by decomposing the application into discrete services that implement specific business functions. These services, often referred to as "loosely coupled," can then be built, deployed, and scaled independently.
The "microservices" style is linked to other trends that make this a practical approach. Things like containerization, Agile methods, DevOps culture, cloud services, and the widespread adoption — both culturally and technically — of continuous integration and continuous delivery/deployment (CI/CD) methods across the industry are making it possible to build truly modular, large-scale, service-optimized systems for both internal and commercial use.
This Refcard aims to introduce the reader to microservices and to define their key characteristics and benefits.