Docker, Kubernetes, DevOps & Co. - die Basics

Schrittweise zum digitalen Angebot

Von der digitalen Idee bis zur lauffähigen und hochverfügbaren Applikation. Gemeinsam mit unserem Partner avega begleiten wir Sie von der ersten Vision bis zum zuverlässigen Betrieb Ihres digitalen Angebots. Dabei sind verschiedene Etappen zu meistern, in welcher beispielsweise erste Prototypen entwickelt und mit potenziellen Benutzern getestet werden.

Schrittweise zum digitalen Angebot

Wir überspringen diese ersten Etappen und starten bei der Umsetzung Ihrer Projektidee und zeigen auf, welche Möglichkeiten eine Zusammenarbeit zwischen der Entwicklung (Development) und dem Betrieb der Software (Operations) entstehen.

DevOps verbindet die zwei Welten Entwicklung (Development) und Betrieb (Operations) mit verschiedenen Bereichen wie Kultur (Zusammenarbeit), Prozessen, Methoden, Technologie und Tools und wie diese einsetzbar sind.

In diesem Beitrag fokussieren wir uns auf den technologischen Teil und zeigen auf, welchen Nutzen und welche Vorteile die Container-Technologien für die Zusammenarbeit der Entwicklungs- und Betreiberteams bietet.

Agil und digital

Im heutigen Zeitalter ändern sich die Anforderungen der Kunden stetig und schneller als in der Vergangenheit. Umso entscheidender ist es, diese sich ändernden Anforderungen möglichst rasch zu erkennen und in bestehenden oder neuen Produkten zu berücksichtigen. Gehen wir davon aus, dass Sie die Phasen Vision und Strategie sowie Organisation und Kultur mit unserem Partner avega bereits erfolgreich abgeschlossen haben. Der Plan zur Umsetzung des digitalen Angebots steht, dies soll in Zukunft mit neuen Funktionen und Eigenschaften in kurzen Abständen laufend erweitert werden. Eine entscheidende Grundlage bildet eine flexible und moderne Software-Architektur, welche solche Erweiterungen ermöglicht. Wir gehen ebenfalls davon aus, dass Sie die gewünschten Funktionen der geplanten Software etappenweise integrieren, also ein agiles Projektvorgehen gewählt haben.

Das DevOps-Prinzip

Nun treffen der Softwareentwickler (Dev) und der Hosting- und Betriebsspezialist (Ops) aufeinander und definieren wie zukünftig neue Releases anhand einer klar definierten Build Pipeline bereitgestellt (deployed) werden sollen. Dabei steht die Automation, vom Erstellen des Containers, den Funktions- und Integrationstests, sowie das unterbrechungsfreie Aufschalten, im Vordergrund. Man spricht hierbei von Continuous Integration und Continuous Delivery (CI/CD) was bedeutet, dass durch Automation (u.a. das automatische Testen der Software-Komponenten und der Interfaces und der Security) schnellere Release-Zyklen erreicht werden können. Zudem soll die Qualität der Releasezyklen und somit die Software insgesamt verbessert werden.

Container-Technologie als Chance

Machen wir einen Sprung auf die Ops-Seite und widmen uns der Container-Technologie. Die Entwicklung einer komplexen Softwarelösung birgt zahlreiche Risiken, was die erwähnte Bereitstellung von neuen Releases und der entsprechenden Infrastruktur betrifft. Ein zentraler Punkt der Container-Technologie ist der Aufbau eines Containers als solches. Dieser Container vereint von Anfang an sämtliche notwendigen Komponenten und Bestandteile einer Software, unabhängig der zu Grunde liegenden Infrastruktur.

Das heisst, dass Container als ganzes Paket auf einem System ausgeführt werden kann, auch wenn beispielsweise Entwicklungs-, Test- oder Produktionsumgebung auf unterschiedlichen Umgebungen realisiert werden. Das bedeutet, dass das Risiko von unterschiedlichen Umgebungen schon mal wegfällt. Ein weiterer Aspekt ist die Skalierung Ihrer digitalen Produktidee. Container sind wie gemacht für sich ändernde Benutzer und Zugriffe auf die Software.

Durch den Einsatz einer Orchestrierungs-Ebene, in unserem Fall ist das Kubernetes (K8s), erkennt das System schnell, wenn sich aufgrund verschiedener Faktoren die Nutzerzahlen und Last der Software erhöhen und stellt sozusagen weitere Container zur Verfügung bzw. fährt diese hoch. Welcher Benutzer auf welchem Container landet, entscheidet die integrierte Loadbalancing-Funktion von Kubernetes.

Nicht zu vergessen ist das Thema Geschwindigkeit, wenn es um Container Deployments geht. Ein sehr grosser Pluspunkt ist insbesondere das einfache und schnelle ausrollen einer Applikation. Wo man konventionell zuerst eine Applikation mit Datenbank, Proxy usw. aufbauen, anschliessend manuell die Applikation vorbereiten und schlussendlich die Applikation ausrollen musste, kann man dies durch Kubernetes und Co. innerhalb von Minuten anhand eines Blueprints ausrollen.

Dies sind aus unserer Sicht die wesentlichsten Vorteile der Container-Technologie.

Effizienz und der Mehrwert für Ihren Kunden

Das Resultat einer vereinfachten Zusammenarbeit zwischen dem Entwicklungs- und Betriebsteam liegt also auf der Hand: Erhöhte Effizienz. Diese Effizienz hat schlussendlich positive Auswirkungen auf die Projekt- und Betriebskosten. Der grosse Mehrwert entsteht bei Ihren Kunden, welche durch schnelle Entwicklungs-Zyklen laufend neue Funktionen erhalten und so optimal von Ihren digitalen Angeboten profitieren.

Gemeinsam mit unserem Partner avega entwickeln wir Ihr digitales Angebot von der Projektidee bis zum zuverlässigen und sicheren Betrieb mit modernen Methoden, zukunftsträchtigen Technologien und grosser Begeisterung.

Zu unserem Cloud und Container Platform Angebot