Introduction to Terraform and Terraform Modules

Alberto Castro

Slides: https://github.com/albertocastro63/terraform-nerd

"Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions." - Terraform website

This tool is used to deploy and maintain infrastructure in AWS, Google Cloud, and Azure. Dozens more services and infrastructure types can be managed too using available "providers" from Terraform. This talk will concentrate on using Terraform and examples will be given for AWS, so some knowledge of cloud infrastructure is assumed. Material will be covered as time permits.

Topics will include:
- Why Terraform?
- Basic examples of deployment of networks, virtual servers and databases.
- Terraform modular architecture (language and provisioners).
- Managing and storing Terraform state.
- Creating modules in Terraform for code reuse.
- Best practices.
- Terraform Registry.
- Terraform pros and cons, when to use it and when not to.
- One advanced example (if time permits).

All code and slides will be provided in github, and while this is not a hands-on tutorial you can experiment with it later on.

Drupal is a registered trademark of Dries Buytaert.