Technology pageINFRASTRUCTURETier 2

Terraform

Scripted, reproducible, versioned infrastructure: the foundation of mature DevOps.

The topicWhat we're talking about

Terraform has transformed infrastructure management since 2014: instead of clicking through a cloud console to create servers, you write code describing the desired state, and the tool applies it. This is called 'Infrastructure as Code'. For an SMB or a technical team, the stake is concrete: your infrastructure becomes reproducible, versioned like application code, and if a server disappears, you can recreate it in 10 minutes instead of several days.

My opinionMy owned point of view

My take on Terraform: it's the default tool as soon as your infrastructure exceeds 5 cloud resources or you manage multiple environments.

For you, the gain is concrete: your servers become reproducible, your infrastructure is versioned like application code, and if a server disappears, we can recreate it in minutes instead of days. For 1-2 simple servers, it's still over-engineering: a Dockerfile suffices.

From 5 cloud resources onwards, it's the investment that spares you the drift and the emergency nights. The transition is less costly than people think if you start simple: one environment, one provider, gradual growth.

Relevant when
  • 5+ cloud resources to manage (servers, databases, buckets, networks)
  • Multiple environments (dev, staging, prod) to keep consistent
  • Team with multiple members where 'who did what on the cloud?' becomes a real question
  • Disaster recovery requirement: ability to rebuild infrastructure quickly
Skip it when
  • ×Single-server static setup: a Dockerfile and docker-compose are enough
  • ×No technical team: the tool doesn't create the culture
  • ×Experimental project that can be recreated manually without pain
+ Alternatives to considerOther paths depending on your profile
My approachHow I tackle it concretely
  1. 01

    Start minimal: one environment, simple modules, no over-engineering

  2. 02

    Remote and locked state (S3 + DynamoDB, or Terraform Cloud): never local state

  3. 03

    Reusable modules only when the pattern is confirmed across 2-3 uses

  4. 04

    Infrastructure tests (terraform plan in CI, optionally Terratest)

  5. 05

    Documentation alongside code: why this resource exists, not only how

Frequently asked questionsAbout this technology specifically
  • At how many servers does Terraform become useful?
    Starting at 5 cloud resources to manage (servers, databases, buckets, networks), or as soon as you have multiple environments to keep consistent. For 1-2 simple servers, it's usually over-engineering: a Dockerfile and docker-compose are enough. The breakeven point is often when you start wondering who modified what on the cloud.
  • Terraform or OpenTofu?
    OpenTofu is the open-source fork created after the HashiCorp license change in 2023, now maintained by the Linux Foundation. Technically 99% compatible with Terraform, and more aligned philosophically with pure open source. For new projects, OpenTofu is a defensible choice. For existing projects, migration isn't urgent.
  • What does it cost to set up Terraform on existing infrastructure?
    For an SMB with 5-10 cloud resources, expect 5 to 15 days of initial setup: inventory of existing resources, import into Terraform without breaking active resources, structuring into reusable modules, CI setup. Investment quickly amortized through reduced incidents and faster provisioning.
  • How do I avoid the badly-written Terraform trap?
    Three key rules: start minimal (one environment, simple modules), remote and locked state mandatory (never local state in a team), refactor into modules only when the pattern is confirmed across 2-3 real uses. The classic trap is over-abstracting too early before having domain experience.
  • Do I need to know AWS or GCP before Terraform?
    Yes, that's actually essential. Terraform is an infrastructure description tool, but it doesn't replace understanding the underlying cloud. You need to know what a VPC, an IAM role, a load balancer is. Terraform helps you deploy them reproducibly, but doesn't teach you how to design them.
INFRASTRUCTURE

A project involving Terraform?

Describe your context: I'll suggest the right level of investment.

First call
05 /Contact

Let's talk aboutyour project.

Describe your need in a few lines. Reply within 24h to plan next steps, detailed quote within 48h.

  • 24h response
  • NDA on request

By sending this form, you agree that your information will be used to respond to your request. Stored for 3 years, never shared with third-party advertisers. Learn more

Bordeaux & Nouvelle-Aquitaine