Courseiva
CV0-004Chapter 9 of 18Objective 3.2

Provisioning, Configuration Management, and Orchestration

Provisioning, Configuration Management, and Orchestration – these three concepts are the foundation of modern cloud computing. Without them, setting up a single server takes hours of manual clicking, and managing a hundred servers becomes impossible. For the CV0-004 exam, you need to understand how these three work together to automate and scale IT infrastructure reliably.

12 min read
Intermediate
Updated Jul 23, 2026
Editorial oversight: Johnson Ajibi· Security Systems Architect · MSc IT Security · IEEE Senior Member

A simple way to picture Provisioning, Configuration Management, and Orchestration

The Head Chef Analogy

The Head Chef of a high-end restaurant arrives at the kitchen before dawn. The Head Chef does not start cooking immediately. First, they must provision: that means making sure every ingredient, every pan, every burner, every plate is ready and allocated for the day's service. They check the walk-in cooler, the dry stores, the spice rack, the dishwasher chemicals – everything that will be needed. This is like setting up the virtual servers, storage, and networking in the cloud before any application can run.

Once the ingredients are ready, the Head Chef moves to configuration management. They do not just dump flour, eggs, and sugar on the counter and hope a cake appears. They write a standardised recipe card that every line cook must follow: exact oven temperature, precise mixing time, specific brand of vanilla extract. If a new line cook starts tomorrow, they can read the recipe card and produce the same perfect cake every time. In IT, configuration management uses tools like Ansible or Chef to ensure every server has the same settings, the same installed software, and the same security rules.

Finally, the Head Chef does not treat each dish individually. Orchestration is the choreography of the whole kitchen: the appetiser, the main course, dessert, and the wine pairing must all be timed to arrive at the table together. The Head Chef tells the saucier to start the reduction when the grill fires the steak. They tell the pastry chef to plate the tarte tatin exactly when the main course is cleared. Orchestration in IT automates the sequence of tasks – deploying a web server, then the database, then the load balancer – so the whole system comes online in the right order, without anyone having to run each step by hand.

How It Actually Works

Provisioning is the act of making resources available. In the cloud, these resources are virtual machines (VMs) – simulated computers running inside a data centre – storage (like virtual hard drives), and networks (virtual switches and routers). Before someone can use a server, a cloud provider must allocate the compute power (CPU), memory (RAM), and disk space. This is called provisioning. There are two main approaches: manual provisioning, where an engineer clicks through a web console to create each resource, and automated provisioning, where code (like Terraform or AWS CloudFormation) defines the resources and creates them with a single command. Automation is faster, less error-prone, and repeatable.

Configuration management is what you do after the server exists. A freshly provisioned server is a blank slate – it has an operating system (like Ubuntu or Windows Server) but it has no useful software, no security settings, and no user accounts. Configuration management ensures every server is set up identically. This is done using tools such as Ansible, Chef, Puppet, or SaltStack. These tools store a "desired state" – a declaration of exactly what the server should look like: which packages to install (e.g., Nginx for web serving), which services to enable (e.g., SSH for remote access), which firewall rules to apply. The tool then connects to the server and makes it match that desired state. If a server drifts – someone manually changes a setting – the tool will detect it and correct it back. This is called "idempotency": running the tool multiple times produces the same result, not a pile-up of changes.

Orchestration is the coordination of multiple automated tasks across many servers and services. It answers the question: "In what order should we do all of this, and how do we handle dependencies?" For example, to deploy a web application, you might need to:

Provision a database server

Run a script that creates the database schema

Provision a web server

Install the application code on the web server

Configure the load balancer to send traffic to the web server

Run health checks to confirm everything works

Doing these steps manually in sequence is slow and prone to error. Orchestration tools (like Kubernetes, Docker Compose, or AWS Step Functions) define this entire workflow as code. They launch steps in parallel where possible – for instance, provisioning two web servers at the same time – and pause until a dependent step finishes. They also handle failures: if the database creation fails, orchestration can stop, roll back the provisioning, and alert the team. This is the difference between a single automated script and a resilient, production-ready deployment.

