Interviewfrage für DevOps Engineer

Wie funktioniert Terraform State, und wie verwaltest du ihn im Team?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

State ist Terraforms Aufzeichnung darüber, welche echten Ressourcen zu welchen Konfigurationsadressen gehören, plus gecachte Attribute für die Plan-Berechnung. Im Team muss er in einem Remote Backend mit Locking liegen, etwa S3 mit nativem Lockfile-Support oder ein Managed Backend, damit nicht zwei Applies gleichzeitig laufen. Niemals in git committen, denn er enthält Secrets im Klartext, und lieber nach Blast Radius aufteilen als eine riesige Datei zu pflegen.

Warum Interviewer das fragen

Am State tun sich Teams weh, deshalb trennt diese Frage Leute, die Terraform in Produktion betrieben haben, von Leuten, die ein Tutorial durchgeklickt haben. Der Interviewer will Locking, Remote Backends, Secrets im State und aufgeteilte State-Dateien hören. Nachfragen gehen meist Richtung Recovery: was du machst, wenn State driftet, wenn jemand eine Ressource von Hand löscht oder wenn ein Apply mittendrin abbricht.

So baust du deine Antwort auf

  • Definiere State als Mapping zwischen Config und echten Ressourcen.
  • Erklär, warum Remote State plus Locking im Team Pflicht ist.
  • Deck Secrets im State und Zugriffskontrolle auf dem Backend ab.
  • Beschreib, wie du State aufteilst und warum der Blast Radius das treibt.

Beispielantwort

Gesprochenes Beispiel, erste Person

State ist die Karte zwischen dem, was ich im Code geschrieben habe, und dem, was beim Provider tatsächlich existiert, geschlüsselt über die Ressourcenadresse, plus ein Attribut-Cache, damit ein Plan nicht alles frisch lesen muss. Im Team liegt er in einem Remote Backend mit Locking, damit zwei gleichzeitige Applies ihn nicht korrumpieren. Was Leute überrascht: State enthält Ressourcenattribute wortwörtlich, also stehen Datenbankpasswörter und generierte Keys im Klartext drin. Der Bucket ist deshalb verschlüsselt, versioniert und auf die Pipeline-Rolle beschränkt, nicht für alle lesbar. Beim Layout teile ich nach Blast Radius und Änderungsrate. Networking und Accounts ändern sich selten und bekommen eigenen State, jeder Service oder jede Umgebung bekommt eigenen, und sie lesen voneinander über Data Sources oder veröffentlichte Outputs statt über ein Root-Modul, das alles hält. Der praktische Grund: Eine State-Datei mit fünfhundert Ressourcen macht jeden Plan langsam und jeden Fehler riesig. Für Recovery verlasse ich mich auf Bucket-Versionierung plus state mv und import statt die Datei von Hand zu editieren.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Was machst du, wenn jemand eine Ressource in der Konsole löscht?
  • Wie refactorst du die Modulstruktur, ohne Ressourcen zu zerstören?
  • Wie kommst du aus einem State Lock raus, den ein abgestürztes Apply hinterlassen hat?

Weitere Fragen für DevOps Engineer

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen