Infrastructure as code: Using Terraform with the OVH Public Cloud
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 practising IaC (infrastructure as code).
Since he was an OVH customer before he joined the team, Yann is fully 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 therefore no coincidence that he joined OVH. With this in mind, he is passionate about his goal of raising awareness of the solutions offered by Europe’s leading cloud services provider, and encouraging 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 “IaC is not optional any more. It’s the only way to work nowadays, and is the main way to build a cloud infrastructure. This is especially true 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 moving towards open-source and multi-provider solutions. As a result, when a user plans an IaC architecture, they have even more choice, since they can choose to use the different clouds already integrated with 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.
There are several cloud orchestration tools on the market that can be used for IaC. 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 orchestrate 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 templates 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, as Terraform modules. The first templates he has shared are:
- 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 that 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 on which all usages are converging. 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 get to grips with the tool and the way it has been integrated with our cloud.” https://registry.terraform.io/modules/ovh/publiccloud-k8s/ovh/ You can find some examples of how to launch a basic Kubenetes infrastructure here: 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, 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 uses an IaC approach. In other words, operators can use it to manage their infrastructures using code rather than manual processing. https://www.terraform.io/