Microservices Reference Implementation
Overview
The Microservices Reference Implementation provides a set of best practices for developing and operating a microservices architecture using Kubernetes on Microsoft Azure. This implementation is curated by Microsoft patterns & practices and serves as a valuable resource for aspiring cloud architects and developers seeking to design scalable and reliable solutions.
Transition to AKS Fabrikam Drone Delivery
The project has undergone a transition where the more advanced microservices reference implementation has been rebranded as the AKS Fabrikam Drone Delivery reference implementation. This new implementation leverages the AKS Baseline Cluster for building a solid foundation. However, the basic Microservices Reference Implementation remains available for those who wish to understand core concepts and practices.
Guidance and Learning Resources
This reference implementation is supported by a suite of articles that cover challenges, design patterns, and best practices for building microservices architectures. These resources can be accessed at the Azure Architecture Center, specifically in the article titled Designing, building, and operating microservices on Azure with Kubernetes.
Scenario: Fabrikam Drone Delivery Service
The implementation is built around a hypothetical scenario involving Fabrikam, Inc., a fictional company launching a drone delivery service. The company manages a fleet of drones, allows businesses to register, and lets users request drones to deliver goods. When a request is made, a backend system assigns a drone and notifies the user with an estimated delivery time. Users can track the drone's location and receive continuous updates on the estimated time of arrival (ETA).
The Drone Delivery Application
The sample application, Drone Delivery, demonstrates the potential of microservices by simulating a functional drone delivery service. It features several key microservices, each playing a specific role:
- Ingestion Service: Receives and buffers client requests.
- Scheduler Service: Manages the dispatching and workflow of client requests.
- Supervisor Service: Oversees the workflow, handling failures and managing compensations.
- Account Service: Deals with user account management.
- Third-party Transportation Service: Integrates third-party transport options.
- Drone Service: Coordinates drone scheduling and monitors in-flight drones.
- Package Service: Oversees the management of packages.
- Delivery Service: Handles the scheduling and in-transit delivery management.
- Delivery History Service: Records and stores completed delivery history.
This application's architecture and interactions mirror real-world design patterns and provide a robust platform to test microservices architecture.
Performance Metrics
The Drone Delivery application has been tested with varied metrics to ensure performance optimization. It was capable of handling up to 2000 messages per second under testing conditions. Various components of the system such as Nginx, Ingestion, Workflow, Package, Delivery, and Drone scheduler have been analyzed for CPU usage, memory, throughput, and latency metrics to provide insights into system efficiency.
Deployment
For those interested in deploying the solution, comprehensive deployment instructions are available here. This guide provides detailed steps to get the system operational on your Azure environment using Kubernetes.
Code of Conduct
This project adheres to the Microsoft Open Source Code of Conduct. For further details or queries, please refer to the Code of Conduct FAQ or reach out via email to [email protected].
This comprehensive microservices reference implementation serves as a valuable guide for developers and architects looking to build scalable and efficient cloud-based solutions. By following best practices and leveraging the resources provided, anyone can successfully deploy and manage a microservices architecture on Microsoft Azure.