Everything about Microservices
Collection of loosely coupled services used to build computer applications
In software engineering, a microservice architecture is an architectural pattern that organizes an application into a collection of loosely coupled, fine-grained services that communicate through lightweight protocols. This pattern allows teams to develop, deploy, and scale services independently, improving modularity, scalability, and adaptability. However, it introduces additional complexity, particularly in managing distributed systems and inter-service communication, making the initial implementation more challenging compared to a monolithic architecture. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: MicroservicesA 5-minute orientation
- Skim a recent paper: AI-Enabled Secure Microservices in Edge Computing: Opportunities and ChallengesInfluential work since 2022
- Pick up a classic book: Bootstrapping Microservices with Docker, Kubernetes, and TerraformThe most-reprinted book on the subject
- Read the landmark paper: Microservices Architecture Enables DevOps: Migration to a Cloud-Native ArchitectureCited 626 times
- Go sideways: Monolithic applicationA closely related topic
- Go sideways: Serverless computingA closely related topic
📖 Definitions
Noun plural of microservice
🏆 Landmark papers (most cited)
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture
Microservices: The Journey So Far and Challenges Ahead
Microservices
The pains and gains of microservices: A Systematic grey literature review
Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation
Microservices tenets
Architecting with microservices: A systematic mapping study
Orchestration of Microservices for IoT Using Docker and Edge Computing
🆕 Influential since 2022
AI-Enabled Secure Microservices in Edge Computing: Opportunities and Challenges
Decomposition of Monolith Applications Into Microservices Architectures: A Systematic Review
A Survey on Observability of Distributed Edge & Container-Based Microservices
A Survey on Microservices Architecture: Principles, Patterns and Migration Challenges
QoS-aware placement of microservices-based IoT applications in Fog computing environments
📚 Books worth reading
Bootstrapping Microservices with Docker, Kubernetes, and TerraformAshley Davis · 2021
Podman in ActionDaniel Walsh · 2022
Architecture Patterns with PythonHarry J.W. Percival, Bob Gregory · 2020
Microservices with Spring Boot and Spring CloudMagnus Larsson · 2021
Hands-On Docker for Microservices with PythonJaime Buelta · 2019
Hands-On Microservices with KubernetesGigi Sayfan · 2019
Kubernetes Native Microservices with Quarkus, and MicroProfileJohn Clingan, Ken Finnigan · 2022
Microservices with KubernetesStephen Fleming · 2018
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Monolithic application In software engineering, a monolithic application is a single unified software application that is self-contained and independent from other applications…
- Serverless computing Serverless computing is "a cloud service category where the customer can use different cloud capability types without the customer having to provision…
- Service granularity principle In software engineering and software architecture, service granularity is a design concern in service-based systems, including service-oriented architecture…
- Function as a service Function as a service is a "platform-level cloud capability" that enables its users "to build and manage microservices applications with low initial investment…
- Service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design…
- Distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components…
- Systems architecture A system architecture is the conceptual model that defines the structure, behavior, and views of a system. An architecture description is a formal description…
- Domain-driven design Domain-driven design (DDD) is a software design approach that focuses on modeling software to match a domain according to input from that domain's experts…