vRA & Terraform: A New Way to Deploy
On January 28th 2021, I presented at the Automation User Group about vRealize Automation and Terraform and how they work together to provide a new way to deploy your infrastructure. The recording of the session will be available here and the slides are available from here.
- vRealize Automation Cloud
- What is Infrastructure as Code?
- Two Approaches: Imperative vs Declarative
- What is Terraform (OSS)?
- Additional Resources
vRealize Automation Cloud
VMware vRealize Automation (vRA) Cloud allows you to provide multi-cloud infrastructure and application delivery to your end-users. It enhances the visibility of your machines across your different private and public cloud providers, enables collaboration and provides continuous delivery and release automation.
vRealize Automation Cloud is comprised of three services: Cloud Assembly, Service Broker and Code Stream. To understand these services more, have a read of this post.
- Available on-premises (vRA 8) or SaaS (vRA Cloud)
- Easy to Get Started – All you need is a Credit Card
- Cheap to Learn – List Price ($ per Node) $0.03555/hour *
- Available Globally – US, Frankfurt, Sydney and Singapore
- Familiar to vRA 8 – Same code base, updated monthly
What is Infrastructure as Code?
Infrastructure as Code (IaC) is a way to manage and provision your infrastructure by using machine-readable configuration files. These configuration files can then be stored in a version control system like GitHub or GitLab which enables you to share these configurations across your team.
A benefit to using IaC is that it can speed up your deployment times significantly, whilst reducing your risk by creating consistent builds every time. Because the configuration is done in code, it is of course easily repeatable and you can reuse the same code to deploy across different environments such as development, user acceptance testing and production.
Two Approaches: Imperative vs Declarative
There are two approaches to IaC languages and these are Imperative and Declarative.
An Imperative language is where you define the steps to be performed in your code, to achieve a given result. Examples of this include PowerCLI, vRO / JavaScript and Python.
A Declarative language is where you define what end result you want, and not the exact steps or the 'how'. Examples include Terraform, Ansible, Puppet, Chef, PowerShell DSC.
What is Terraform (OSS)?
Terraform OSS is an open-source, free and simple executable file. It enables you to write your Infrastructure as Code in the HashiCorp Configuration Language (HCL). The real value from Terraform comes with the integration with providers. Today there are over 200 provider integrations including vSphere, AWS, Azure, GCP, K8s, Datadog, Grafana, F5, MongoDB, Artifactory, GitLab available on the Terraform Registry here.
Additional Resources
Below is a list of blog posts in this series and they will be linked here once they are published in the coming week.
- Create Your First vSphere Terraform Configuration
- Setup vRealize Automation using Terraform
- Create vRA Deployment using Terraform
- Extending vRA with Terraform Configurations
- Deploy a GCP Auto-Scaling Web Server
- Import Terraform Configurations to vRA