Hallo zusammen,
willkommen zu meinem dritten Blogeintrag, in dem Docker und Docker Compose vorgestellt werden.
Docker
Die Programme des Projekts sollen in einer CI/CD-Pipeline auf Azure Cloud ausgeführt werden. Das heißt, die Komponenten, die in den Programmen sind, zu differenzieren und in Docker-Containern auszuführen.
Docker ist eine Containertechnologie zur Automatisierung der Bereitstellung von Anwendungen, die in der Cloud oder vor Ort ausgeführt werden können. Bei der Verwendung von Docker wird die Anwendung oder das Service erstellt und gleichzeitig werden die Abhängigkeiten in ein Container-Image verpacket. Das bedeutet, ein Image ist im Grunde eine statische Darstellung der Anwendung oder des Dienstes und ihrer Konfiguration und Abhängigkeiten.
In meiner Arbeit wird Docker auf einer Linux Virtuelle Maschine ausgeführt. Die Aufgabe besteht darin, Docker-Images für Backend, Frontend und Datenbank zu erstellen. Zuerst muss der Entwickler eine Datei namens „Dockerfile“ zum Zweck Konfiguration erstellen. Danach werden alle internen Prozesse, die mit einem bestimmten Dienst zusammenhängen, Schritt für Schritt durch Programmierung im „Dockerfile“ bearbeitet oder konfiguriert. Nach der Konfiguration wird das Image mit dem Befehl „docker build“ im Linux-Console erstellt und mit dem Befehl „docker run“ gestartet. Die erfolgreiche Erstellung der Docker- Containers ist die Vorbereitung für den nächsten Schritt Docker-Compose.
Docker-Compose
Docker-Compose ist ein Werkzeug zur Definition und Ausführung von Multi-Container-Anwendungen. Damit können verschiedene Docker-Images oder Container so orchestriert werden, dass sie als ein einziger Dienst laufen.
Für die Verwendung von Docker-Compose sind im Grunde drei Schritte vorgesehen:
- Die einzelnen Docker-Images mit ihrer Konfiguration müssen zunächst zur Verfügung gestellt werden.
- Mit Docker-Compose wird eine YAML-Datei namens „docker-compose.yml“ zur Konfiguration der Dienste verwendet.
- Schließlich können alle Dienste aus ihrer Konfiguration mit einem einzigen Befehl „docker compose up“ erstellt werden. Dann wird die gesamte Anwendung ausgeführt.
In meiner Arbeit wird am Ende die gesamte Anwendung mit dem Java-Backend-Programm, dem NGNIX-Frontend-Programm und der MongoDB-Datenbank erstellt. Die drei Containers werden als Dienste ausgeführt, ohne dass jeder Container einzeln gestartet werden muss.
Zusammenfassung
Nach meiner Meinung finde ich meine Tätigkeiten im Bereich DevOps bei Bertrandt wirklich hilfreich und sehr praxisnah, vor allem im Umgang mit Docker. DevOps ist derzeit ein bekanntes Thema im Bereich der Softwareentwicklung, da heutzutage in vielen Unternehmen der Übergang zu Agilität betont wird. Und in der Tat ist DevOps einer der besten Wege, um Agilität zu implementieren. Darüber hinaus kann ich nun Bertrandt weiterempfehlen. Es ist eine relativ große AG, die viele Standorte weltweit besitzt. Neben der Arbeit gibt es auch viele Vorteile für Studierende. Jeder hat einen/e Betreuer/in, und mir wurde immer schnell geantwortet, wenn ich mal Fragen hatte. Die Arbeitszeiten sind flexibel planbar und ich habe meist vom Homeoffice ausgearbeitet. Außerdem lerne ich als Wirtschaftsinformatikstudent viel aus der Praxis, was mich gut auf die zukünftige Berufswelt vorbereitet.