Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microservices are a popular architectural style for building cloud applications that remain resilient, scale efficiently, deploy independently, and evolve rapidly. To deliver real value, microservices require a different approach to design and application development.
This set of articles explores how to build a microservices architecture on Azure. It includes the following guidance:
Compute options for microservices: Evaluate Azure compute services for microservices, including Azure Kubernetes Service (AKS), Azure Container Apps, and Azure Functions. Learn when to use each service based on your requirements for scalability, management overhead, and deployment models.
Interservice communication: Design effective communication patterns between microservices by using synchronous and asynchronous approaches. Learn about REST APIs, messaging patterns, event-driven architectures, and service mesh technologies for reliable service-to-service communication.
API design: Create well-designed APIs that support microservices architecture principles. Learn API versioning strategies, error handling patterns, and how to design APIs that promote loose coupling and independent service evolution.
API gateways: Implement API gateways to manage cross-cutting concerns like authentication, rate limiting, and request routing. Understand how gateways simplify client interactions and provide centralized policy enforcement across your microservices ecosystem.
Data considerations: Address data management challenges in microservices architectures, including data consistency patterns, distributed transactions, and choosing appropriate data stores. Learn strategies for maintaining data integrity across service boundaries.
Container orchestration: Deploy and manage containerized microservices at scale by using container orchestrators. Understand how platforms like Kubernetes automate deployment, scaling, load balancing, and health management to maintain desired system state in production environments.
Design patterns: Apply proven design patterns specific to microservices, including the Ambassador pattern for offloading connectivity tasks, the Bulkhead pattern for resource isolation, and the Strangler Fig pattern for incremental application refactoring.
Prerequisites
Before you read these articles, start with the following resources:
Introduction to microservices architectures: Understand the benefits and challenges of microservices and when to use this architecture style.
Use domain analysis to model microservices: Learn a domain-driven approach to modeling microservices.
Example architecture
Download a Visio file of this architecture.
Scenario
Fabrikam, Inc. creates a drone delivery service. The company manages a fleet of drone aircraft. Businesses register with the service, and users can request a drone to pick up goods for delivery. When a customer schedules a pickup, a back-end system assigns a drone and notifies the user of an estimated delivery time. During the delivery, the customer can track the location of the drone, including a continuously updated estimated time of arrival (ETA).
This solution works well for the aerospace and aircraft industries.
This scenario involves a fairly complicated domain. Some business concerns include scheduling drones, tracking packages, managing user accounts, and storing and analyzing historical data. Fabrikam also wants to get to market and then iterate quickly to add new functionality and capabilities. The application needs to operate at cloud scale with a high service-level objective (SLO). Fabrikam also expects different parts of the system to have very different requirements for data storage and querying. Based on considerations, Fabrikam chooses a microservices architecture for the drone delivery application.
Note
For more information about how to choose between a microservices architecture and other architectural styles, see the Azure Application architecture guide.
This architecture uses Kubernetes with AKS. But many of the high-level architectural decisions and challenges apply to any container orchestrator.