DevOps – How-Tos und Tutorials

DevOps bezeichnet eine Sammlung von Praktiken, um die Prozesse zwischen Softwareentwicklung ("Dev") und IT-Operations ("Ops") zu automatisieren, bzw. beides zu kombinieren. Ziel ist es Software schneller und zuverlässiger zu entwickeln, zu testen und in Produktion zu bringen.

Im Folgenden findest du eine Übersicht über die HappyCoders-DevOps-Tutorials.

JENKINS

TUTORIAL

Was du lernst
  • Installation von Jenkins
  • Manuelle Konfiguration von Jenkins-Build- und Release-Jobs für ein Maven-Projekt
  • Programmierung von Jenkins-Build- und Release-Jobs mit der Jenkins Job DSL
  • Erstellung von Views mit der Jenkins Job DSL
  • Konfiguration des Skript-Sicherheitssystems
  • Automatische Aktualisierung bestehender Jobs bei Änderungen im Job-DSL-Code
  • Vollautomatische Generierung neuer Jenkins-Jobs für neue Java-Projekte

ANSIBLE

TUTORIAL

WAS DU LERNST
  • Installation von Ansible unter Windows
  • Erstellung von Ansible Playbooks, Rollen und Tasks
  • Installation eines Betriebssystem-Images auf einem Root-Server mit Ansible
  • Anlegen von User-Accounts mit Ansible
  • SSH-Konfiguration mit Ansible
  • Konfiguration der Firewall mit Ansible
  • Setup von Docker mit Ansible
  • Installation von WordPress und MySQL als Docker-Container mit Ansible
  • Setup von HAProxy mit Ansible
  • Einrichtung eines kostenlosen HTTPS-Zertifikats von Let’s Encrypt mit Certbot

MANJARO

TUTORIAL

WAS DU LERNST
  • Auswahl einer Linux-Distribution
  • Auswahl eines Linux-Desktop-Environments
  • BIOS vs. UEFI / EFI
  • MBR vs. GPT
  • GRUB und GRUB-Boot-Optionen
  • Setup der Boot-Partition
  • Verschlüsselung der Festplatte
  • Erstellen eines Boot-Images
  • Übertragung von Daten eines mit BitLocker verschlüsselten Windows-Datenträgers

Warum DevOps?

Historisch waren Dev und Ops separate Teams: Die Entwicklungsabteilung programmierte die Software und lieferte sie an das Operations-Team aus. Dieses war dann für Installation und Betrieb zuständig. Dieser Prozess führte oft zu Problemen, weil z. B. Laufzeitumgebungen nicht identisch waren, Update-Pfade nicht funktionierten oder Fehler erst in Produktion auftraten. Die Abteilungen schoben sich die Schuld gegenseitig zu. Ein langer Feedback-Zyklus zwischen den Teams führte dazu, dass es mitunter Tage bis Wochen dauerte, bis Fehler behoben werden konnten.

Die enge Zusammenarbeit bzw. der Zusammenschluss beider Teams und die dadurch ermöglichten Praktiken führen zu kürzeren Release-Zyklen, höherer Qualität, weniger Fehlern, und der Möglichkeit durch kontinuierliche Auslieferung kritische Probleme schnell – d. h. in Minuten statt in Tagen oder Wochen – zu beheben.

Unterschied zwischen DevOps und agiler Entwicklung

Agile Softwareentwicklung löst Kommunikationsprobleme zwischen Kunden und Entwicklern. DevOps löst Kommunikationsprobleme zwischen Entwicklern und Operations und optimiert die Bereitstellung der entwickelten Software, unabhängig davon ob diese agil oder mit anderen Methoden entwickelt wurde. Agile Softwareentwicklung basiert auf Praktiken, die DevOps bereitstellt, wie Continuous Integration und Deployment.

Unterschied zwischen DevOps und Continuous Delivery

Continuous Delivery ist die Optimierung des technische Prozesses zur Bereitstellung von Software. DevOps bezeichnet die organisatorischen Strukturen bzw. den organisatorischen Wandel, der zu besserer Zusammenarbeit führt und damit die Bereitstellung von Continuous Delivery ermöglicht.