Book Image

Infrastructure as Code for Beginners

By : Russ McKendrick
4 (1)
Book Image

Infrastructure as Code for Beginners

4 (1)
By: Russ McKendrick

Overview of this book

The Infrastructure as Code (IaC) approach ensures consistent and repeatable deployment of cloud-based IaaS/PaaS services, saving you time while delivering impeccable results. Infrastructure as Code for Beginners is a practical implementation guide that helps you gain a clear understanding of the foundations of Infrastructure as Code and make informed decisions when implementing it. With this book, you’ll uncover essential IaC concepts, including planning, selecting, and implementing the right tools for your project. With step-by-step explanations and real-world examples, you'll gain a solid understanding of the benefits of IaC and the scope of application in your projects. You'll learn about the pros, cons, and best practices of different IaC tools such as Terraform and Ansible, and their use at different stages of the deployment process along with GitHub Actions. Using these tools, you'll be able to design, deploy, and secure your infrastructure on two major cloud platforms, Microsoft Azure and Amazon Web Services. In addition, you'll explore other IaC tools such as Pulumi, AWS CloudFormation, and Azure Bicep. By the end of this book, you’ll be well equipped to approach your IaC projects confidently.
Table of Contents (15 chapters)
1
Part 1: The Foundations – An Introduction to Infrastructure as Code
5
Part 2: Getting Hands-On with the Deployment
9
Part 3: CI/CD and Best Practices

What is important when choosing a tool?

So, you have a new project – you know which cloud provider you will use, and your development team has given you an overview of their application – meaning you already have a good idea of the resources you will deploy and manage. You have been given free rein to choose which IaC tool to use – so how do you choose?

Personally, my approach is always to use the best tool for the job rather than trying to fit the job to the tool – that, in my experience, always ends up causing issues when it comes to deploying the code and managing the deployment once it has been deployed.

Let us discuss some of the key things you will need to consider.

Deployment types

There are two main types of deployment I come across, with the first being using IaC to repeatedly deploy the same resources in a predictable and consistent way.

The most common use case for this approach is for dev, test, and other lower environments, not...