Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Mastering Terraform
Mastering Terraform

Mastering Terraform: A practical guide to building and deploying infrastructure on AWS, Azure, and GCP

eBook
€8.99 €29.99
Paperback
€37.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Mastering Terraform

Understanding Terraform Architecture

At its core, Terraform is a simple command-line program that evaluates source code, which describes what a desired state should look like, compares it against what the actual state is, constructs a plan to transform the actual state into the desired state, and can execute the plan. But don’t let its perceived simplicity fool you. Terraform’s internal complexity manifests itself in its external simplicity.

Terraform is a large, source-available project written in Go that maintains the command-line executable. It provides baseline functionality such as HashiCorp Configuration Language (HCL) parsing, state management, plan creation, and execution.

Terraform is extremely powerful, yet ironically, it does very little by itself. But here’s the exciting part: Terraform’s superpower comes from its extensibility, a power that is not limited to its creators. The actual Terraform executable, by itself, can’t do much...

Understanding Terraform architecture

The biggest differentiator of Terraform is that, well, Terraform plans ahead. Let’s look at how Terraform handles planning in detail.

The plan

When working with Terraform, you will be following a process where Terraform is used to analyze the existing environment. In doing this analysis, Terraform is determining what (if any) changes in the code need to be applied to the actual environment to bring it up to date. Terraform itemizes these changes as actions within the plan. While Terraform does this analysis on our behalf, produces the plan, and is fully capable of executing that plan against the environment, we are still responsible for reviewing the plan and determining if the planned changes are what we intended:

Figure 1.1 – Terraform resources are straightforward machines with inputs and outputs

Figure 1.1 – Terraform resources are straightforward machines with inputs and outputs

Terraform represents every component in your environment as a resource in this analysis. Resources...

Understanding Terraform state

Terraform uses the state to remember what was previously provisioned in a given workspace. Some critics of Terraform, when they compare it to AWS CloudFormation or ARM templates, point out that these technologies don’t rely on this concept of maintaining state in an externalized file. Of course, this is only true because these tools only support a single target platform and can tightly couple to the proprietary nature in which those platforms maintain state. However, Terraform—with its flexible plugin architecture—can’t assume anything about the platform and the resources that it provisions to each target platform. Therefore, Terraform needs to drop to the lowest common denominator and ensure that it knows what it has provisioned before in a uniform and consistent fashion.

This approach to maintaining the state provides a couple of benefits. First, it uniformly records what Terraform has provisioned across platforms that...

Understanding how to build and consume modules

One of Terraform’s most powerful capabilities is its ease of organizing and packaging reusable code, which increases the maintainability of your code base and improves the reusability of common patterns in your architecture.

Traditional developers have it easy—you must simply create a new method to encapsulate a reusable code block. In other IaC tools, doing the same thing is a challenge. In Terraform, all you need is a new folder.

Terraform scopes every module within a folder. When you run terraform init, Terraform transforms the current working directory into the root module of the workspace. You can use modules stored in other folders within the same repository just by using a relative path to reference the module. It is a standard convention within the Terraform community for storing local modules in a modules directory near the root module’s directory.

Consider this folder structure:

  &...

Understanding how to use the CLI effectively

Now that we understand Terraform’s core architecture, let’s examine its CLI and how to interact with it. There are many different commands, but we’ll focus on the important ones for implementing the core Terraform workflow. I’d encourage you to explore HashiCorp’s documentation for some of the more obscure ones, and later in Chapter 17, when we discuss managing existing environments using Terraform, we’ll be covering some more commands useful in that context.

init

This is an important command and probably the first one you will ever execute when working with Terraform. The reason is that Terraform works within a working directory instead of other tools that operate on a single file (such as ARM or CloudFormation) or an entry point file (such as Ansible). Terraform also relies on hidden directories to load important context about the workspace. This approach is very similar to how Git works...

Summary