In summary, provisioning gives you the empty room, configuration management furnishes it to a consistent blueprint, and orchestration directs the movers to bring the furniture in the right order. On the CV0-004 exam, you will be asked to choose the right tool or approach for each of these three stages in a given scenario.

A flowchart showing the sequential relationship between provisioning, configuration management, and orchestration in a cloud deployment workflow.

Walk-Through

1

Analyse the Requirement

Before any automation, you identify what is needed: how many servers, which operating system, what software, and any dependencies between services. This step ensures the provisioning and configuration management plan matches the business need.

2

Write Infrastructure as Code Templates

You create a Terraform or CloudFormation file that declares all cloud resources: virtual machines, storage volumes, network subnets, and security groups. This file becomes the single source of truth for the infrastructure.

3

Provision Resources Automatically

Running the IaC template against a cloud provider (like AWS, Azure, or GCP) creates all the resources. The tool tracks the current state and only changes what is necessary – this is called 'drift detection'.

4

Apply Configuration Management to Each Resource

Using Ansible, Chef, or Puppet, you apply a desired state to each provisioned server. This installs packages, copies configuration files, starts services, and sets security policies. The tool runs periodically to maintain consistency.

5

Design the Orchestration Workflow

You define a sequence of steps – for example, provision database first, then configure it, then provision web servers, then attach them to a load balancer. Orchestration ensures steps run in the correct order and handles failures with rollbacks.

6

Test and Validate the Deployment

Automated health checks and integration tests run after orchestration completes. If a test fails, the orchestration tool can automatically roll back to the last known good state, minimising downtime.

7

Monitor and Remediate Drift

Configuration management tools run regularly to check that servers still match the desired state. If a developer manually changes a firewall rule, the tool re-applies the correct rule, maintaining security and consistency without human effort.

What This Looks Like on the Job

An IT professional at a mid-sized e-commerce company, let us call them Alex, needs to deploy a new online store platform that will run on 20 virtual machines in the cloud. Here is exactly what Alex does.

First, Alex uses an infrastructure-as-code (IaC) tool called Terraform to write a configuration file. This file describes every resource the store needs: 10 web servers (virtual machines running Linux), 5 database servers (running a managed database service), 2 load balancers to distribute traffic, and a virtual network with subnets and firewall rules. Alex runs terraform apply. This single command provisions all 17 servers, the network, and the load balancers in about 15 minutes. Before IaC, Alex would have clicked through a cloud console for each resource – that alone would take hours and risk missing a setting.

Next, Alex handles configuration management. Since all the web servers must run the same Nginx version, with the same custom configuration file, and the same SSL certificate, Alex writes an Ansible playbook. A playbook is a YAML file – a human-readable data format – that lists the desired state of each server. For the web servers, the playbook says: install Nginx version 1.24, copy the store.conf file from a central repository, enable HTTPS, and restart the service. Alex runs the playbook against all 10 web servers simultaneously. Each server is checked and configured in under two minutes. If one server had an old version, Ansible upgrades it. If a server was missing a certificate, Ansible copies it. The database servers get a different playbook that installs MySQL client libraries and configures connections.

Finally, Alex needs orchestration. The store deployment is not just one server – it is a new feature that touches the database, the web layer, and the content delivery network (CDN). Alex uses a tool called AWS Step Functions to define a state machine – a flow chart of steps. The steps are:

Step 1: Provision the database with Terraform (run IaC)

Step 2: Wait for database to be ready (health check)

Step 3: Run database migration script (add new tables)

Step 4: Provision the web servers with Terraform

Step 5: Configure web servers with Ansible

Step 6: Update the load balancer to include the new servers

Step 7: Update the CDN to purge the cache

Step 8: Run integration tests against the new store

Alex sets up the orchestration so that if Step 2 fails (database not ready), the whole process stops and sends an email alert. If Steps 1-3 succeed, Steps 4 and 5 run in parallel to save time. The result is a fully automated deployment that takes 20 minutes instead of a full day of manual work. This is the daily reality for cloud professionals – not memorising commands, but designing workflows that are reliable, repeatable, and auditable.

