On a typical Monday at CloudBolt we have a weekly meeting called “Chalk Talk” to discuss industry trends. Recently, Sam Collura from our Inside Sales Team asked, “When are we going to talk about Terraform?” and continued, “A lot of my prospects are asking about it, and… I think we need to be able to discuss our integration better.” Sam as many others are hearing is that Terraform has become quite popular for DevOps and developer workflows.
Terraform has been an important homework assignment of mine because the industry is getting more accustomed to agile workflows with code-based workflows. Sam’s question was not the first time and will not be the last time we’ll hear about it from our CloudBolt prospects.
After that Monday, I went to work and studied the engineering work from our team in Portland who, incidentally, just received the “Most Influential Technology Company in Oregon Award”. I found that we’ve been working on integrating with Terraform for quite some time to take advantage of its code-based provisioning of resources—since 2016 specifically. Although we don’t have an OOTB plugin today, our extensible framework complements Terraform a number of ways. Essentially, we can help to make IT administrators who automate with Terraform into heroes for their dev teams.
Terraform as Infrastructure-as-Code (IaC) is a great tool to get infrastructure to developers who use continuous integration/continuous delivery (CI/CD) application development workflows. The Terraform code that is used to deploy infrastructure is maintained in a GitHub repository with versioning so that incremental changes to the underlying infrastructure can be tracked and shared.
Developers who are coding applications need an environment where they can do coding with consistency, especially when multiple developers are working in environments that must be identical. Their adoption of Terraform is no coincidence, as developers and DevOps engineers have been doing a very similar version control with branches of code that they are developing to merge into the main core application. This helps to ensure that efficient and stable application code goes from development to testing and then into production without a hitch.
Over time, certain workflows using Terraform become common, so there is the ability to modularize parts of the deployment scripts to be reused for the wide range of infrastructure needs for developers. This is a great video to get familiar with how Terraform works, Provisioning VMs to Public Clouds with Terraform.
Customers can use Terraform Open Source or Terraform Enterprise from Hashicorp. The latter provides organizational features that help to manage development for enterprises.
Terraform & CloudBolt
CloudBolt works well with Terraform, especially when the scripts and development environments have matured and can be used in enterprise-wide workflows where visibility and control at scale take on more importance. CloudBolt can synchronize and manage running infrastructure from the various environments where infrastructure is deployed by Terraform. CloudBolt can also be used as the provider that Terraform calls to provision resources.
You can then configure CloudBolt and Terraform together to enforce quotas, power schedules, and expiration dates for enterprise-wide full, lifecycle management of the infrastructure. This can be enforced and reported for each business unit or group where the value of the infrastructure is tied directly to business outcomes.
Here’s a summary of key uses and benefits:
- Resource Management / Self-Service—Terraform scripts can access the CloudBolt API and execute any blueprint orchestrated to provision resources through any of its resource handlers. CloudBolt as a self-service portal can also be the starting point of any Terraform script. Having the connections to providers managed in a single platform can make it easier for IT admins and developers will not need to manage this part of the backend complexity.
- Cost Control—Synchronize inventory of Terraform-deployed infrastructure based on resource handlers in CloudBolt, then run checks on what is being utilized and who is using the infrastructure to help make better spending decisions.
- Extensibility—Use Terraform with CloudBolt to arm IT operations teams with more extensible infrastructure provisioning workflows that can be orchestrated at either the CloudBolt level or within Terraform from the developers. After development teams have “hardened” their Terraform scripts, they typically throw them over the fence to IT operations who can then manage them in production and provide end-users access.
The adoption of agile frameworks for both application development and infrastructure provisioning continues to be a huge differentiator for successful enterprises. The ability to innovate faster and deliver value responsive to your market demand is the underlying objective for using the code-based infrastructure provisioning from Terraform. Having the visibility and control from a single platform using CloudBolt gives you the ability to provide faster time to value with a self-service IT portal as well as the ability to control costs and respond to any changing requirements with an easy-to-use, extensible platform.