/lz

Primary LanguageHCL

Board Status

Introduction to Azure Cloud Adoption Framework landing zones for Terraform

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.

Overview

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

Available landing zones

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.

Getting started

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).

Prerequisites

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
brew install git docker
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: RemoteDevelopment

Cloning the repository

Cloning your first repository:

git clone https://github.com/aztfmod/landingzones.git 

Open the repository in Visual Studio Code

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" RemoteDevelopment 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: SetupContainer You will have to accept local mapping to your filesystem when Docker prompts you, so that you can access your files from your container. Ready 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.

Deploying your first landing zone

You must be authenticated first: For that we will rely on Azure authentication as completed by Azure Cli, via browser method:

rover login

You can then launch your first landing zone as follow:

rover landingzone_caf_foundations plan
rover landingzone_caf_foundations apply
rover landingzone_caf_foundations destroy

Service composition

Landing 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:
landingzoneoverview

By default, the blueprints are store locally in the landing zone, for instance, the hub_spoke landing zone which has a set a below:
localblueprint
A blueprint can also be used directly from the GitHub public blueprints: RemoteDevelopment

More to come soon on that!

Happy deployment with Azure landing zones, let us know your feedback and how you need it to evolve!

Contribute

Pull requests are welcome to evolve the framework and integrate new features.