05. September 2017

Continuous Integration für Kubernetes mit Jenkins

Continuous Integration für Kubernetes mit Jenkins (Bild: pixabay.com/StockSnap)

Bei der Entwicklung und dem Betrieb von Software mit modernen Microservices sind Continuous Integration (CI) und Continuous Delivery (CD) nicht mehr weg zu denken. Dazu gehört auch die Philosophie, jeden Build der Software gründlich zu testen und aktuell zu halten. Dieser Beitrag befasst sich mit den Herausforderungen bei CI/CD mit Jenkins von Kubernetes-basierten Software Produkten.

Jenkins – von Code zu Container

Das frei verfügbare Produkt Jenkins ist eine Software für das Bauen und Deployen von Applikationen. Es wird weitgehend als CI/CD Software benutzt, da es sehr einfach mit verschiedenen Plugins erweiterbar ist; außerdem ist es einfach zu installieren und lässt sich sehr leicht bedienen.

Über ein Web Interface lassen sich vordefinierte Software Deployments anstoßen, die auch automatisiert in eine Betriebsumgebung (wie Kubernetes) geschickt werden können. Der Deployment-Ablauf beginnt für Jenkins meistens mit einem externen Ereignis. Dies kann zum Beispiel ein Commit in ein Git Repository sein. Jenkins lädt den Software Code aus Git und baut daraus eine Applikation mit allen notwendigen Abhängigkeiten, die anschließend von Jenkins in ein Docker Image verpackt wird. Dieses Docker Image wird danach in ein Docker Repository hochgeladen, damit es für Applikationsserver verfügbar ist. Mit Jenkins haben wir uns in diesem Blog-Beitrag bereits ausführlich auseinandergesetzt. Ganzen Beitrag lesen

06. Juli 2017

Warum Kubernetes die richtige Plattform für Container ist

Warum Kubernetes die richtige Plattform für Container ist (PIRO4D / pixabay.com)

Wenn Trends aufeinander treffen

Die aktuellen Trends DevOps und Container (Docker) beschäftigen uns in den letzten Monaten intensiv. Wir haben uns Gedanken gemacht, welchen Herausforderungen man begegnet, wenn beide Trends aufeinandertreffen.

Eine Anforderung an DevOPs ist das agile und schnelle Entwickeln und Testen von Software. Hierfür benötigen Entwickler unkomplizierten Zugriff auf eine Testumgebung.

Genau dafür gibt es aber doch Docker, oder? Also wird die Software mal eben in einen Container gepackt, Vagrant installiert und darin ein individueller Docker-Container gestartet. Fertig! Oder doch nicht?! Docker für den Desktop ist doch beliebt und einfach.

Der Irrweg: Docker Desktop

Aber so einfach ist es dann nicht. Denn Docker auf dem Desktop benötigt zum einen Portveröffentlichungen und mehrere Container, die verbunden werden müssen. Selbst mit einem guten Tooling treten dabei immer wieder unterschiedliche lokale Probleme auf. Zudem müssen alle Entwickler tiefergehendes KnowHow von Vagrant, Docker und vom Docker-Netzwerk haben.

Ganzen Beitrag lesen