Infrastructure as Code (IaC)
Why is Infrastructure as Code (IaC) important and what possibilities do you have with Google Cloud?
Infrastructure as Code is a modern software delivery method that has emerged through advancements in cloud computing. IaC refers to treating your infrastructure as if it’s a piece of software. A simple implementation of IaC is writing code that can specify the infrastructure setup of an application or service in a declarative way. Once you have written the code, any authorized member of your tech team can execute it to rebuild IT infrastructure automatically, and the result will always be the same every time. We will look at the benefits of IaC in another section below.
Infrastructure as Code – Google Cloud Offerings
The Google Cloud Platform has a huge range of tools fitting into its large ecosystem to improve the developer experience. If the tool is not available in their ecosystem, Google Cloud strives to have good partnerships and integration with third-party tools.
To enable IaC, Google offers different approaches, one of them is the Deployment Manager. This tool allows you to use a YAML configuration file to specify all the resources needed to run your application. In this YAML file, you include declarative instructions to launch the resources that your application will use. Optionally, you may add Python or Jinja2 code templates to parameterize the configuration file, hence allowing the reuse of deployment patterns, such as load balancing and auto-scaling instance groups. Using this YAML configuration, you can perform repeatable deployments that are identical.
Another approach for IaC in Google Cloud is Terraform. Terraform is a tool from HashiCorp, a tech company that partnered with Google. Terraform is an open-source tool that you can use to provision Google Cloud resources with declarative configuration files. It allows you to provision resources, such as containers, virtual compute engines, storage buckets, and networking infrastructure. Terraform supports IaC by allowing you to manage the configuration files in source code repositories. This facilitates the deployment of unified testing and production environments.
Benefits of Infrastructure as Code (IaC)
Automated Deployments reduces human error: once you have written and fully tested deployment configuration scripts, any authorized member of your team can run the build process. You don’t have to worry about the wrong infrastructure being deployed because using the same configuration file will always deliver the exact same infrastructure with the same software versions and dependencies.
Easy to change or make upgrades to the infrastructure: since IaC supports using configuration files from source code repositories, you can easily make changes to your YAML configuration file, push it to a Git repository of your choice and invoke the build process.
Improved efficiency: IaC allows software development teams to focus on building and improving their application logic since they don’t have to worry about building a delivery infrastructure whenever they make changes to the application source code.
Faster Deployments: running on Google Cloud’s virtualized and scalable infrastructure, provisioning and configuration happen at amazing speed, so your infrastructure is ready to serve applications within seconds.