Microservices
Definition
Building applications as small, independent services that work together, allowing for greater flexibility, scalability, and easier maintenance.
Use Cases
- Netflix: Streaming platform with independent capabilities like playback, recommendations, user profiles, and billing — Netflix decomposed its platform into many independently deployable services owned by separate teams. Services communicate over APIs and are deployed and scaled independently to handle variable demand. (Faster independent releases, improved resilience through isolation of failures, and the ability to scale specific functions (like streaming or recommendations) without scaling the entire application.)
- Amazon: E-commerce platform with separate capabilities such as catalog, search, checkout, payments, and shipping — Amazon is widely cited for evolving from a tightly coupled architecture toward service-oriented components with API-based communication and team ownership aligned to business capabilities. (Greater team autonomy, faster iteration on individual features, and improved ability to scale and evolve different parts of the platform independently.)
- Uber: Ride-hailing platform coordinating dispatch, pricing, maps, payments, and notifications — Uber has described moving from a monolithic application to a microservices-based approach where services are split by domain (for example, trip management, pricing, and payments) and communicate via internal APIs. (Better scalability and reliability for high-traffic components and the ability for teams to deploy changes to specific services without redeploying the entire system.)
Provider Equivalents
- AWS: Amazon ECS / Amazon EKS
- Azure: Azure Kubernetes Service (AKS)
- GCP: Google Kubernetes Engine (GKE)
- OCI: Oracle Container Engine for Kubernetes (OKE)
Frequently Asked Questions
- What's the difference between microservices and monolithic architecture?
- A monolith is one application where features are packaged and deployed together. Microservices split the application into smaller services that can be developed, deployed, and scaled independently. Microservices can improve agility and scaling, but they add complexity in networking, monitoring, and operations.
- When should I use microservices?
- Use microservices when you need independent scaling, frequent deployments by multiple teams, and clear separation of business domains (for example, payments vs. recommendations). If your product is early-stage, your team is small, or the system is simple, a well-structured monolith is often faster and cheaper to build and operate.
- How much do microservices cost?
- Microservices don’t have a fixed price; costs come from the infrastructure and operational tooling needed to run many services. Key cost drivers include compute (VMs/containers/Kubernetes nodes), load balancing and API gateways, network traffic between services, managed databases and caches per service, observability (logs/metrics/traces), CI/CD pipelines, and additional engineering time to manage reliability and security across many components.
Category: software
Difficulty: advanced
Related Terms
See Also