Skip to content

Intro 2: Getting to know IaC

Dr. Rob Lambert, PhD edited this page Jan 16, 2018 · 13 revisions

IaC

Why do we use IaC?

  • Security: having machines that we can create and destry with their full configuration in a matter of seconds means we can destroy them at the first sign of trouble, and also kill them completely whenever not being used. This is a new paradigm of IT security.
  • Reducing human error: every time a system is set up by a human following a plan there is the chance of an error. Automating even the provisioning of machines removes the human element, which increases security and speed.
  • Auditing: by treating the creation of infrastructure with the same care as we treat code, under version control, with reviews, with testing, means we can audit who did what when and why far in the future.
  • Simplicity: knowing one interface and syntax for creating entire platforms reduces the complexity of our day-to-day job, and having a way to reset everything to scratch without worry means we can repeat things over and over again iteratively
  • Reproducible: When we make a platform, probably we will need to create it again somewhere else. Starting with this im mind means no duplication of effort in the future.
  • Maintenance: Having a continuously running system is difficult and costly. Having a system that is created on demand every time you need to use it reduces continuous maintenance requirements.

Why do you need to know about it?

IaC underpins the reason for choosing Terraform as a tool. If you don't know about IaC you are not going to be able to understand why we are using terraform and you are not going to use it correctly.

Skip over if:

You are an IaC specialist with a deep knowledge of Terraform (then why are you here?)

IaC

Video Introduction

PLAY AT 1.25 SPEED!

IaC

The headlines

  • Store desired state of a system in a human-and-computer-readable text file
  • keep desired state definition in version control
  • create and destroy machines and all infrastructure automatically, scripted, at will with little to no consequences
  • reduce human error
  • monitor and compare current state with desired state continuously