Infrastructure as Code

Marius Stanca, Software Engineer, Platform
@wmariuss

Slides available at smarius.gitlab.io/iac-presentation
source on GitLab, updated 2018-11-29

What is Infrastructure as Code?

IaC is a type of IT infrastructure provisioning process where systems are automatically built, managed and provisioned through code, rather than less flexible scripting or a manual process.

The benefits

  • Automate entire provisioning and deployment process
  • State infrastructure in source files
  • Store source files in version control
  • Validate each infrastructure change through code reviews and automated tests
  • Reusable, documented, battle-tested infrastructure packages that make it easier to scale and evolve the infrastructure

Automations Tools

  • Chef
  • Puppet
  • Ansible
  • Salt
  • Heat
  • Vagrant
  • Terraform
  • So on...

Terraform

Write, Plan, and Create Infrastructure as Code.

Why

  • Configuration Management vs Orchestration
  • Mutable Infrastructure vs Immutable Infrastructure
  • Procedural vs Declarative
  • Client/Server Architecture vs Client-Only Architecture

How Terraform works

Demo

  • Install Terraform
  • Build Infrastructure
  • Change Infrastructure
  • Provisioning
  • Destroy Infrastructure

Questions?