In this chapter, we took an in-depth look at Terraform’s architecture. We primarily focused on two critical architectural components: state and modularity. Having a sound understanding of Terraform’s architecture is vital for you to be able to use Terraform to its fullest effectively. Finally, we ended by looking at Terraform’s CLI, which will enable you to, when you’re ready, integrate Terraform with your own CI/CD pipelines. In the next chapter, we will explore HCL so that we can lay the foundation on which we can start building IaC using Terraform.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Build comprehensive end-to-end solutions with Terraform using VMs, Kubernetes, and Serverless
  • Integrate Terraform with other HashiCorp products and common tools such as Packer, Docker, Kubernetes, and Helm
  • Streamline your operations using Gitflow powered by GitHub Actions CI/CD pipelines
  • Purchase of the print or Kindle book includes a free PDF eBook

Description

Advancements made in cloud technology and automation tools have led to increased challenges in defining and managing your infrastructure or app environment as code on your chosen cloud platform, integrating security, managing microservices complexity, and so on. This book takes a learning-by-doing approach to teach you how to employ Terraform features to develop efficient cloud infrastructure using real-world scenarios and best practices. The book begins by introducing you to Terraform's architecture, both as a command-line tool and a programming language, HashiCorp Configuration Language (HCL). You’ll discover best practices, usage, and architectural patterns and implement Terraform on virtual machines (VMs), Docker/Kubernetes, serverless, and multiple cloud platforms such as AWS, Azure, and GCP. The chapters also show you how to industrialize your CI/CD pipeline by integrating Terraform with other popular technologies to build, provision, deploy, and manage cloud infrastructure. You’ll gain a clear understanding of security, monitoring, troubleshooting, and cost optimization and be able to apply the concepts you’ve learned when preparing for Terraform Associate certification exams. By the end of this book, you’ll be equipped to confidently build, automate, and deliver your infrastructure and CI/CD pipelines in cloud-based applications.

Who is this book for?

This book is for Devops engineers, cloud engineers, platform engineers, infrastructure engineers, site reliability engineers, developers, and cloud architects who want to utilize Terraform to automate their cloud infrastructures and streamline software delivery. Prior knowledge of cloud architecture, infrastructure, and platforms, as well as Terraform basics, will help you understand the topics present in this book.

What you will learn

  • Explore Terraform architecture and configurations in depth
  • Integrate Packer with Terraform for VM-based solutions
  • Containerize apps with Docker and Kubernetes
  • Explore GitOps and CI/CD deployment patterns
  • Transform existing applications into serverless architectures
  • Migrate and modernize legacy apps for the cloud
  • Implement Terraform on AWS, Azure, and GCP
  • Use Terraform with teams of varying size and responsibility

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jul 26, 2024
Length: 494 pages
Edition : 1st
Language : English
ISBN-13 : 9781835088968
Languages :
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Jul 26, 2024
Length: 494 pages
Edition : 1st
Language : English
ISBN-13 : 9781835088968
Languages :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 120.97
Mastering Terraform
€37.99
Solutions Architect's Handbook
€44.99
The Linux DevOps Handbook
€37.99
Total 120.97 Stars icon
Banner background image

Table of Contents

