Terraform-The-Hard-Way

This tutorial contains a full explanation of how to use Terraform in today's world. Although there may be a lot of content out there for Terraform, it doesn't teach you how to think about Terraform with a developer hat on. I promise you that thinking about Terraform as a developer, even if you aren't one, will 100 percent put you ahead of many engineers out there.

You don't need to be a computer science major or a software engineer. You'll simply need to tweak your mindset a bit, very-much like we all do in the tech space as it changes.

This project will be prepared for anyone to digest. Don't worry, you don't have to feel intimidated because you're new to Infrastructure-as-Code. We'll be with you every step of the way.

With this project, you'll have the chance to not only help yourself as an engineer, but make a huge difference from an infrastructure and systems development perspective for all organizations.

Learn about how to create real-world solutions for setting up an environment that is using DevOps technologies and practices for deploying apps and cloud services/cloud infrastructure to AWS.

The repository contains free labs, documentation, diagrams, and docs for setting up an entire workflow and DevOps environment from a real-world perspective in AWS.

The Scenario

For this The Hard Way series, there will be two scenarios;

  1. New to Terraform
  2. Already using Terraform, but aren't super advanced

This project will cover both scenarios.

The first scenario is you're just getting started with Terraform, so you're still a bit green. It's the perfect time to learn.

The second scenario is maybe you've used Terraform a little bit for your work, or maybe you've seen Terraform being used, but you don't know the ins and outs of it.

Technologies Used

  1. AWS
    • AWS will be used to host the application, cloud infrastructure, and any other services we may need.
  2. GitHub
    • To store the application and infrastructure/automation code
  3. Terraform
    • Create all aspects of the automated systems and services in the cloud

Labs

  1. The Basics - Getting started with Terraform and understanding the concepts. Although this may be a lot of theory, it's super crucial for anyone that wants to be a true master at Terraform in the Infrastructure-as-Code space.
  2. Terraform Logic - Although HCL's logic like if statements and for loops are much different from other languages, they still exist. This section is to explain all about TF logic.
  3. Environment - When you're getting started with Terraform, you'll need to ensure that you have a proper environment configured and ready for your success.
  4. Modules - When you're writing Terraform code and storing it in a directory, you're creating a Module. Learn all about how to construct proper modules.
  5. Providers - Learn about how providers are configured and how you can start creating your very own provider!
  6. Terraform Cloud - one thing you'll learn about is Terraform State and how to manage it. Terraform Cloud can help with that amongst a ton of other features.
  7. First Project - Build your first Terraform project by using GitHub to store your source control and AWS to deploy services
  8. Game Time: Build A Real World Scenario - You've done it! You completed the labs around what you need to know to be a Terraform expert. Now it's time to build a real-world scenario that you can use in your portfolio, resume, or to show off to your friends.