How CV0-004 Actually Tests This

The CV0-004 exam objective 3.2 tests your ability to implement provisioning and configuration management in a given scenario. The exam does not ask you to write Terraform or Ansible syntax. Instead, it presents a scenario – for example, "A company needs to deploy 50 web servers with identical settings. Which approach should they use?" – and you choose the correct methodology or tool category.

Key concepts the exam loves to test:

The distinction between provisioning (creating resources) and configuration management (setting up software on existing resources). A common trap: they give a scenario where servers already exist but need standardised settings, and an answer option says "provision new servers". That is wrong – provisioning would be irrelevant; you need configuration management.

Infrastructure as Code (IaC) – know that tools like Terraform and AWS CloudFormation are declarative (you declare the desired end state) and imperative (you write step-by-step scripts) both exist. The exam tests that declarative IaC is preferred for cloud provisioning because it handles drift and state management automatically.

Orchestration versus scripting – a script runs steps linearly, but orchestration handles parallelism, dependencies, and error recovery. Exam questions will ask: "A deployment has five steps, three of which can run at the same time. What should you use?" The answer is an orchestration tool, not a single script.

Desired state configuration – this is the core of configuration management. The exam will describe a scenario where servers keep getting misconfigured by developers. The correct answer is a configuration management tool like Ansible that enforces a desired state, not manual auditing.

Trap patterns to watch for:

"Configuration management" and "orchestration" are sometimes used interchangeably in the industry, but CV0-004 distinguishes them. If a question says "automatically deploy a multi-tier application in the correct order", orchestration is the key term, not just configuration management.

Infrastructure as Code is not the same as scripting. A script (like a bash script) runs commands one by one and does not track state. IaC tools track the current state of resources and only make changes to reach the desired state. The exam expects you to recognise this difference.

Tools are sometimes presented by name: Terraform (provisioning), Ansible (configuration management), Kubernetes (orchestration). You do not need deep product knowledge, but you need to know which category each tool belongs to.

Memorise these definitions exactly:

Provisioning: The act of allocating cloud resources (compute, storage, network).

Configuration management: The process of ensuring servers are in a consistent, desired state regarding installed software and settings.

Orchestration: The automated coordination of multiple tasks and services, managing dependencies and order of execution.

The exam will also test that configuration management can be agent-based (software installed on each server, like Chef) or agentless (connecting via SSH, like Ansible). You do not need to know every tool's details, but you should understand the trade-off: agentless is simpler to set up but less efficient for large fleets.

Key Takeaways

Provisioning allocates the underlying cloud resources (servers, storage, networks) – it is the first step, not the last.

Configuration management ensures every server runs the same software with the same settings, using a 'desired state' that is automatically enforced.

Orchestration coordinates multiple automated tasks, handling dependencies, parallelism, and error recovery across the entire deployment.

Infrastructure as Code (IaC) like Terraform lets you define your entire cloud environment in a file that can be version-controlled, reviewed, and reused.

A configuration management tool corrects 'drift' – when a server's actual state deviates from the desired state – without human intervention.

On the CV0-004 exam, always identify the specific problem – provisioning, configuration, or orchestration – before selecting the tool or methodology.

Declarative IaC (you state what you want, not how to achieve it) is preferred in the cloud because it automatically handles dependencies and state tracking.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Provisioning

Creates the infrastructure resource (e.g., a virtual machine)

Happens first in the deployment lifecycle

Tools: Terraform, AWS CloudFormation, Azure Resource Manager

Configuration Management

Configures software and settings on existing infrastructure

Happens after provisioning is complete

Tools: Ansible, Chef, Puppet, SaltStack

Declarative IaC

You specify the desired end state, not the steps to get there

Tool automatically determines the steps needed

Example: Terraform 'resource' blocks

Imperative Scripting

You specify every command step-by-step

Tool executes commands in order with no state tracking

Example: Bash script with 'apt install' commands

