Microsoft Cloud Adoption Framework for Azure provides you with guidance to adopt Azure. When deploying resources in a new environment, you can leverage landing zones and blueprints to accelerate your deployment. A landing zone is a set of infrastructure components that assembled together deploys a complete environment ready to host an application.
A landing zone is a fully ready environment to host your application in the cloud. The set of CAF landing zones are aligned with Cloud Adoption Framework recommendations, and allow you to quickly scaffold a deployment with fundamentals of cloud management.
Examples of landing zones:
- Hub and spoke topology
- Lambda architecture with Databricks
- Mobile application development platform
- Citrix cloud
- SAP BusinessOne
Currently we provide you with the following landing zones:
| Name | Purpose |
|---|---|
| landingzone_caf_foundations | setup all the fundamentals for a subscription (logging, accounting, security.). You can find all details of the caf_foundation landing zone in its README. |
| landingzone_vdc_demo | setup a demo environment of a hub-spoke topology including shared services, as well as various DMZ (ingress, egress, transit). You can find all details of the vdc_demo landing zone in its README. |
We recommend developing and deploying landing zones using Visual Studio Code, leveraging VS Code Development Containers allows a smooth transition from your dev machine to your the exection environement (the rover).
In order to start deploying your with CAF landing zones, you need the following components installed in your environment:
- Visual Studio Code
- Docker
- Git
You can deploy it easily on Windows and MacOS with the following software managers:
| MacOS | Windows |
|---|---|
brew cask install visual-studio-code docker brew install git |
Install Chocolatey (https://chocolatey.org/docs/installation) choco install git vscode docker-desktop |
Once installed, open Visual Studio Code and install "Remote Development" extension as follow: 
Cloning your first repository:
git clone https://github.com/aztfmod/landingzones.git Open the repository you've just cloned in Visual Studio Code, click on the lower bar, green sign and in the palette opening on the top of Visual Studio Code Window, select "Open Workspace in container"
This should take a while, in the meantime, feel free to click on Details to see the container being downloaded from the registry and being connected to yur local environment:
You will have to accept local mapping to your filesystem when Docker prompts you, so that you can access your files from your container.
After a while, your environment is ready, note on the lower left part of Visual Studio Code, that you are now in your Azure CAF rover, which is your environment to use Azure landing zones.
You must be authenticated first: For that we will rely on Azure authentication as completed by Azure Cli, via browser method:
rover loginWhen you are running rover for the fist time, it will prompt your for the location of the launchpad foundations.
# To deploy the environment
roverThen enter the location choosen for deployment, for instance type southeastasia or westeurope.
You can then launch your first landing zone as follow:
rover /tf/caf/landingzones/landingzone_caf_foundations planrover /tf/caf/landingzones/landingzone_caf_foundations applyrover /tf/caf/landingzones/landingzone_caf_foundations destroyIf you are using previous version of Azure landing zones (v1.0.1912), since we migrated to use new version of the rover, which uses non-root containers, you will have to re-create your volumes. You can achieve that running the following commands:
# To list all Dev Container volumes
docker volume ls -f label=caf
# To cleanup de Dev Container volumes make sure there is not running or stopped containers
docker ps
docker ps -a
# To cleanup a specific Dev Container
docker volume rm -f $(docker volume ls -f label=com.docker.compose.project=landingzones_devcontainer)
# To cleanup all Dev Containers
docker volume rm -f $(docker volume ls -f label=caf)You can also purge Docker cache running the following command:
docker system prune -aLanding zone is a fully environment ready to use, running on Microsoft Azure. From the software prospective, the landing zone is the element doing the service composition by calling different blueprints to deploy the complete environment as in the picture below:

By default, the blueprints are store locally in the landing zone, for instance, the hub_spoke landing zone which has a set a below:
A blueprint can also be used directly from the GitHub public blueprints: 
More to come soon on that!
Happy deployment with Azure landing zones, let us know your feedback and how you need it to evolve!
Pull requests are welcome to evolve the framework and integrate new features.