© Liashko/Shutterstock.com
Entwickler Magazin
Implementierung von Continuous Deployment mit Docker

Flexible Pipeline

Continuous Deployment kann je nach Bedarf in verschiedenen Implementierungen eingesetzt werden. Wem Shell-Skripte zu kryptisch und ISO-Images zu dick sind, der kann mithilfe von Docker eine flexible Pipeline konstruieren. Der folgende Artikel zeigt aus Entwicklersicht, wie leichtgewichtig das Deployment einer Java-Webapplikation sein kann.

Tobias Gesellchen


Im Rahmen der Entwicklung eines neuen Produkts der EUROPACE-Plattform bei Hypoport wurden die vorhandenen Lösungen zum Build und Rollout einer JVM-basierten Anwendung evaluiert. Bestehende Varianten wurden mithilfe von typischen Skriptsprachen (Shell/Bash, Ruby, Python) und Maven- oder Gradle-Plug-ins implementiert, während Jetbrains TeamCity [1] als Continuous-Integration-Tool eingesetzt wurde. Unser Team bewertete verschiedene Lösungen, um nach dem Motto „you build it, you run it“ (siehe das Gespräch mit dem Amazon CTO Werner Vogels unter [2]) das Produkt zu entwickeln und langfristig Support zu leisten.

Während die Evaluation und der Entwurf einer Deployment-Pipeline für unser Produkt im Kontext einer produktübergreifenden Plattform betrachtet wurden, kam Docker als Lösungsvariante ins Spiel. Die darunterliegende Idee war attraktiv für die aus Entwicklersicht relevanten Bedürfnisse: Wir forderten Flexibilität und aktuelle Software bei konsistentem Verhalten über verschiedene Stages. Auch der Wunsch, nach DevOps-Grundsätzen arbeiten zu können, wurde durch die Docker-Konzepte begünstigt.

Docker in einer wachsenden DevOps-Kultur

Unsere Unternehmensstruktur war schon offen gegenüber der DevOps-Philosophie, dennoch gab es eine Trennung der Aufgaben von Operations und Development. Operations stellte den Entwicklern typischerweise Server oder virtuelle Maschinen mit einem Oracle Enter­prise Linux (OEL) in Version 6.4 zur Verfügung. Docker benötigt auf OEL 6.4 einen als Betaversion deklarierten Kernel ab Version 3.8.x, außerdem mussten die Docker-Packages bei verfügbaren Updates manuell in ein internes YUM-Repository eingepflegt werden. Die Packages sind in einem so genannten EPEL-Repository verfügbar [3], [4]. Mit der vor Kurzem freigegebenen Version OEL 7 wird sich der offizielle Support für Docker verbessern und weniger manuelle Eingriffe erfordern.

Aufgrund der Dynamik, die unser Team beim Umgang mit Docker einforderte, war Operations sehr offen für mehr Freiheiten seitens der Entwickler. Wir mussten uns also ganz wie gewünscht auf mehr Freiheit und damit einhergehend auch mehr Verantwortung einstellen. Aus der Zusammenarbeit zwischen Operations und Development wuchs der Grundsatz, dass Docker aus Operations-Sicht die Anwendung darstellt. Bezüglich Monitoring und Incident-Management konnten wir also eine saubere Verantwortungsverteilung definieren. Unser Team übernahm den Support für die Docker-Installation und alles, was innerhalb der Docker-Container pass...

Entwickler Magazin
Implementierung von Continuous Deployment mit Docker

Flexible Pipeline

Continuous Deployment kann je nach Bedarf in verschiedenen Implementierungen eingesetzt werden. Wem Shell-Skripte zu kryptisch und ISO-Images zu dick sind, der kann mithilfe von Docker eine flexible Pipeline konstruieren. Der folgende Artikel zeigt aus Entwicklersicht, wie leichtgewichtig das Deployment einer Java-Webapplikation sein kann.

Tobias Gesellchen


Im Rahmen der Entwicklung eines neuen Produkts der EUROPACE-Plattform bei Hypoport wurden die vorhandenen Lösungen zum Build und Rollout einer JVM-basierten Anwendung evaluiert. Bestehende Varianten wurden mithilfe von typischen Skriptsprachen (Shell/Bash, Ruby, Python) und Maven- oder Gradle-Plug-ins implementiert, während Jetbrains TeamCity [1] als Continuous-Integration-Tool eingesetzt wurde. Unser Team bewertete verschiedene Lösungen, um nach dem Motto „you build it, you run it“ (siehe das Gespräch mit dem Amazon CTO Werner Vogels unter [2]) das Produkt zu entwickeln und langfristig Support zu leisten.

Während die Evaluation und der Entwurf einer Deployment-Pipeline für unser Produkt im Kontext einer produktübergreifenden Plattform betrachtet wurden, kam Docker als Lösungsvariante ins Spiel. Die darunterliegende Idee war attraktiv für die aus Entwicklersicht relevanten Bedürfnisse: Wir forderten Flexibilität und aktuelle Software bei konsistentem Verhalten über verschiedene Stages. Auch der Wunsch, nach DevOps-Grundsätzen arbeiten zu können, wurde durch die Docker-Konzepte begünstigt.

Docker in einer wachsenden DevOps-Kultur

Unsere Unternehmensstruktur war schon offen gegenüber der DevOps-Philosophie, dennoch gab es eine Trennung der Aufgaben von Operations und Development. Operations stellte den Entwicklern typischerweise Server oder virtuelle Maschinen mit einem Oracle Enter­prise Linux (OEL) in Version 6.4 zur Verfügung. Docker benötigt auf OEL 6.4 einen als Betaversion deklarierten Kernel ab Version 3.8.x, außerdem mussten die Docker-Packages bei verfügbaren Updates manuell in ein internes YUM-Repository eingepflegt werden. Die Packages sind in einem so genannten EPEL-Repository verfügbar [3], [4]. Mit der vor Kurzem freigegebenen Version OEL 7 wird sich der offizielle Support für Docker verbessern und weniger manuelle Eingriffe erfordern.

Aufgrund der Dynamik, die unser Team beim Umgang mit Docker einforderte, war Operations sehr offen für mehr Freiheiten seitens der Entwickler. Wir mussten uns also ganz wie gewünscht auf mehr Freiheit und damit einhergehend auch mehr Verantwortung einstellen. Aus der Zusammenarbeit zwischen Operations und Development wuchs der Grundsatz, dass Docker aus Operations-Sicht die Anwendung darstellt. Bezüglich Monitoring und Incident-Management konnten wir also eine saubere Verantwortungsverteilung definieren. Unser Team übernahm den Support für die Docker-Installation und alles, was innerhalb der Docker-Container pass...

Neugierig geworden?


   
Loading...

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