C++ und Docker: Containerisierung von Anwendungen
C++ und Docker: Containerisierung von Anwendungen
Zusammenfassung:
Das Buch „C++ und Docker: Containerisierung von Anwendungen“ ist der erste praktische Leitfaden seiner Art, der die Lücke zwischen der klassischen C++-Entwicklung und modernen DevOps-Praktiken schließt. Wenn Sie ein C++-Entwickler sind, der das Erstellen, Testen und Bereitstellen seiner Projekte vereinfachen möchte, oder ein DevOps-Ingenieur, der mit der Notwendigkeit konfrontiert ist, Legacy-C++-Code zu containerisieren – dieses Buch ist für Sie.
Im Gegensatz zu beliebten Anleitungen zu Docker für Webanwendungen (Python, Node.js, Go) stellt C++ besondere Anforderungen: statisches und dynamisches Linken, Verwaltung von Systembibliotheken, Optimierung der Image-Größe, Arbeit mit CMake und Vcpkg. Der Autor analysiert all diese Aspekte detailliert und bietet fertige Rezepte und Dockerfile-Vorlagen an.
Was Sie aus dem Buch lernen werden:
- Grundlagen von Docker für C++: Wie unterscheidet sich die Containerisierung kompilierter Sprachen von interpretierten Sprachen, wie vermeidet man typische Fehler (z. B. Probleme mit glibc).
- Multi-Stage-Builds: Wie man die Anwendung in einem Image erstellt und in die Produktion ein minimales Artefakt ohne Compiler und Header-Dateien sendet.
- Abhängigkeitsverwaltung: Integration von Docker mit Conan, Vcpkg und CMake. Wie man Bibliotheken zwischenspeichert, um sie nicht bei jedem Commit neu zu erstellen.
- DevContainers und VSCode: Einrichtung einer Entwicklungsumgebung im Container, damit das gesamte Team unter identischen Bedingungen arbeitet.
- CI/CD-Pipelines: Automatisierung von Build, Linking, statischer Analyse und Unit-Tests innerhalb von Docker mit GitHub Actions und GitLab CI.
- Optimierung der Image-Größe: Wie man das endgültige Image mit Alpine, Scratch und statischer Kompilierung von 2 GB auf 50 MB reduziert.
- Deployment in die Produktion: Ausführung von C++-Microservices in Docker Swarm und Kubernetes, Arbeit mit Healthcheck und Graceful Shutdown.
- Sicherheit: Schwachstellenscanning, Ausführung von Containern mit eingeschränkten Rechten, Verwendung von Read-Only-Dateisystemen.
Für wen dieses Buch geeignet ist:
- C++-Entwickler, die Docker in ihren Arbeitsablauf integrieren möchten.
- DevOps-Ingenieure, die den Build und das Deployment von C++-Anwendungen unterstützen müssen.
- Studenten und Dozenten, die moderne Softwareentwicklungsmethoden erlernen.
- Tech-Leads, die die Migration eines C++-Monolithen zu einer Microservice-Architektur planen.
Alle Beispiele im Buch basieren auf realen Projekten und werden von vollständigem Code begleitet, der im Repository verfügbar ist. Sie lernen nicht nur, „Hello World“ in einem Container auszuführen, sondern einen zuverlässigen, reproduzierbaren und skalierbaren Prozess von der Entwicklung bis zur Produktion aufzubauen.
Das Buch ist für Leser mit grundlegenden C++-Kenntnissen und einem ersten Verständnis von Docker geeignet. Wenn Sie einfache Programme in C++ schreiben können und jemals docker run ausgeführt haben, reicht das aus, um zu beginnen.
Empfehlungen
Webentwicklung mit Go (Golang): Von den Grundlagen bis zum Deployment
Sauberer Code in Rust: Prinzipien und Praktiken der idiomatischen Programmierung
Swift (iOS/macOS) und Kubernetes: Bereitstellung und Orchestrierung mobiler Backends
Asynchrones Java: Das vollständige Handbuch
Entity Framework Core in Action
Rust Brain Teasers: Rätsel für Rust-Programmierer