Terraform – “Terraform enables you to safely and predictably create, change, and improve production infrastructure”
Using Terraform I was able to deploy a virtual machine, virtual networks, sql server and an sql database to Azure. It looks like a very useful tool for not only creating infrastructure via code in Azure but then also for adding/updating/removing pieces of that infrastructure (or deleting it entirely).
I only deployed a single VM with a single NIC but it seems simple enough to scale this number up, so with just a few lines of Terraform config we could deploy 100’s of virtual machines.
What Terraform does not do is any state configuration of those servers, so you’d end up with 100 vanilla Windows or Linux servers. So we would need another service to apply some configuration to the servers, something like Puppet, Chef or PowerShell DSC. These would be used to install software such as anti virus, monitoring agents, Octopus tentacles etc etc.