Infrastructure as code: Deploying Terraform with OVH

Yann Degat, Solutions Architect at OVH, already had a rich variety of experience before he joined OVH’s Public Cloud team. Having previously worked as a Technical Innovation Manager at the French travel company Oui SNCF (previously known as Voyages SNCF), the Java-trained developer became a DevOps several years ago. And for the last five years that he has spent building cloud infrastructures for start-ups and major accounts, he has also been diligently practicing infrastructure as code.

Since he was a customer of OVH before he joined the team, Yann is very aware of the company’s strengths and weaknesses, and is also familiar with the tools and solutions offered by major US cloud service providers.

The concept of a European cloud is very important to him, and it was no coincidence that he joined OVH. With this in mind, he is passionate about his aim to raise awareness of the solutions offered by Europe’s leading cloud service provider, and encourage people to use them alongside the solutions offered by US giants. This is what motivates him to work hard on improving the support available for using OVH solutions, and has driven him to work throughout the night on a few occasions.

With the expertise he has acquired, he says that “infrastructure as code is not optional anymore. It’s the only way to work nowadays, and is the main way to build a cloud infrastructure. This is especially the case in a multi-technological industry climate, which is rich in micro-services.” And as a DevOps, with automation now widely used, he believes that his responsibility is to “search tirelessly for the best tools”.

Beyond their own proprietary solutions, many cloud service providers are converging towards open-source and multi-provider solutions. As a result, when a user plans to build an infrastructure as code architecture, they have even more choice since they can choose to use the clouds already integrated onto these tools.

And where does OVH stand in all of this? “We need to show that OVH is doing this too, and make ourselves known in the DevOps community,” explains Yann.

Choosing Terraform

There are several cloud orchestration tools on the market that can be used for infrastructure as code. For Yann, Terraform* software was the best choice for what he needed, since “from the very beginning, it was designed to manage an infrastructure’s entire lifecycle. And also because it’s open-source, and has a very active community”. Finally, this solution stood out to Yann because it supports several providers. “From a multi-cloud and multi-technological infrastructure perspective, with Terraform you can describe the architecture to provision with different providers.” For Yann, “choosing an orchestrator is a bit like being a craftsman with your own toolbox! You select the tools you’re most comfortable using. The important part is what you do with them. With the Terraform chef recipes we’re writing, we’ll be able to demonstrate just how valuable our platform is, and show what we can do at OVH.”

Sharing the first templates

The concept of sharing is also something that Yann values highly. He has already started to make the first best practice packages he has developed available to the DevOps community, in Terraform modules. Sharing the first templates

•    Creating a multi-regional private network

“All DevOps need one, and building it from scratch is always a tricky task. With this, the user takes the template, enters their input variables, and in just a few minutes they have a multi-regional private network which is ready to host a high-availability infrastructure!” The user will also have access to OVH’s own fibre optic network, and get inter-region traffic for free. https://registry.terraform.io/modules/ovh/publiccloud-network/ovh/0.1.2

•    Getting started with Kubernetes

For Yann, this template was vital: “Whether people like it or not, Kubernetes is the tool that users are converging towards for all their needs. It’s about to become a unified platform, which will connect its users to all clouds around the world. With the installation template we have provided, users can come to grips with the tool and the way it has been integrated onto our cloud.” https://registry.terraform.io/modules/ovh/publiccloud-k8s/ovh/

Here are some examples: https://registry.terraform.io/modules/ovh/publiccloud-k8s/ovh/0.1.0/examples/public-cluster-cl

•    How to deploy an OpenStack cluster on OpenStack

This final use case is mainly useful for hosting development environments, and is also particularly well adapted for testing and deploying the latest versions of the OpenStack platform as soon as they are released. This template will be shared very soon.

And for users who want to get started using Terraform to interact with the OVH Public Cloud, Yann has already written a step-by-step guide for this, which is available here: https://github.com/ovh/terraform-ovh-commons

Stay tuned - there will be more templates coming soon.  

* Developed by HashiCorp to create and manage cloud-based IT infrastructures, Terraform is written in the Go language, and works in infrastructure as code mode. Operators can use it to manage their infrastructures using code rather than manual processing. https://www.terraform.io/