Microservices Reference Implementation

Microsoft patterns & practices

This reference implementation shows a set of best practices for building and running a microservices architecture on Microsoft Azure, using Kubernetes.

Basic Advanced
Distributed Monitoring βœ… βœ…
Ingress Controller βœ… βœ…
Azure Active Directory Pod Identity βœ… βœ…
CI/CD using Azure Pipelines βœ… βœ…
Helm charts βœ… βœ…
Resource Limits βœ… βœ…
Readiness/Liveness Probes βœ… βœ…
Horizontal Pod Autoscaling ❌ βœ…
Cluster Autoscaling ❌ βœ…
Advanced Networking ❌ βœ…
Service Endpoints ❌ βœ…
Network Policies ❌ βœ…
Egress restriction using Azure Firewall ❌ βœ…

Guidance

This project has a companion set of articles that describe challenges, design patterns, and best practices for building microservices architecture. You can find these articles on the Azure Architecture Center:

Scenario

​Fabrikam, Inc. (a fictional company) is starting 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 backend system assigns a drone and notifies the user with an estimated delivery time. While the delivery is in progress, the customer can track the location of the drone, with a continuously updated ETA.

The Drone Delivery app

The Drone Delivery application is a sample application that consists of several microservices. Because it's a sample, the functionality is simulated, but the APIs and microservices interactions are intended to reflect real-world design patterns.

  • Ingestion service. Receives client requests and buffers them.
  • Scheduler service. Dispatches client requests and manages the delivery workflow.
  • Supervisor service. Monitors the workflow for failures and applies compensating transactions.
  • Account service. Manages user accounts.
  • Third-party Transportation service. Manages third-party transportation options.
  • Drone service. Schedules drones and monitors drones in flight.
  • Package service. Manages packages.
  • Delivery service. Manages deliveries that are scheduled or in-transit.
  • Delivery History service. Stores the history of completed deliveries.

Deployment

To deploy the solution, follow the steps listed here.


This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Microservices Reference Implementation

A reference implementation demonstrating microservices architecture and best practices for Microsoft Azure

Microservices Reference Implementation Info

⭐ Stars 619
πŸ”— Homepage docs.microsoft.com
πŸ”— Source Code github.com
πŸ•’ Last Update 7 months ago
πŸ•’ Created 4 years ago
🐞 Open Issues 5
βž— Star-Issue Ratio 124
😎 Author mspnp