DevOps Flashcards
(18 cards)
Was versteht man unter DevOps?
Kultur & Methodik, die Entwicklung und IT-Betrieb verbindet
Ziele: schnellere, zuverlässigere Software-Releases
Kern: Zusammenarbeit, Automatisierung, CI/CD, kürzere Entwicklungszyklen
Was bedeuten die Begriffe CI und CD im DevOps-Kontext?
CI (Continuous Integration):
Häufiges Zusammenführen von Code mit automatischem Build und Test
CD (Continuous Delivery/Deployment):
Continuous Delivery: Software ist nach CI jederzeit auslieferbar (meist manuelles Go-Live)
Continuous Deployment: Automatisches Ausrollen bis Produktion nach erfolgreicher Pipeline
Ziel:
Schnelle, fehlerarme Releases durch Automatisierung
Warum ist Automatisierung so wichtig in DevOps?
Ermöglicht schnelle, fehlerfreie und wiederholbare Abläufe
Vermeidet manuelle Fehler, spart Zeit
Automatisiert Builds, Tests, Infrastruktur, Deployments (z. B. CI/CD, IaC)
Führt zu mehr Releases und höherer Qualität
Was ist eine CI/CD-Pipeline? Beschreibe typische Schritte.
CI/CD-Pipeline:
Automatisierte Abfolge vom Code-Commit bis zum Deployment
Typische Schritte:
Build (Code kompilieren/verpacken)
Test (automatisierte Tests)
(Optional) Codeanalyse, Security-Scan
Deploy to Staging (Testumgebung)
Deploy/Release to Production (Produktion, manuell oder automatisch)
Ziel:
Schnelle, wiederholbare, fehlerarme Auslieferung von Software
Was ist der Unterschied zwischen Continuous Delivery und Continuous Deployment?
Continuous Delivery:
Code jederzeit auslieferbar, Deployment auf Produktion erfolgt manuell
Continuous Deployment:
Deployment auf Produktion passiert automatisch nach jedem erfolgreichen Pipeline-Run
Unterschied:
Grad der Automatisierung im letzten Schritt (manuell vs. vollautomatisch)
Was ist Git und warum wird es im DevOps-Umfeld fast überall eingesetzt?
Git:
Verteiltes Versionsverwaltungssystem für Code
Nutzen im DevOps:
Nachvollziehbare Code-Historie, parallele Entwicklung über Branches
Basis für Automatisierung: CI/CD-Trigger, Infrastruktur als Code
Erlaubt Code Reviews (Pull/Merge Requests)
De-facto-Standard, schnelle, effiziente Zusammenarbeit
Was ist der Unterschied zwischen Git und GitHub (bzw. GitLab/Bitbucket)?
Git:
Versionskontrollsystem (lokal, CLI), verwaltet Repos und Code-Historie
GitHub/GitLab/Bitbucket:
Plattformen zum Hosten von Git-Repos mit Zusatzfunktionen (Web-Oberfläche, Issues, Pull-Requests, CI/CD, Zusammenarbeit)
Unterschied:
Git = reines Tool, GitHub & Co. = Services mit Teamfunktionen rund um Git
Wie initialisiert man ein neues Git-Repository in einem Projektordner?
Im Projektordner ausführen, um ein neues lokales Git-Repository zu erstellen
Erstellt .git-Verzeichnis für Versionsverwaltung
Danach Dateien mit git add hinzufügen und mit git commit speichern
Was bewirkt git status?
zeigt den Zustand des Arbeitsverzeichnisses und des Staging-Bereichs an.
Was ist der Unterschied zwischen git add und git commit?
Mit git add markiert man Änderungen zur Aufnahme in den nächsten Commit.
git commit erstellt dann einen neuen Commit
Was ist ein Branch in Git und wofür verwendet man Branches?
Branch (Git):
Paralleler Entwicklungszweig der Code-Historie (z. B. für Features/Bugfixes)
Nutzen:
Gleichzeitige Entwicklung ohne Hauptzweig zu stören
Zusammenführung (Merge) später möglich
Fördert Code-Organisation und Zusammenarbeit
Was ist ein Merge in Git und wie löst man Merge-Konflikte?
Merge (Git):
Kombiniert Änderungen zweier Branches (z. B. feature → main)
Merge-Konflikt:
Entsteht, wenn beide Branches dieselbe Stelle geändert haben
Git markiert Konflikte im Code («««< HEAD …)
Entwickler löst Konflikte manuell, entfernt Markierungen, führt git add und git commit aus
Tools:
Viele IDEs unterstützen beim Lösen von Konflikten
Was bedeutet HEAD in Git?
ist ein Zeiger auf den aktuellen Commit im aktuell ausgecheckten Branch.
Wie kann man den letzten Commit rückgängig machen
git revert <Commit-ID>:
Macht letzten Commit mit einem neuen Commit rückgängig (Undo bleibt sichtbar)
git reset HEAD~1:
Entfernt letzten Commit, als wäre er nie passiert (History wird geändert, nur lokal machen)</Commit-ID>
Was ist ein Fork eines GitHub-Repositorys?
Kopie eines fremden Repos im eigenen Account
Ermöglicht unabhängige Änderungen und Beiträge (z. B. via Pull Request)
Bleibt mit dem Original verknüpft, Upstream-Änderungen können übernommen werden
Typisch für Open-Source-Beiträge
Was ist ein Pull Request bzw. Merge Request?
Anfrage, Änderungen eines Branches in einen anderen einzufügen
Enthält Commits, Code-Diff, Kommentare, Review- und Merge-Möglichkeit
Zentral für Teamarbeit und Code-Review (GitHub: Pull Request, GitLab: Merge Request)
Was bedeutet “shift left” in Bezug auf DevOps und CI/CD?
Testen, Qualitätssicherung und Security möglichst früh im Entwicklungsprozess integrieren
Probleme werden schneller erkannt und behoben
Erhöht Softwarequalität, verkürzt Feedback-Zyklen
Was bedeutet GitOps?
Infrastruktur und Deployments werden als Code im Git-Repo versioniert
Automatisierungstools setzen den gewünschten Zustand aus Git im Cluster um
Änderungen laufen über Pull Requests und Commits
Vorteile: Nachvollziehbarkeit, Rollbacks, keine manuellen Ad-hoc-Änderungen