Skip main navigation

New offer! Get 30% off one whole year of Unlimited learning. Subscribe for just £249.99 £174.99. New subscribers only. T&Cs apply

Find out more



In the previous step, we examined database as code. This step describes various types of target environments that we need to think about when we are dealing with Infrastructure as Code and Configuration as Code.

There are three very common environments at play when we consider target environments:

  1. Infrastructure as a Service (IaaS)
  2. Platform as a Service (PaaS)
  3. Containers

Infrastructure as a Service

With Infrastructure as a Service, the machines are generally hosted for you. It is typically an instant computing infrastructure, provisioned and managed over the internet in the cloud. Choosing an Infrastructure as a Service environment depends on the application you are using and scaling is done by adding machines instead of percentage.

The key with Infrastructure as a Service is that you need to have very sophisticated Infrastructure as Code and Configuration as Code tool. You will commonly have scripts that sit in version control, but outside of the application, that work to host that application and coordinate that infrastructure to host the application.

Platform as A Service

In a Platform-as-a-Service, you working against a hosted platform that defines an infrastructure for you. In this environment, Infrastructure as Code and Configuration as Code is fairly dramatically simplified into some type of configuration file that often sits with the application itself in version control.

A benefit of using a Platform as a Service is that the tools required for scaling, shrinking and securing applications and environments, are built into the Platform as a Service.


You can partition your environments in containers such as Docker and are considered lighter weight than virtual machines. You can run one or multiple containers on a shared OS.

To build your container up, you typically make use of Docker files. To orchestrate multiple Docker containers to create a managed environment, you can use Docker Swarm or something similar. This will help you create Infrastructure as Code and Configuration as Code for your containers.

Join the discussion

Do any of the three options described here appeal to your current projects’ needs? How are you currently handling machine & environment virtualisation?
Use the discussion section below and let us know your thoughts. Try to respond to at least one other post and once you’re happy with your contribution, click the Mark as complete button to check the step off, then you can move to the next step.

In the next step, we will learn about infrastructure as a service environment.

This article is from the free online

Microsoft Future Ready: Fundamentals of DevOps and Azure Pipeline

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now