© aurielaki/Shutterstock.com
Tools für die moderne Softwareentwicklung

CI mit GitLab und Rancher


Continuous Integration ist aus der modernen Softwarelandschaft nicht mehr wegzudenken. GitLab bietet reichlich Möglichkeiten, eine Deployment Pipeline einzurichten. Zur Orchestrierung der damit erstellten Docker-Container bietet sich Rancher an.

Vor nicht allzu langer Zeit war die Veröffentlichung von Software ein eher behäbiger Prozess. Die Entwickler hackten ihren Code in die Maschine, und wenn das Werk fertig war, wurde es auf Diskette oder CD gepresst und vom geneigten Kunden im Laden erworben. Wollte man ein Update, musste man warten, bis die nächste Version das eben genannte Prozedere durchlaufen hatte. Dank der Verbreitung des Internets hat sich das glücklicherweise grundlegend geändert. Neue Versionen können jetzt sofort veröffentlicht und vom Nutzer direkt heruntergeladen bzw. aufgerufen werden. Die Frage ist nun: Wie kommt der Code von den Computern der Entwickler ins Web und damit an die Öffentlichkeit? Die Zeiten manueller FTP-Uploads oder gar zeilenweiser Anpassungen über SSH sollten mittlerweile vorbei sein. Stattdessen haben sich in den letzten Jahren die Begriffe Continuous Integration und Continuous Delivery etabliert. Ziel ist es, die Veröffentlichung des Codes möglichst nahtlos in den Entwicklungsprozess zu integrieren.

Werkzeuge dazu gibt es reichlich. Ein prominentes Beispiel ist GitLab, das zudem als Git Repository und Docker Registry dient. Im Folgenden wollen wir uns einen konkreten CI/CD-Workflow an einem Beispielprojekt ansehen. Es handelt sich bei der Applikation um ein PHP-Projekt mit Symfony. Das grundsätzliche Vorgehen lässt sich aber auf beliebige andere Sprachen und Frameworks übertragen.

Vorbereitungen

Die kostenfreie Version von GitLab kann wie in [1] erklärt auf dem eigenen Server installiert werden. Zusätzlich wird noch ein GitLab Runner benötigt, der die Jobs der Pipeline ausführt. Die Installation ist in [2] beschrieben. Unsere Beispielanwendung soll in einem Kubernetes-Cluster, das mit Rancher gesteuert wird, veröffentlicht werden. Die gesamte Anwendung mit NGINX-Webserver, PHP und Applikationscode wird in einem einzigen Docker Image zusammengefasst. Unser GitLab Repository hat folgende Ordner- und Dateistruktur:

  • app

  • Dockerfile

  • .gitlab-ci.yml

Der Ordner app enthält die Symfony-Applikation. Das Dockerfile ist der Bauplan für unser Anwendungs-Image. In der Datei .gitlab-ci.yml findet sich die Konfiguration für den CI/CD Prozess. Hier werden wir Schritt für Schritt die Deployment Pipeline einrichten. Sie hat die folg...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang