Tutorial: eShop on containers

Learn how to model and deploy a production-level application with Radius

Background

The eShop on Containers reference application is a sample .NET Core microservices application. It contains 15 services plus additional containers or cloud services for infrastructure such as SQL, Redis, Mongo, and either RabbitMQ or Service Bus.

Architecture


eShop on Containers uses a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns). The application uses HTTP as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus.

Deployment today

Deploying eShop without Radius requires deploying a cluster and the backing infrastructure, configuring multiple CLIs and tools, running deployment scripts, and manually copying/pasting credentials and endpoints.

eShop provides instructions to deploy to Azure or to deploy to an AKS cluster (and even to deploy to AKS using ARM/Bicep templates).

Once the cluster and infrastructure resources are deployed, you can deploy the eShop application using Helm charts and PowerShell.

Adding Radius

Adding Radius to the eShop on containers application allows teams to:

  • Define the entire collection of microservices and backing infrastructure as a single application
  • Easily manage configuration and credentials between infrastructure and services, all within the app model
  • Simplify deployment with Bicep and Azure Resource Manager (ARM)
View eShop sample