26 Chapters
Part 1: Foundations of Terraform Chevron down icon Chevron up icon
Chapter 1: Understanding Terraform Architecture Chevron down icon Chevron up icon
Chapter 2: Using HashiCorp Configuration Language Chevron down icon Chevron up icon
Chapter 3: Harnessing HashiCorp Utility Providers Chevron down icon Chevron up icon
Part 2: Concepts of Cloud Architecture and Automation Chevron down icon Chevron up icon
Chapter 4: Foundations of Cloud Architecture – Virtual Machines and Infrastructure-as-a-Services Chevron down icon Chevron up icon
Chapter 5: Beyond VMs – Core Concepts of Containers and Kubernetes Chevron down icon Chevron up icon
Chapter 6: Connecting It All Together – GitFlow, GitOps, and CI/CD Chevron down icon Chevron up icon
Part 3: Building Solutions on AWS Chevron down icon Chevron up icon
Chapter 7: Getting Started on AWS – Building Solutions with AWS EC2 Chevron down icon Chevron up icon
Chapter 8: Containerize with AWS – Building Solutions with AWS EKS Chevron down icon Chevron up icon
Chapter 9: Go Serverless with AWS – Building Solutions with AWS Lambda Chevron down icon Chevron up icon
Part 4: Building Solutions on Azure Chevron down icon Chevron up icon
Chapter 10: Getting Started on Azure – Building Solutions with Azure Virtual Machines Chevron down icon Chevron up icon
Chapter 11: Containerize on Azure – Building Solutions with Azure Kubernetes Service Chevron down icon Chevron up icon
Chapter 12: Go Serverless on Azure – Building Solutions with Azure Functions Chevron down icon Chevron up icon
Part 5: Building Solutions on Google Cloud Chevron down icon Chevron up icon
Chapter 13: Getting Started on Google Cloud – Building Solutions with GCE Chevron down icon Chevron up icon
Chapter 14: Containerize on Google Cloud – Building Solutions with GKE Chevron down icon Chevron up icon
Chapter 15: Go Serverless on Google Cloud – Building Solutions with Google Cloud Functions Chevron down icon Chevron up icon
Part 6: Day 2 Operations and Beyond Chevron down icon Chevron up icon
Chapter 16: Already Provisioned? Strategies for Importing Existing Environments Chevron down icon Chevron up icon
Chapter 17: Managing Production Environments with Terraform Chevron down icon Chevron up icon
Chapter 18: Looking Ahead – Certification, Emerging Trends, and Next Steps Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(17 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Chris Williams Sep 19, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Mark's book is an absolute game-changer for anyone working with Terraform: whether you’re a seasoned DevOps engineer or just getting started with infrastructure as code. This book stands out with its clear, concise, and practical approach to mastering Terraform, making complex topics accessible and understandable.What sets this book apart is its hands-on, real-world examples that take you beyond the basics and into advanced Terraform concepts. Tinderholt does an exceptional job of breaking down sophisticated modules, state management, and best practices that are critical for managing scalable and reliable infrastructure. His deep insights into optimizing Terraform workflows and handling common challenges make this book an invaluable resource.Each chapter builds on the last, guiding you through everything from setting up your environment to deploying complex, multi-cloud architectures. The inclusion of tips and tricks learned from years of real-world experience adds incredible value, helping readers avoid common pitfalls and adopt best practices.“Mastering Terraform” is not just a technical manual; it’s a strategic guide that empowers you to leverage Terraform to its full potential. Mark Tinderholt’s expertise and passion for the subject shine through, making this a must-have book for your DevOps library. Highly recommended!
Amazon Verified review Amazon
Rafal Sep 21, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book gives tons of advice on how to apply Terraform in real life scenarios: what to watch out for, what particular constructs are best for and how to avoid pitfalls. You can tell that this advice is backed by years of experience. I definitely recommend the book!
Amazon Verified review Amazon
Carlos Carballo Jul 31, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I am really enjoying this book. It has been written in a way that very complicated matters seem easy. The AKS portion has really caught my attention!!Thank u Mark!!!!
Amazon Verified review Amazon
LK Aug 07, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Finally comprehensive, easy to read, well presented, up to date and including gitflow. Well worth getting!
Amazon Verified review Amazon
Jblaaa Oct 22, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Mark's does a great job explaining all the foundational elements of Terraform as well as provide great examples that can be applied to the real world. There is plenty of theory as well as applicable examples that helps the reader understand the 'why' behind the application of Terraform. Terraform workflows are Mark does a great job of running through the pros and cons of several popular workflows that can be found in the wild to help the reader understand and choose appropriately. Highly recommend anyone new or old to Terraform.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.