The best day of training – Terraform
My name is Richie Ganney and for the last three months, I’ve been part of the ECS Digital Training Academy.
I’d recently changed careers to study Software Engineering. With no prior experience of DevOps and what it really involved, I looked to gain a place on the Academy – a three-month program dedicated to getting newbies up to a professional standard of DevOps Engineering in a short space of time. Fortunately, I was offered a place and have been gaining a better understanding of what Software Engineering is ever since.
One of the best training days I’ve had so far was for Terraform. It was a two-day training course – led by one of the in-house, qualified consultants – to get us up to speed with the basic concepts of Infrastructure-as-Code and provisioning infrastructure with Terraform.
Day one consisted of both theory and practice. We were taken through some slides on what IaC and Terraform actually are, with some working examples of how you would build a simple AWS infrastructure. Then onto the good stuff – getting some hands-on experience writing Terraform.
We each had an ec2 instance (a virtual machine / server), spun up for us using Terraform (of course) to work with our code and git repository. By the end of the day we all had a git repository with the necessary code to build a classic AWS infrastructure. We covered a substantial amount including Terraform commands, modules, variables, resources, and access keys.
My personal preference when it comes to learning something new is just to start writing code, making mistakes and reflecting on what I’ve done. The first day allowed us to do exactly that by quickly covering off the theory and getting stuck in with the technology – but with supervision and support whenever we felt it was necessary.
To much of the Academy’s dismay, our ec2 instances, along with our code, was destroyed at the end of the day so we couldn’t use it as a point of reference on the second day of training. But that didn’t stop us!
Onto day two. We were given a real-life problem to solve and had five hours to solve it – along with preparing a short presentation to do at the end of the day on what we had learnt. Our task was to build a classic AWS infrastructure consisting of a VPC, a subnet, security groups, an internet gateway, route tables, a load balancer and three ec2 instances provisioned with a simple web server. We worked individually but could of course ask questions if we were ever painfully stuck.
I thought this was great, as again, we were thrown into the deep end and it encouraged us to really think about what we were doing and work under pressure on something completely new – something that could very well happen on a real client engagement. I think we all saw the benefit in the destruction of our day one code, as it solidified everything we had learnt by making us rethink and redo. The presentations at the end also provided a good opportunity for knowledge sharing and reflection, and it was interesting to see how others in the room had solved the problem.
Over the course of the two days, my knowledge of IaC and Terraform went from pretty much nothing to a good theoretical understanding of what it is and how it fits into the DevOps world, and basic knowledge of how to write code in Terraform and spin up and provision an AWS infrastructure.
And this was just two days out a three-month Academy!
To discover more about the Academy, read Ayush’s story here.