Python für DevOps

Book description

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

In den letzten zehn Jahren hat sich in der Technologie viel verändert. Daten sind heiß, die Cloud ist allgegenwärtig, und viele Unternehmen brauchen eine Form der Automatisierung. Im Zuge dieses Wandels ist Python zu einer der beliebtesten Sprachen der Welt geworden. Dieses praktische Handbuch zeigt dir, wie du Python für alltägliche Aufgaben der Linux-Systemadministration mit den derzeit nützlichsten DevOps-Tools wie Docker, Kubernetes und Terraform einsetzen kannst.

Für Millionen von Berufstätigen ist es unerlässlich zu lernen, wie man mit Linux interagiert und automatisiert. Python macht es viel einfacher. In diesem Buch erfährst du, wie du mit Containern Software entwickeln und Probleme lösen kannst und wie du deine Software überwachen, instrumentieren, Lasttests durchführen und in Betrieb nehmen kannst. Du suchst nach effektiven Wegen, um in Python "etwas zu erreichen"? Dies ist dein Leitfaden.

  • Grundlagen von Python, einschließlich einer kurzen Einführung in die Sprache
  • Wie du Texte automatisierst, Kommandozeilen-Tools schreibst und das Dateisystem automatisierst
  • Linux-Dienstprogramme, Paketverwaltung, Build-Systeme, Überwachung und Instrumentierung sowie automatisierte Tests
  • Cloud Computing, Infrastruktur als Code, Kubernetes und Serverless
  • Operatives maschinelles Lernen und Data Engineering aus einer DevOps-Perspektive
  • Aufbau, Einsatz und Betrieb eines Projekts für maschinelles Lernen

