In this project we would look at how to use a 2 tier azure infrastructure to deploy a highly resilient, scaleable and high availability web app. To achieve this we would be using the following azure resources: Terraform, Azure DNS, Application Gateway, App Service Plan, Azure SQL Database, Azure Virtual Network Service Endpoint, Azure Monitor, Log Analytics, Azure Devops for CICD.
- Azure Account
- Terraform
- Visual Studio Code
- Azure CLI
- Azure Service Principal
- Git
- Azure DevOps
-
Azure Application Gateway
It is a web traffic (OSI layer 7) load balancer that enables you to manage traffic to your web applications. -
Virtual Network (VNet) service endpoint
It provides secure and direct connectivity to Azure services over an optimized route over the Azure backbone network. -
Resource Group
It is the deployment and management service in Azure. It acts as the logical container for Azure resources. -
App Service App
It is a fully-managed platform for deploying and creating cloud applications. -
App Service Plan
It defines the collection of compute resources for a web app to run. -
IP Address
The app service app has a domain name and a public IP address. The domain name is the subdomain name of azurewebsites.net for example azurewebsites.net. -
Azure DNS
It is a hosting service for DNS domains that provide resolutions using Azure infrastructure. If the domains are hosted in Azure, then one can manage the DNS records using the same credentials, tools, APIs, and billing as other Azure services. -
Azure SQL Database
It is a relational database-as-a-service in the cloud. It shares its code base with the Microsoft SQL server database engine. Depending upon the application requirement, one can also use Azure Database for PostgreSQL or Azure Database for MySQL. These are based on Postgres database and open-source MySQL respectively, which are fully managed database services. -
Azure Storage
You can create a blob container in Azure storage to store diagnostics.