Operating modern computing platforms is a complex business. Not only do you have a diverse set of environments, but each has an extensive learning curve to understand how to implement, secure, and maintain over time. As with many other industry segments, the operations side has seen its transition to “as code” with the advent of… Continue reading Using Terraform for Easy and Efficient Deployments
Operating modern computing platforms is a complex business. Not only do you have a diverse set of environments, but each has an extensive learning curve to understand how to implement, secure, and maintain over time. As with many other industry segments, the operations side has seen its transition to “as code” with the advent of infrastructure-as-code. In this area, Terraform by HashiCorp does a lot of the work in providing the Dev in DevOps.
Why Use Terraform?
Terraform takes these diverse, discrete systems and fashions a consistent control language around them. Using the Terraform modules abstracts as much of the underlying cloud and orchestration platforms as possible, providing easy and consistent setup and teardown of deployments. Furthermore, portability between the various platforms is simplified, as Terraform allows for the reuse of, typically, 90% of the code when moving to new environments.
Terraform has modules for all the major cloud platforms such as OCI, AWS, Azure, GCP, most on-premise virtualization platforms like VMWare, HyperV, LibVirt, and other orchestration systems and their supporting software akin to Kubernetes and Helm.
Pairing Terraform with Red5
Using Terraform with Red5 deployments brings the same benefits:
- Consistently deploy configurations
- Easily modify deployments to adjust for changing needs
- Easily set up deployment test environments to test new features before release
Red5 is complex; using our Terraform modules allows users to consistently deploy a thoroughly tested environment in multiple regions or on numerous providers. In addition, with these modules, users can install anything from a single server to a geographically distributed cluster.
Red5 provides Terraform modules for the major cloud providers. Currently, we offer modules for OCI, AWS, Azure, and GCP. Linode, VMWare, and a few other providers are coming soon. These are available via the Terraform registry, where you can easily download the modules for use with both on-premise Terraform and Terraform Cloud. Each of these modules is customized for the specifics of the provider so that your only work is to create the configuration for your desired cluster as code and apply it. You can find Red5 Terraform modules and their documentation in the Terraform Registry: https://registry.terraform.io/modules/red5pro/red5pro
Red5’s Terraform modules function perfectly with Terraform Cloud or your locally deployed Terraform. Terraform Cloud offers an easy place to get started with Terraform deployments and handles many details for you. Running Terraform on your own is only slightly more challenging, but those experienced enough to understand deploying to cloud environments should be able to handle the details.
On the development side, the Terraform Configuration Language is simple enough to understand and get started with. Anyone with scripting experience should be able to handle the language; any difficulty lies in tying together the language and the specifics of each cloud provider. Fortunately, the Red5 Terraform modules have these specifics provided. Tutorials for Terraform Development can be found here: https://developer.hashicorp.com/terraform/tutorials
If you are rolling your own local Terraform with multiple users, you will need to manage the state and locking of the Terraform install. Terraform Cloud deals with concurrency for you, but if you are using your own, you have many options, including databases or S3 buckets. Ensure both state and locking are correctly configured for multiple-user access.
Red5’s Terraform Modules are our recommended method of installing, configuring, and managing Red5 in any environment. If Red5 doesn’t provide a Terraform module for the environment you are deploying into, contact us to see if we can create a new module for your use case. If you already have a deployment that doesn’t use Terraform, we highly recommend testing and deploying your next Red5 version using these modules.
Ready to move your project to Red5? We’d be happy to chat about utilizing our Terraform modules to simplify your deployments and increase efficiency. Contact info@red5.net or set up a call.