Table of contents

  1. Vorwort
    1. Was bedeutet DevOps für die Autorinnen und Autoren?
    2. Wie man dieses Buch benutzt
      1. Konzeptionelle Themen
    3. In diesem Buch verwendete Konventionen
    4. Code-Beispiele verwenden
    5. O'Reilly Online Learning
    6. Wie du uns kontaktierst
    7. Danksagungen
      1. Noah
      2. Kennedy
      3. Alfredo
      4. Grig
  2. 1. Python Grundlagen für DevOps
    1. Installieren und Ausführen von Python
      1. Die Python-Shell
      2. Jupyter Notebooks
    2. Prozedurale Programmierung
      1. Variablen
      2. Grundrechenarten
      3. Kommentare
      4. Eingebaute Funktionen
      5. Drucken
      6. Reichweite
    3. Ausführungskontrolle
      1. if/elif/else
      2. für Schleifen
    4. while-Schleifen
    5. Umgang mit Ausnahmen
    6. Eingebaute Objekte
      1. Was ist ein Objekt?
      2. Objektmethoden und Attribute
      3. Sequenzen
    7. Funktionen
      1. Anatomie einer Funktion
      2. Funktionen als Objekte
      3. Anonyme Funktionen
    8. Reguläre Ausdrücke verwenden
      1. Suche
      2. Zeichensätze
      3. Charakter-Klassen
      4. Gruppen
      5. Benannte Gruppen
      6. Alle finden
      7. Iterator finden
      8. Substitution
      9. Kompilieren
    9. Faule Bewertung
      1. Stromerzeuger
      2. Generator-Verständnisse
    10. Weitere IPython-Funktionen
      1. IPython zum Ausführen von Unix-Shell-Befehlen verwenden
    11. Übungen
  3. 2. Dateien und das Dateisystem automatisieren
    1. Dateien lesen und schreiben
    2. Reguläre Ausdrücke für die Textsuche verwenden
    3. Umgang mit großen Dateien
    4. Text verschlüsseln
      1. Hashing mit Hashlib
      2. Verschlüsselung mit Kryptografie
    5. Das os-Modul
    6. Dateien und Verzeichnisse mit os.path verwalten
    7. Verzeichnisbäume mit os.walk ablaufen
    8. Pfade als Objekte mit Pathlib
  4. 3. Arbeiten mit der Kommandozeile
    1. Arbeiten mit der Shell
      1. Mit dem sys-Modul mit dem Dolmetscher sprechen
      2. Umgang mit dem Betriebssystem mithilfe des os-Moduls
      3. Prozesse mit dem Modul subprocess erzeugen
    2. Erstellen von Kommandozeilen-Tools
      1. sys.argv verwenden
      2. Argparse verwenden
      3. Mit Klick
      4. Feuer
      5. Plug-ins implementieren
    3. Fallstudie: Python mit Kommandozeilen-Tools auf Vordermann bringen
      1. Verwendung des Numba Just-in-Time (JIT) Compilers
      2. Nutzung der GPU mit CUDA Python
      3. Echtes Multicore-Multithreading in Python mit Numba
      4. KMeans Clustering
    4. Übungen
  5. 4. Nützliche Linux-Dienstprogramme
    1. Disk Utilities
      1. Leistung messen
      2. Trennwände
      3. Abrufen von spezifischen Geräteinformationen
    2. Netzwerk-Dienstprogramme
      1. SSH-Tunneling
      2. Benchmarking von HTTP mit Apache Benchmark (ab)
      3. Belastungstests mit molotov
    3. CPU-Dienstprogramme
      1. Prozesse mit htop ansehen
    4. Arbeiten mit Bash und ZSH
      1. Anpassen der Python-Shell
      2. Rekursives Globbing
      3. Suchen und Ersetzen durch Eingabeaufforderungen
      4. Entfernen von temporären Python-Dateien
      5. Auflistung und Filterung von Prozessen
      6. Unix Zeitstempel
    5. Python mit Bash und ZSH mischen
      1. Zufallsgenerator für Passwörter
      2. Existiert mein Modul?
      3. Verzeichnisse in den Pfad eines Moduls ändern
      4. Konvertierung einer CSV-Datei in JSON
    6. Python Einzeiler
      1. Debugger
      2. Wie schnell ist dieses Snippet?
    7. strace
    8. Übungen
    9. Fallstudie Frage
  6. 5. Paket Management
    1. Warum ist die Verpackung wichtig?
      1. Wenn die Verpackung vielleicht nicht gebraucht wird
    2. Verpackungsrichtlinien
      1. Beschreibende Versionierung
      2. Das Änderungsprotokoll
    3. Die Wahl einer Strategie
    4. Verpackungslösungen
      1. Native Python-Pakete
      2. Debian-Paketierung
      3. RPM Verpackung
    5. Verwaltung mit systemd
      1. Langlaufende Prozesse
      2. Einrichten
      3. Die systemd Unit File
    6. Installieren der Einheit
      1. Log Handhabung
    7. Übungen
    8. Fallstudie Frage
  7. 6. Kontinuierliche Integration und kontinuierliches Deployment
    1. Fallstudie aus der Praxis: Konvertierung einer schlecht gewarteten WordPress-Website zu Hugo
      1. Hugo einrichten
      2. WordPress in Hugo Posts umwandeln
      3. Einen Algolia-Index erstellen und ihn aktualisieren
      4. Orchestrierung mit einem Makefile
      5. Bereitstellen mit AWS CodePipeline
    2. Real-World Case Study: Bereitstellung einer Python App Engine-Anwendung mit Google Cloud Build
    3. Real-World Fallstudie: NFSOPS
  8. 7. Überwachung und Protokollierung
    1. Schlüsselkonzepte für den Aufbau zuverlässiger Systeme
    2. Unumstößliche DevOps-Prinzipien
      1. Zentralisierte Protokollierung
      2. Fallstudie: Produktionsdatenbank tötet Festplatten
      3. Hast du es gebaut oder gekauft?
      4. Fehlertoleranz
    3. Überwachung
      1. Graphit
      2. StatsD
      3. Prometheus
    4. Instrumentierung
      1. Benennungskonventionen
    5. Loggen
      1. Warum ist es so schwer?
      2. Die basicconfig
      3. Tiefergehende Konfiguration
      4. Gemeinsame Muster
    6. Der ELK-Stapel
      1. Logstash
      2. Elasticsearch und Kibana
    7. Übungen
    8. Fallstudie Frage
  9. 8. Pytest für DevOps
    1. Superkräfte mit pytest testen
    2. Erste Schritte mit pytest
      1. Testen mit pytest
      2. Unterschiede zu Unittest
    3. pytest Eigenschaften
      1. conftest.py
      2. Die erstaunliche Behauptung
      3. Parametrisierung
    4. Vorrichtungen
      1. Erste Schritte
      2. Eingebaute Vorrichtungen
    5. Infrastrukturprüfung
      1. Was ist Systemvalidierung?
      2. Einführung in Testinfra
      3. Verbinden mit entfernten Knotenpunkten
      4. Merkmale und besondere Ausstattungen
    6. Beispiele
    7. Jupyter Notebooks mit pytest testen
    8. Übungen
    9. Fallstudie Frage
  10. 9. Cloud Computing
    1. Grundlagen des Cloud Computing
    2. Arten von Cloud Computing
    3. Arten von Cloud-Diensten
      1. Infrastruktur als Dienstleistung
      2. Metall als Dienstleistung
      3. Plattform als Service
      4. Serverloses Rechnen
      5. Software as a Service
    4. Infrastruktur als Code
    5. Kontinuierliche Lieferung
    6. Virtualisierung und Container
      1. Hardware-Virtualisierung
      2. Softwaredefinierte Netzwerke
      3. Softwaredefinierte Speicherung
      4. Container
    7. Herausforderungen und Chancen des verteilten Rechnens
    8. Python Gleichzeitigkeit, Leistung und Prozessmanagement in der Cloud-Ära
    9. Prozessmanagement
      1. Prozesse mit Unterprozessen verwalten
      2. Multiprocessing zum Lösen von Problemen nutzen
      3. Forking-Prozesse mit Pool()
      4. Function as a Service und Serverless
      5. Leistungsstarkes Python mit Numba
      6. Numba Just in Time Compiler verwenden
      7. Einsatz von Hochleistungsservern
    10. Fazit
    11. Übungen
    12. Fragen zur Fallstudie
  11. 10. Infrastruktur als Code
    1. Eine Klassifizierung von Tools zur Infrastrukturautomatisierung
    2. Manuelle Bereitstellung
    3. Automatisierte Infrastrukturbereitstellung mit Terraform
      1. Bereitstellen eines S3 Buckets
      2. Bereitstellen eines SSL-Zertifikats mit AWS ACM
      3. Bereitstellen einer Amazon CloudFront Verteilung
      4. Einen Route 53 DNS-Eintrag bereitstellen
      5. Kopieren statischer Dateien in S3
      6. Alle mit Terraform bereitgestellten AWS-Ressourcen löschen
    4. Automatisierte Infrastrukturbereitstellung mit Pulumi
      1. Ein neues Pulumi Python-Projekt für AWS erstellen
      2. Erstellen von Konfigurationswerten für den Staging Stack
      3. Bereitstellen eines ACM SSL-Zertifikats
      4. Bereitstellen einer Route 53-Zone und DNS-Einträge
      5. Bereitstellen einer CloudFront Verteilung
      6. Bereitstellen eines Route 53 DNS-Eintrags für die Website-URL
      7. Erstellen und Bereitstellen eines neuen Stacks
    5. Übungen
  12. 11. Container-Technologien: Docker und Docker Compose
    1. Was ist ein Docker-Container?
    2. Erstellen, Bauen, Ausführen und Entfernen von Docker-Images und Containern
    3. Veröffentlichung von Docker-Images in einer Docker-Registry
    4. Einen Docker-Container mit demselben Image auf einem anderen Host ausführen
    5. Mehrere Docker-Container mit Docker Compose betreiben
    6. Portierung der docker-compose Dienste auf einen neuen Host und ein neues Betriebssystem
    7. Übungen
  13. 12. Container-Orchestrierung: Kubernetes
    1. Kurzer Überblick über die Kubernetes-Konzepte
    2. Kompose zum Erstellen von Kubernetes-Manifesten aus docker-compose.yaml verwenden
    3. Bereitstellen von Kubernetes-Manifesten in einem lokalen Kubernetes-Cluster auf Basis von minikube
    4. Starten eines GKE Kubernetes Clusters in GCP mit Pulumi
    5. Bereitstellen der Flask-Beispielanwendung für GKE
    6. Installation von Prometheus und Grafana Helm Charts
    7. Den GKE-Cluster zerstören
    8. Übungen
  14. 13. Serverlose Technologien
    1. Die gleiche Python-Funktion bei den "großen drei" Cloud-Providern bereitstellen
      1. Installation des Serverless Frameworks
      2. Bereitstellen von Python-Funktionen für AWS Lambda
      3. Bereitstellen von Python-Funktionen für Google Cloud Functions
      4. Bereitstellung von Python-Funktionen in Azure
    2. Bereitstellen einer Python-Funktion auf selbst gehosteten FaaS-Plattformen
      1. Bereitstellung von Python-Funktionen für OpenFaaS
    3. Bereitstellung von DynamoDB-Tabellen, Lambda-Funktionen und API-Gateway-Methoden mithilfe des AWS CDK
    4. Übungen
  15. 14. MLOps und Maschinelles Lernen Technik
    1. Was ist maschinelles Lernen?
      1. Überwachtes maschinelles Lernen
      2. Modellieren
    2. Python Maschinelles Lernen Ökosystem
      1. Deep Learning mit PyTorch
    3. Cloud-Plattformen für maschinelles Lernen
    4. Reifegradmodell für maschinelles Lernen
      1. Maschinelles Lernen Schlüsselbegriffe
      2. Ebene 1: Rahmensetzung, Identifizierung des Anwendungsbereichs und Problemdefinition
      3. Stufe 2: Kontinuierliche Bereitstellung von Daten
      4. Stufe 3: Kontinuierliche Lieferung von sauberen Daten
      5. Stufe 4: Kontinuierliche Bereitstellung der explorativen Datenanalyse
      6. Stufe 5: Kontinuierliche Bereitstellung von traditionellem ML und AutoML
      7. Ebene 6: ML Operative Feedbackschleife
    5. Sklearn Flask mit Kubernetes und Docker
    6. Sklearn Flask mit Kubernetes und Docker
      1. EDA
      2. Modellieren
      3. Skaliertes GBM abstimmen
      4. Fit Model
      5. Bewerten Sie
      6. adhoc_predict
      7. JSON Workflow
      8. Skala Eingabe
      9. adhoc_predict von Pickle
      10. Skala Eingabe
    7. Übungen
    8. Fallstudie Frage
    9. Lernbeurteilungen
  16. 15. Datentechnik
    1. Kleine Daten
      1. Umgang mit kleinen Datendateien
    2. Eine Datei schreiben
    3. Eine Datei lesen
    4. Generator-Pipeline zum Lesen und Verarbeiten von Zeilen
    5. YAML verwenden
    6. Big Data
    7. Big Data Tools, Komponenten und Plattformen
      1. Datenquellen
      2. Dateisysteme
      3. Speicherung von Daten
    8. Streaming-Ingestion in Echtzeit
    9. Fallstudie: Aufbau einer hausgemachten Datenpipeline
    10. Serverlose Datentechnik
      1. Verwendung von AWS Lambda mit CloudWatch Events
      2. Verwendung der Amazon CloudWatch-Protokollierung mit AWS Lambda
      3. AWS Lambda zum Befüllen des Amazon Simple Queue Service verwenden
      4. Verkabelung des CloudWatch Event Triggers
      5. Ereignisgesteuerte Lambdas erstellen
      6. Lesen von Amazon SQS-Ereignissen aus AWS Lambda
    11. Fazit
    12. Übungen
    13. Fallstudie Frage
  17. 16. DevOps Kriegsgeschichten und Interviews
    1. Filmstudio kann keinen Film machen
    2. Spielestudio kann Spiel nicht ausliefern
    3. Python-Skripte brauchen 60 Sekunden zum Starten
    4. Feuer löschen mit einem Cache und intelligenter Instrumentierung
    5. Du automatisierst dich selbst aus dem Job!
    6. DevOps-Antipatterns
      1. Kein automatisierter Build Server Antipattern
      2. Blindflug
      3. Schwierigkeiten bei der Koordinierung als fortlaufende Aufgabe
      4. Keine Teamarbeit
    7. Interviews
      1. Glenn Solomon
      2. Andrew Nguyen
      3. Gabriella Roman
      4. Rigoberto Roche
      5. Jonathan LaCour
      6. Ville Tuulos
      7. Joseph Reis
      8. Teijo Holzer
      9. Matt Harrison
      10. Michael Foord
    8. Empfehlungen
    9. Übungen
    10. Herausforderungen
    11. Capstone-Projekt
  18. Index

Product information

  • Title: Python für DevOps
  • Author(s): Noah Gift, Kennedy Behrman, Alfredo Deza, Grig Gheorghiu
  • Release date: September 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098189518