Microservices have become a popular architectural style for building cloud applications that are resilient, highly scalable, and able to evolve quickly. To be more than just a buzzword, however, microservices require a different approach to designing and building applications.

In this set of articles, we explore how to build and run a microservices architecture on Azure, using Kubernetes as a container orchestrator. Future articles will include Service Fabric. Topics include:

Using Domain Driven Design (DDD) to design a microservices architecture.

Choosing the right Azure technologies for compute, storage, messaging, and other elements of the design.

Understanding microservices design patterns.

Designing for resiliency, scalability, and performance.

Building a CI/CD pipeline.

Throughout, we focus on an end-to-end scenario for a drone delivery service that lets customers schedule packages to be picked up and delivered via drone. A reference implementation for this project is available on GitHub.

The reference implementation includes a number of different Azure and open source technologies:

Azure Container Service (Kubernetes) to run frontend and backend services.

The goal of this guidance is to show the end-to-end process of designing, building, and operating microservices under a realistic scenario. We hope you will find it useful in your own projects. As always, we greatly appreciate your feedback.