Skip to content
Muhammet Şafak
tr

Expertise

Terraform engineer — since 2020

I have described infrastructure in code with Terraform and set it up repeatably since 2020.

years
6

For me Terraform is not about setting infrastructure up once and forgetting it but about keeping how it was built readable in the repository. When what an environment consists of is written in a file, rebuilding it or reviewing a change is as ordinary as reviewing a change in code. The role side of this work is on the DevOps and infrastructure page.

Two layers stand right next to Terraform: Kubernetes, which runs containers on top of the infrastructure, and Linux on the server side. Terraform does not replace either; it describes the ground they stand on.

Terraform’s plan step shows what will be created, updated or destroyed before a change is applied; seeing a change before approving it is the part of this workflow I care about most.

What is the Terraform Engineer role?

Terraform is an infrastructure as code tool for building, changing and versioning cloud and on-prem resources. Infrastructure is described in human-readable configuration files. A Terraform engineer is the person who writes those files and makes sure the infrastructure is built from them.

What does the Terraform Engineer do?

I set up infrastructure from files I describe with Terraform, not by hand, so an environment can be rebuilt and a change can be followed in the repository. Alongside Terraform sit cloud providers such as AWS and Google Cloud, Cloudflare's DNS, proxy and content delivery layer, and [Kubernetes](/expertise/kubernetes/).

Technologies I pair it with

  • Terraform

    For describing infrastructure in code and setting it up repeatably.

  • AWS

    Cloud provider; virtual machines, storage and managed services.

  • Google Cloud

    Cloud provider; virtual machines, storage and managed services.

  • Cloudflare

    The DNS, proxy and content delivery layer in front of the application.

  • Kubernetes

    The orchestration layer where containers are run, scaled and restarted across machines.

  • GitHub Actions

    The CI/CD pipeline that defines test and deploy steps in the repository.

  • Jenkins

    The automation server that runs build, test and deploy steps.

Frequently asked

7 questions

  • How long have you worked with Terraform?

    Since 2020 — 6 years.

  • What is Terraform?

    Terraform is an infrastructure as code tool for building, changing and versioning cloud and on-prem resources. Resources are described in human-readable configuration files.

  • What does managing infrastructure as code mean?

    Setting up servers and services from files described with a tool like Terraform, not by hand. That makes the infrastructure repeatable and its changes trackable in the repository.

  • How does Terraform work?

    In three steps: you write the resources in a configuration file, Terraform produces an execution plan describing what it will create, update or destroy, and after your approval it performs the operations in dependency order.

  • What is Terraform state?

    The file Terraform uses to track the real infrastructure. It works out from that file what has to change for the infrastructure to match your configuration.

  • What is the difference between Terraform and Kubernetes?

    Terraform is for describing infrastructure in code and building it; Kubernetes is for running, scaling and restarting containers. They answer different questions and can be used together.

  • Which resources can Terraform manage?

    According to its documentation, it can manage cloud and on-prem resources; the resources can span several cloud providers and services. On my side these are cloud providers such as AWS and Google Cloud, and Cloudflare's DNS and proxy layer.

Let us work together

If you have work in this ecosystem, tell me what you are building and we will talk about how to build it.

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind