Overview
This architecture follows the fundamental components of a basic web application using azure services.
Components
Azure Container Registry
We host all our container images in Azure Container Registry. Azure Container Registry is a managed, private Docker registry service based on the open-source Docker Registry 2.0. We use it to store and manage private Docker container images. We can use Azure Container Registry to build, store, and manage container images for all types of container deployments.
Azure App Service
We use Azure App Service as a fully managed platform for creating and deploying cloud applications. It lets us define a set of compute resources for our app to run, deploy web apps, and configure deployment slots. We use containers from Azure Container Registry to deploy the app service.
Deployment Slots
Deployment slots let you stage a deployment and then swap it with the production deployment. This way, you avoid deploying directly into production. See the release engineering and deployment section below for specific recommendations.
DNS
The App Service app has a public IP address and a domain name. The domain name is a subdomain of azurewebsites.net, such as ingenius.azurewebsites.net
.
To use a custom domain name (such as playbook.ingenius.global
), create DNS records that map the custom domain name to the IP address or using cname of the app service domain name. For more information, see Configure a custom domain name in Azure App Service.
Azure SQL Database
Azure SQL Database is a relational database-as-a-service in the cloud. SQL Database shares its code base with the Microsoft SQL Server database engine. Depending on the application requirements, we will use Azure Database for MySQL or Azure Database for PostgreSQL. These alternatives are fully managed database services based on the open-source MySQL Server and Postgres database engines.