Terraform-Tutorial für Anfänger: Infrastruktur als Code von der ersten Datei bis zu den Modulen
Lernen Sie Terraform ohne Cloud-Konto oder Überraschungsrechnung. Beginnen Sie mit lokalen Dateien, um die Planung, Anwendung und Status zu verstehen, und wechseln Sie dann zu echten Cloud-Ressourcen, Modulen und einem Workflow, der für Teams sicher ist.
- Terraform erstellt und ändert Infrastruktur aus Textdateien, die Sie in Git behalten können.
- Der Kernworkflow besteht aus
init,plan,applyundplanund zeigt Änderungen an, bevor sie auftreten. - Die Statusdatei zeichnet auf, was Terraform verwaltet. Schützen Sie es und übergeben Sie es niemals an Git.
- Verwenden Sie Module, um Muster und Remote-Status mit Sperrung wiederzuverwenden, wenn Sie im Team arbeiten.
Das Herumklicken in einer Cloud-Konsole ist für einen Server in Ordnung. Es bricht zusammen, wenn Sie im Staging und in der Produktion dasselbe Setup benötigen oder wenn jemand fragt, wer letzten März eine Firewall-Regel geändert hat. Dieses Terraform-Tutorial für Anfänger zeigt Ihnen einen besseren Weg: Beschreiben Sie Ihre Infrastruktur im Code und lassen Sie sie von einem Tool Wirklichkeit werden.
Die meisten Tutorials beginnen mit einem Cloud-Konto, was das Abrechnungsrisiko erhöht, bevor Sie etwas gelernt haben. Wir beginnen mit dem Anbieter von Terraform local, der lediglich Dateien auf Ihrem Computer erstellt, sodass Fehler nichts kosten. Bei diesen Beispielen und der Beispielausgabe handelt es sich um Standardillustrationen, die wir für diesen Artikel nicht ausgeführt haben. Der genaue Wortlaut variiert je nach Version.
Was ist Terraform?
Terraform ist ein Infrastructure-as-Code (IaC)-Tool von HashiCorp. Sie schreiben Konfigurationsdateien in HCL, der HashiCorp-Konfigurationssprache, und beschreiben das gewünschte Endergebnis. Terraform ermittelt dann, was erstellt, geändert oder gelöscht werden muss, um dorthin zu gelangen.
Es kommuniziert mit Plattformen über Plugins namens Anbieter. Es gibt Anbieter für AWS, Azure, Google Cloud, Kubernetes, GitHub, Cloudflare und viele andere, sodass Sie für alle einen einzigen Workflow verwenden können.
Eines sollten Sie wissen: Im Jahr 2023 hat HashiCorp Terraform auf die Business Source-Lizenz umgestellt. Die Community erstellte dann OpenTofu, einen Open-Source-Fork, der sehr ähnliche Befehle und Konfigurationen verwendet. Was Sie hier lernen, gilt größtenteils für beide.
Warum Infrastruktur als Code?
| Frage | Manuelle Konsolenarbeit | Terraform |
|---|---|---|
| Wer hat was geändert? | Schwer herauszufinden | Git-Geschichte |
| Können wir das Staging in die Produktion kopieren? | Vorsichtiges Klicken | Verwenden Sie den Code erneut |
| Was wird diese Änderung bewirken? | Das erfahren Sie im Nachhinein | terraform plan zeigt es Ihnen zuerst |
| Kann es jemand bewerten? | Nicht einfach | Eine normale Pull-Anfrage |
| Notfallwiederherstellung | Hängt vom Gedächtnis der Menschen ab | Neu erstellen aus Code, plus Datensicherungen |
Terraform ist auch deklarativ. Sie geben an, dass es drei Server geben sollte, und nicht, dass Sie dreimal einen Server erstellen sollten. Wenn bereits zwei vorhanden sind, wird eins hinzugefügt. Ein Skript, das einfach seine Schritte wiederholt, könnte am Ende drei weitere erstellen.
Installieren Sie Terraform
Installieren Sie es mithilfe der offiziellen HashiCorp-Anweisungen für Ihr Betriebssystem und bestätigen Sie dann, dass es funktioniert:
terraform -version
Erstellen Sie einen leeren Ordner für das Projekt. Terraform liest jede .tf Datei im aktuellen Ordner, sodass ein Ordner einer Konfiguration entspricht.
Ihre erste Konfiguration
Erstellen Sie eine Datei mit dem Namen main.tf:
terraform {
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.5"
}
}
}
resource "local_file" "greeting" {
filename = "${path.module}/hello.txt"
content = "Hello from Terraform\n"
}
Schauen Sie sich den Block resource an, denn fast alles, was Sie schreiben, folgt dieser Form. local_file ist der Ressourcentyp und greeting ist Ihr eigener Name dafür innerhalb der Konfiguration. Zusammen bilden sie die Adresse: local_file.greeting. Die darin enthaltenen Argumente beschreiben, was Sie wollen.
Der Workflow: initiieren, planen, anwenden
Terraform-Init
Dadurch wird der Ordner vorbereitet und die von Ihnen angeforderten Anbieter heruntergeladen. Führen Sie es einmal zu Beginn und jedes Mal erneut aus, wenn Sie einen Anbieter oder ein Modul hinzufügen. Außerdem wird eine Datei .terraform.lock.hcl erstellt, in der die genauen Anbieterversionen aufgezeichnet werden. Übertragen Sie diese Datei an Git.
terraform init
Terraform-Plan
Dadurch wird Ihr Code mit dem Vorhandenen verglichen und die geplanten Änderungen angezeigt, ohne dass etwas davon berührt wird:
terraform plan
# local_file.greeting will be created
+ resource "local_file" "greeting" {
+ content = "Hello from Terraform\n"
+ filename = "./hello.txt"
}
Plan: 1 to add, 0 to change, 0 to destroy.
Lernen Sie die Symbole, denn Sie werden viele Pläne lesen:
| Symbol | Bedeutung |
|---|---|
+ |
Erstellen |
~ |
Update vorhanden |
- |
Zerstören |
-/+ |
Zerstören und neu erschaffen |
Terraform anwenden
Hier wird der Plan noch einmal angezeigt, um Bestätigung gebeten und die Änderungen vorgenommen:
terraform apply
Geben Sie yes ein und hello.txt wird angezeigt. Führen Sie nun terraform plan erneut aus. Es sollten keine Änderungen gemeldet werden, da die Realität bereits mit Ihrem Code übereinstimmt. Diese Eigenschaft, bei der die wiederholte Ausführung keine weitere Änderung bewirkt, wird als Idempotenz bezeichnet.
Verändern und zerstören
Bearbeiten Sie die Zeile content und führen Sie terraform plan aus. Terraform erkennt den Unterschied und schlägt eine Änderung vor. Für diese Ressource ersetzt es die Datei. Achten Sie auf Ersetzungen auf der realen Infrastruktur, da die Neuerstellung einer Datenbank zum Verlust von Daten führen kann.
Als nächstes löschen Sie hello.txt von Hand und planen erneut. Terraform bemerkt, dass es fehlt und bietet an, es neu zu erstellen. Ein Unterschied zwischen Ihrem Code und der Realität wird als Drift bezeichnet, und das Erkennen dieser Abweichung ist einer der Hauptvorteile des Tools.
Führen Sie Folgendes aus, um alles zu entfernen, was diese Konfiguration verwaltet:
terraform destroy
Variablen und Ausgaben
Fest codierte Werte verhindern die Wiederverwendung von Code. Eingabevariablen machen eine Konfiguration flexibel und Ausgaben melden nützliche Werte zurück:
# variables.tf
variable "environment" {
type = string
description = "Deployment environment"
default = "dev"
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Use dev, staging or prod."
}
}
# main.tf
resource "local_file" "config" {
filename = "${path.module}/${var.environment}.txt"
content = "environment=${var.environment}\n"
}
# outputs.tf
output "config_path" {
value = local_file.config.filename
}
Legen Sie Werte in der Befehlszeile fest oder speichern Sie sie in einer Datei namens terraform.tfvars, die automatisch geladen wird:
terraform apply -var="environment=staging"
Die Verwendung von local_file.config.filename in der Ausgabe dient auch dazu, wie Ressourcen aufeinander verweisen. Terraform liest diese Referenzen, um die richtige Reihenfolge für die Erstellung von Dingen zu ermitteln.
Terraform-Zustand
Nach der Bewerbung finden Sie eine Datei mit dem Namen terraform.tfstate. Dies ist die Aufzeichnung dessen, was Terraform verwaltet, indem es Ihren Code realen Objekten zuordnet. Ohne sie wüsste Terraform nicht, dass local_file.greeting diese bestimmte Datei ist.
Dabei spielen drei Regeln eine Rolle:
- Übertragen Sie den Status niemals an Git. Er kann Passwörter und andere Geheimnisse im Klartext enthalten.
- Bearbeiten Sie es nicht von Hand. Verwenden Sie Befehle wie
terraform state listundterraform state mv. - Verwenden Sie ein Remote-Backend für Teamprojekte. Ein gemeinsam genutztes Backend speichert den Status zentral und sperrt ihn, sodass sich nicht zwei Personen gleichzeitig bewerben können.
Hier ist ein typisches Backend mit Amazon S3, mit einem vorab erstellten Bucket:
terraform {
backend "s3" {
bucket = "my-company-terraform-state"
key = "shop/prod/terraform.tfstate"
region = "ap-south-1"
encrypt = true
use_lockfile = true
}
}
Tipp: Beginnen Sie jedes Projekt mit einer .gitignore, die .terraform/, *.tfstate, *.tfstate.* und alle *.tfvars Dateien mit Geheimnissen ausschließt.
Eine echte Cloud-Ressource
Der Arbeitsablauf ändert sich nicht, wenn Sie in eine Cloud wechseln. Hier ist ein S3-Bucket auf AWS. Überprüfen Sie zuerst die Preise und zerstören Sie alles, was Sie während des Übens erstellen:
provider "aws" {
region = "ap-south-1"
}
resource "aws_s3_bucket" "reports" {
bucket = "my-unique-reports-bucket-2026"
tags = {
Environment = var.environment
ManagedBy = "terraform"
}
}
Terraform erhält Anmeldeinformationen von Ihrem AWS CLI-Setup oder Ihren Umgebungsvariablen. Schreiben Sie niemals Zugriffsschlüssel in eine .tf-Datei.
Module
Ein Modul ist einfach ein Ordner mit Terraform-Dateien, den Sie mit verschiedenen Eingaben aufrufen können. Es funktioniert ähnlich wie eine Funktion und ermöglicht es Ihnen, ein Muster einmal zu definieren und es wiederzuverwenden:
project/
main.tf
modules/
reports_bucket/
main.tf
variables.tf
outputs.tf
module "staging_reports" {
source = "./modules/reports_bucket"
environment = "staging"
}
module "prod_reports" {
source = "./modules/reports_bucket"
environment = "prod"
}
Die öffentliche Terraform-Registrierung verfügt ebenfalls über vorgefertigte Module. Lesen Sie diese jedoch, bevor Sie sich darauf verlassen, und pinnen Sie die Version an. Bauen Sie Module nicht zu früh. Warten Sie, bis Sie ein Muster mindestens zweimal wiederholt haben.
Ein sicherer Teamworkflow
- Erstellen Sie einen Zweig und ändern Sie die
.tfDateien. Wenn Sie eine Auffrischung benötigen, sehen Sie sich unser Git-Tutorial für Anfänger an. - Führen Sie
terraform fmtundterraform validateaus. - Öffnen Sie eine Pull-Anfrage, wobei die Ausgabe von
terraform planzur Überprüfung angehängt ist. - Wenden Sie nach der Genehmigung den gespeicherten Plan von einem kontrollierten Ort aus an, idealerweise einer Pipeline.
Durch das Speichern des Plans wird sichergestellt, dass Sie genau das anwenden, was überprüft wurde:
terraform plan -out=tfplan
terraform apply tfplan
Dies passt natürlich in CI/CD und GitHub Actions. Terraform stellt normalerweise den Cluster bereit, und Tools wie Kubernetes führen dann darauf Anwendungen aus.
Häufige Fehler
- Bewerben, ohne den Plan zu lesen. Ein
-/+in einer Datenbank kann eine sehr teure Überraschung sein. - Status auf einem Laptop behalten. Wenn Sie diesen Laptop verlieren, verliert Terraform den Überblick über Ihre Infrastruktur.
- Manuelle Konsolenänderungen vornehmen. Sie verursachen Abweichungen und können bei der nächsten Anwendung rückgängig gemacht werden.
- Nicht angeheftete Versionen verwenden. Anbieter- und Modulversionen anpinnen, damit Upgrades absichtlich durchgeführt werden.
- Verwendung einer großen Konfiguration. Die Aufteilung nach Umgebung oder System begrenzt den Schaden eines Fehlers.
Fazit
Sie haben jetzt die Ideen gesehen, die hinter fast allen Terraform-Arbeiten stehen: Ressourcen deklarieren, den Plan überprüfen, ihn anwenden und den Staat schützen. Üben Sie mit dem local-Anbieter, bis sich der Arbeitsablauf natürlich anfühlt, und verwalten Sie dann eine kleine echte Ressource in einem kostenlosen Konto. Bringen Sie den Remote-Zustand und die Module ein, sobald mehr als eine Person oder mehr als eine Umgebung beteiligt ist.
Häufige Fragen
Wofür wird Terraform verwendet?
Terraform wird zum Erstellen und Verwalten von Infrastrukturen wie Servern, Netzwerken, Datenbanken und DNS verwendet, indem diese im Code beschrieben werden, anstatt sie manuell zu konfigurieren.
Ist Terraform kostenlos?
Die Nutzung der Terraform-CLI ist im Rahmen der Business Source-Lizenz kostenlos, obwohl die Bedingungen einige konkurrierende kommerzielle Nutzungen einschränken. HCP Terraform verfügt über kostenpflichtige Stufen und OpenTofu ist Open Source.
Was ist der Unterschied zwischen Terraform und Ansible?
Terraform stellt die Infrastruktur hauptsächlich deklarativ bereit. Ansible konfiguriert hauptsächlich Software auf vorhandenen Maschinen. Viele Teams nutzen beides, zuerst Terraform und danach Ansible.
Was ist eine Terraform-Statusdatei?
Es handelt sich um einen Datensatz, der Ihre Konfiguration realen Ressourcen zuordnet. Terraform nutzt es, um Änderungen auszuarbeiten. Es kann Geheimnisse enthalten, also bewahren Sie es sicher auf und halten Sie es von Git fern.
Muss ich Programmierkenntnisse haben, um Terraform zu lernen?
Nicht wirklich. HCL ist einfach und deklarativ. Das Verständnis der von Ihnen verwalteten Plattform, beispielsweise des AWS-Netzwerks, ist normalerweise schwieriger als die Sprache selbst.
Lerne weiter
Benötigen Sie Hilfe beim Testen, WordPress oder SEO?
Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.
Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung
Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.
KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert
KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…
Artikel lesen →DevOpsErklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht
Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…
Artikel lesen →SoftwareentwicklungAPI-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern
API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…
Artikel lesen →TestautomatisierungSpott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen
Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …
Artikel lesen →SoftwaretestsCode-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet
Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…
Artikel lesen →Datenbanken & SQLDELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck
DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…
Artikel lesen →Datenbanken & SQLErklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen
SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…
Artikel lesen →SoftwareentwicklungTypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler
TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…
Artikel lesen →SoftwareentwicklungPython *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen
Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…
Artikel lesen →SoftwareentwicklungPython-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet
Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…
Artikel lesen →Künstliche IntelligenzWas sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können
Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…
Artikel lesen →DevOpsÜberwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces
Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…
Artikel lesen →DevOpsDocker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten
Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…
Artikel lesen →TestautomatisierungTDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte
TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…
Artikel lesen →SoftwaretestsBenutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele
Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…
Artikel lesen →Datenbanken & SQLErklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen
SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…
Artikel lesen →Datenbanken & SQLSQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler
SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…
Artikel lesen →SoftwareentwicklungWas ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt
Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…
Artikel lesen →SoftwareentwicklungErklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen
Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…
Artikel lesen →SoftwareentwicklungErklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen
Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…
Artikel lesen →Künstliche IntelligenzWas sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt
Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…
Artikel lesen →DevOpsBlau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl
Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…
Artikel lesen →TestautomatisierungFlaky-Tests: Was sie verursacht und wie man sie endgültig behebt
Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…
Artikel lesen →SoftwaretestsLasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele
Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…
Artikel lesen →SoftwaretestsTestfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet
Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…
Artikel lesen →Datenbanken & SQLSQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben
An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…
Artikel lesen →Datenbanken & SQLSQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung
SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…
Artikel lesen →SoftwareentwicklungTutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen
Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…
Artikel lesen →SoftwareentwicklungUmgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen
Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…
Artikel lesen →SoftwareentwicklungPython-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen
Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…
Artikel lesen →Künstliche IntelligenzWas ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt
Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…
Artikel lesen →DevOpsLinux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen
Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…
Artikel lesen →TestautomatisierungSelenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten
Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…
Artikel lesen →SoftwaretestsÄquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt
Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…
Artikel lesen →SoftwaretestsSchweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele
Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…
Artikel lesen →Datenbanken & SQLTutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen
Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…
Artikel lesen →Datenbanken & SQLSQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen
SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…
Artikel lesen →SoftwareentwicklungSpickzettel für Git-Befehle: Die Befehle, die Sie tatsächlich verwenden, mit Beispielen
Ein Git-Befehls-Spickzettel, gruppiert nach Aufgabe: Setup, Staging, Branches, Remotes, Stash, Verlauf und Rückgängigmachen von Fehlern, mit Ausgabe…
Artikel lesen →SoftwareentwicklungErklärte JavaScript-Versprechen: Dann, Catch, Promise.all und häufige Fehler
JavaScript-Versprechen erklärt mit Code, den wir ausgeführt haben: Zustände, dann und Fangketten, Fehlerbehandlung, Promise.all, allSettled, Rennen …
Artikel lesen →SoftwareentwicklungPython-Wörterbuch-Tutorial: Methoden, Beispiele und gängige Muster
Ein Python-Wörterbuch-Tutorial mit Code, den wir ausgeführt haben: Diktate erstellen, lesen und aktualisieren, Schlüsselmethoden, Zusammenführung, V…
Artikel lesen →Künstliche IntelligenzWas ist RAG? Retrieval-Augmented Generation anhand eines Arbeitsbeispiels erklärt
Was ist RAG? Abruf-erweiterte Generierung Schritt für Schritt erklärt: Indizierung, Chunking, Einbettungen, Abruf, ein kleines funktionierendes Pyth…
Artikel lesen →DevOpsTerraform-Tutorial für Anfänger: Infrastruktur als Code von der ersten Datei bis zu den Modulen
Ein Terraform-Tutorial für Anfänger: Beginnen Sie ohne Cloud-Konto, lernen Sie Init, Planen und Anwenden, dann Variablen, Ausgaben, Status, Module u…
Artikel lesen →DevOpsDocker vs. Kubernetes: Hauptunterschiede, wie sie zusammenarbeiten und was Sie brauchen
Docker vs. Kubernetes erklärt: Was jeder tut, die gleiche App läuft mit beiden, Docker Compose und Swarm im Vergleich, die Dockershim-Änderung und w…
Artikel lesen →TestautomatisierungPytest-Tutorial für Anfänger: Vorrichtungen, Parametrisierung und reale Beispiele
Ein Pytest-Tutorial für Anfänger mit Tests, die wir auf Pytest 9.2 durchgeführt haben: Assertions, Fixtures, Parametrize, Conftest, Markers, tmp_pat…
Artikel lesen →SoftwaretestsSoftware Testing Life Cycle (STLC): 6 Phasen, Einstiegs- und Ausstiegskriterien, Beispiel
Der Softwaretest-Lebenszyklus erklärt: sechs STLC-Phasen mit Ein- und Ausstiegskriterien, Ergebnisse, ein Beispiel für eine funktionierende Anmeldef…
Artikel lesen →SoftwareentwicklungGit merge vs rebase: Unterschiede, Beispiele und wann man was nutzt
Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.
Artikel lesen →SoftwareentwicklungPython List Comprehension: Syntax, Beispiele und wann man darauf verzichtet
Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…
Artikel lesen →Datenbanken & SQLSQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)
SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…
Artikel lesen →