Configuration Management (agentless)

No software installed on the target server

Tool connects via SSH or WinRM to execute tasks

Example: Ansible

Configuration Management (agent-based)

An agent service runs on the target server

Agent periodically checks in with a central server

Example: Chef, Puppet

Orchestration

Manages dependencies and parallelism across multiple services

Includes built-in error handling and rollback logic

Used for complex, multi-step deployments

Simple Scripting

Runs commands sequentially with minimal logic

Fails at the first error without cleanup

Suitable for simple, single-server tasks

Watch Out for These

Mistake

Provisioning and configuration management are the same thing because both set up a server.

Correct

Provisioning creates the server resource itself (the virtual machine), and configuration management installs and configures software on that resource after it exists.

Beginners often see both as 'setting up a server' and merge them. The exam explicitly separates them, so understanding the boundary is critical.

Mistake

Orchestration is just a fancy word for running a shell script.

Correct

Orchestration tools manage dependencies, parallelism, state, and error handling across multiple services, while a simple script runs commands sequentially without awareness of external failures or rollback.

People naturally think of scripts as automation, but orchestration is a higher-level concept that scales to complex, multi-service deployments.

Mistake

Infrastructure as Code means you write scripts to create cloud resources.

Correct

Infrastructure as Code uses declarative or imperative templates to define resources, but scripts are not considered IaC because they lack state management and idempotency.

The term 'code' is misleading – beginners assume any code (like a bash script) counts as IaC. The exam tests that IaC tools track desired state versus actual state.

Mistake

Configuration management is only needed when you first set up a server.

Correct

Configuration management continuously enforces the desired state. If someone manually changes a configuration, the tool detects and corrects it – it is an ongoing process, not a one-time setup.

People think 'configure once, done'. Real environments drift, and the exam tests that configuration management tools remediate drift.

Mistake

All cloud provisioning tools are interchangeable – you can use any tool for any job.

Correct

Different tools are optimised for different clouds. AWS CloudFormation works only on AWS, while Terraform works across multiple cloud providers (Azure, AWS, GCP). The exam expects you to know when multi-cloud support matters.

Beginners see a list of tools and assume they are the same. The exam scenario often includes a hybrid cloud requirement, making Terraform the correct choice over a cloud-specific tool.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

What is the difference between Terraform and Ansible?

Terraform is a provisioning tool that creates cloud resources (servers, networks, storage). Ansible is a configuration management tool that configures software and settings on existing servers. Many teams use both together: Terraform for the infrastructure, Ansible for the software setup.

Do I need to learn a programming language to use configuration management tools?

No. Tools like Ansible use YAML, a human-readable data format, to define configurations. You do not need to code in Python or JavaScript – you just write simple declarations of what the server should look like.

Can I use configuration management without provisioning automation?

Yes, but it is inefficient. You could manually create five servers in a cloud console, then run Ansible to configure them. However, automating provisioning with IaC makes the whole process faster, repeatable, and less error-prone.

What does 'idempotent' mean in configuration management?

Idempotent means running the same configuration tool multiple times produces the same result, without causing side effects. For example, if a package is already installed, the tool will not try to install it again or create conflicts.

Is Kubernetes a configuration management tool?

Kubernetes is primarily an orchestration platform for containerised applications. It can manage the lifecycle of containers, but it is not typically used for configuring the underlying servers. Ansible or Chef are better suited for server-level configuration.

What happens if an orchestration step fails?

Orchestration tools can be configured to pause, roll back previous steps, send alerts, or attempt a retry. This is a key advantage over simple scripts, which would either continue blindly or crash without cleanup.

Do I need to know Ansible commands for the CV0-004 exam?

No. The exam tests concepts and scenario-based decision-making, not command syntax. You need to know when to use a configuration management tool versus a provisioning tool versus an orchestration tool.

Terms Worth Knowing

Keep going

You've finished Provisioning, Configuration Management, and Orchestration. Continue through the CV0-004 study guide to build a complete picture of the exam.

Done with this chapter?