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.
What Are Microservices?
Microservices are business functions that are "loosely coupled," which can then be built, deployed, and scaled independently.
Each service communicates with other services through standardized application programming interfaces (APIs), enabling the services to be written in different languages, to use different technologies and even different infrastructure. The concept differs completely from systems built as monolithic structures, where services were inextricably interlinked and could only be deployed and scaled together. However, microservices do share common goals with EAI and SOA architectures.
As each individual service has limited functionality, it is much smaller in size and complexity. The term "microservice" comes from this discrete functionality design, not from its physical size.
This is a preview of the Getting Started With Microservices Refcard. To read the entire Refcard, please download the PDF from the link above.