- 1 Section
- 10 Lessons
- unbegrenzt
- CI/CD, Automatisierung & IaC10
- 1.1Was ist CI/CD?
- 1.2CI/CD-Pipeline aufbauen: Phasen und Stages
- 1.3GitHub Actions: Workflows und YAML
- 1.4GitLab CI/CD: Pipelines und Jobs
- 1.5Jenkins: Grundlagen und Jenkinsfile
- 1.6Automatisiertes Testen in der Pipeline
- 1.7Ansible: Playbooks und Inventory
- 1.8Terraform: Infrastructure as Code
- 1.9Monitoring der Pipeline
- 1.10Aufgaben CI/CD
Was ist CI/CD?
CI/CD (Continuous Integration / Continuous Delivery) hat in den letzten 15 Jahren die Art revolutioniert, wie Software entwickelt und ausgeliefert wird. Wer heute eine Webanwendung oder Mobile-App betreut – ob als FISI im Operations-Bereich oder als FIAE in der Entwicklung – kommt um diese Konzepte nicht herum.
Diese erste Lektion klärt die Grundbegriffe: was sind CI, CD und CDeployment? Warum heißen sie so? Wann wurde das alles erfunden? Und warum eigentlich? Wir bauen das Fundament für die restlichen Lektionen – wo es dann konkret um GitHub Actions, Jenkins, Ansible und Terraform geht.
1) Das Problem ohne CI/CD
Bevor wir die Lösung verstehen, schauen wir das Problem an. Stell dir ein Software-Team von 2005 vor:
Fünf Entwickler arbeiten an einer Anwendung. Jeder programmiert lokal auf seinem Rechner, einmal pro Woche schickt jeder seine Änderungen per E-Mail oder SVN an einen Integrator. Der versucht alles zusammenzufügen – was Tage dauern kann („Merge Hell"). Tests werden manuell ausgeführt, oft erst kurz vor dem Release. Wenn alles läuft, kopiert ein Admin per FTP die Dateien manuell auf den Webserver. Erfolgt das nachts, hofft man dass nichts schiefläuft. Dieser Vorgang heißt „Release" und passiert vielleicht einmal pro Quartal.
Die Konsequenzen: viele Bugs, weil Tests zu spät kamen. Lange Release-Zyklen, weil jeder Release ein Großereignis war. Wenig Vertrauen ins eigene System, weil niemand wusste was passiert wenn man auf „Deploy" klickt.
2) Die Idee: Automatisierung des Software-Lifecycles
CI/CD ist die Antwort auf diese Probleme. Die Grundidee: jeden Schritt des Software-Auslieferungs-Prozesses automatisieren – von der Code-Änderung bis zum Live-Betrieb auf dem Produktionsserver.
Statt einmal pro Quartal release man mehrmals pro Tag. Jede kleine Code-Änderung durchläuft automatisch: Build, Tests, Code-Quality-Checks, eventuell Security-Scans, Deployment auf Test-Umgebung, eventuell automatisches Deployment auf Production. Das Ganze passiert in wenigen Minuten, ohne dass ein Mensch eingreifen muss. Wenn etwas schiefgeht, bricht die Pipeline ab und alle wissen sofort Bescheid.
Klingt nach Magie. Ist aber das, was Firmen wie Netflix, Amazon und Google seit über einer Dekade tun – tausende Deployments pro Tag.
3) Die drei Begriffe: CI vs. CD vs. CDeployment
Die Abkürzungen sind irreführend. Es gibt drei Begriffe, die alle mit „C" anfangen, und sie bauen aufeinander auf:
4) Anatomie einer Pipeline
Eine CI/CD-Pipeline besteht aus mehreren Stages (Phasen), die nacheinander ausgeführt werden. Jede Stage hat einen klaren Auftrag und kann erfolgreich sein oder fehlschlagen. Wenn eine Stage fehlschlägt, bricht die ganze Pipeline ab. Klick „Run" um eine typische Pipeline laufen zu sehen:
5) Klassisches Deployment vs. moderne CI/CD
Direkter Vergleich zwischen alter und neuer Welt:
- Release alle 3-6 Monate
- Tests am Ende, manuell durch QA-Team
- Deployment durch Admin per FTP/SSH
- Bugs werden spät entdeckt, sind teuer zu fixen
- Releases sind angstbehaftete Großereignisse
- Wer hat was geändert? Schwer nachvollziehbar
- Rollback im Notfall: Stunden bis Tage
- Mehrere Releases pro Tag möglich
- Tests bei jedem Commit, automatisch
- Deployment durch Pipeline, ein Klick
- Bugs werden in Minuten entdeckt
- Releases sind Routine, kein Drama
- Vollständige Audit-Trails in Git/Pipeline
- Rollback in 30 Sekunden möglich
6) Die Hauptvorteile
Warum lieben Entwickler-Teams CI/CD so sehr? Hier die Kerngewinne:
7) Geschichte und Entwicklung
CI/CD ist nicht neu, aber lange brauchte es Zeit zum Durchsetzen. Die Entwicklung in Kurzform:
8) DevOps und CI/CD
CI/CD ist eng verwandt mit dem Begriff DevOps. DevOps ist eine Kultur und Arbeitsweise, in der Entwicklung („Dev") und Betrieb („Ops") zusammenarbeiten statt sich gegenseitig die Schuld zuzuschieben. CI/CD ist das wichtigste technische Werkzeug dieser Kultur.
Klassisch waren Entwickler und Operations getrennt:
- Entwicklung: schreibt Code, möchte Features schnell rausbringen
- Operations: betreibt Server, möchte Stabilität und keine nächtlichen Notfälle
Konflikt: jeder will das Gegenteil. DevOps löst das durch gemeinsame Verantwortung („you build it, you run it") und gemeinsame Werkzeuge – allen voran CI/CD-Pipelines. Mehr Hintergründe in K53 DevOps-Grundlagen.
9) Die wichtigsten CI/CD-Tools
Markt-Übersicht der wichtigsten Tools, die in den nächsten Lektionen vertieft werden:
| Tool | Typ | Stärken |
|---|---|---|
| GitHub Actions | SaaS in GitHub | Marktführer, einfach, riesiges Marketplace, kostenlos für Public Repos |
| GitLab CI/CD | In GitLab integriert | Sehr mächtig, alles-in-einem (Repo+CI+Registry), gut self-hostbar |
| Jenkins | Self-hosted Server | Riesige Plugin-Ökosystem, sehr flexibel, älter aber weit verbreitet |
| CircleCI | SaaS | Schnell, viele Sprachen unterstützt |
| Travis CI | SaaS | Lange Zeit Standard für Open Source, heute weniger verbreitet |
| Azure DevOps | Microsoft Cloud | Für Enterprise mit Microsoft-Stack |
| Bitbucket Pipelines | Atlassian Cloud | Wenn du schon Bitbucket nutzt |
Du musst nicht alle kennen – aber die ersten drei (GitHub Actions, GitLab CI, Jenkins) sind heute die wichtigsten. In Bewerbungsgesprächen wird oft nach einem davon gefragt.
10) Verwandte Konzepte: IaC und Configuration Management
CI/CD ist nicht der einzige Automatisierungs-Baustein. Es gibt zwei weitere wichtige Konzepte, die zusammen mit CI/CD die moderne Operations-Toolkette bilden:
- Infrastructure as Code (IaC): Server-Infrastruktur wird mit Code beschrieben, nicht manuell klick-bestellt. Tools: Terraform, AWS CloudFormation, Pulumi. Mehr in L8.
- Configuration Management: Server-Zustand (installierte Pakete, Config-Dateien, Services) wird über Code definiert. Tools: Ansible, Puppet, Chef, SaltStack. Mehr in L7.
- Container-Orchestrierung: Kubernetes verwaltet Container im großen Stil. Eng mit Docker verbunden.
Ein typisches modernes Setup: Code wird in Git versioniert → CI/CD baut und testet → Container wird gebaut → Terraform provisioniert die Cloud-Infrastruktur → Ansible konfiguriert Server (oder Kubernetes übernimmt) → fertige Anwendung läuft. Alles automatisch, alles als Code.
11) Beispiel: eine simple GitHub Actions Pipeline
Damit du eine Idee bekommst wie eine echte Pipeline aussieht – hier ein einfacher GitHub Actions Workflow für ein Node.js-Projekt. Wir vertiefen das in L3:
Das ist alles. Diese Datei in dein Git-Repository legen, GitHub übernimmt den Rest. Bei jedem Push auf main oder bei jedem Pull-Request läuft die Pipeline: Code checkout, Node.js installieren, dependencies installieren, Tests laufen, build. Wenn alles grün ist, weißt du dass dein Code funktioniert.
12) Warum CI/CD lernen?
Konkrete Gründe als FISI oder FIAE-Azubi/in:
- Pflichtwissen in modernen Jobs: praktisch jede IT-Stellenanzeige nennt heute CI/CD-Erfahrung als Anforderung
- IHK-Prüfungsthema: in Abschlussprüfungen, besonders FIAE, kommen Pipeline-Konzepte oft vor
- Mehr Spaß im Job: keine nächtlichen Manuelle-Deploys mehr, keine „Geht bei mir aber"-Probleme
- Karriere-Boost: DevOps-Engineers sind sehr gefragt und gut bezahlt
- Eigene Projekte: auch für Hobbyprojekte machen CI/CD-Pipelines Spaß – GitHub Actions ist kostenlos
Zusammenfassung
CI/CD automatisiert den Software-Lieferprozess: Continuous Integration (CI) integriert Code-Änderungen mehrmals täglich mit automatischen Tests; Continuous Delivery (CD) macht Builds jederzeit deploybar; Continuous Deployment deployed automatisch in Produktion. Pipeline-Stages: Checkout, Build, Test, Quality, Package, Deploy – bei Fehler bricht alles ab. Erlaubt schnelle Releases, hohe Qualität, geringes Risiko. Wichtigste Tools heute: GitHub Actions, GitLab CI/CD, Jenkins. Eng verbunden mit DevOps-Kultur und IaC (Terraform, Ansible). Pflichtwissen für moderne IT-Berufe.
