ZIS BEHIND THE SCENES – DevOps als Garant für hochverfügbare Systeme
Veröffentlicht: 03. Aug 2022In diesem Jahr haben wir uns bei ZENNER IoT Solutions eine besondere Aktion ausgedacht. Statt immer nur über unsere Produkte und Projekte zu berichten, was wir natürlich liebend gerne tun, werden wir über den Sommer regelmäßig in der Rubrik “ZIS Behind the Scenes” einen Einblick in den “Maschinenraum” geben.
In dieser Artikelserie werden wir über die Technologie und die Menschen hinter den Produkten berichten. In dieser Woche machen wir weiter mit dem Thema DevOps.
DevOps
Traditionell waren in Unternehmen die Bereiche Softwareentwicklung und Systemadministration getrennt. Dies wird heute oft auch Silos genannt. Getrieben durch den Erfolg der agilen Softwareentwicklung hat in den letzten 10 bis 15 Jahren eine neue Idee langsam ihren Siegeszug begonnen: DevOps – ein Kunstwort aus Development und Operations. DevOps zielt darauf ab, Hand in Hand mit der agilen Entwicklung Silos aufzubrechen und in der Systemadministration mehr Erkenntnisse aus der Softwareentwicklung einfließen zu lassen.
Ein ganz klare und eindeutige Definition von DevOps hat sich allerdings nie durchgesetzt, so dass in vielen Unternehmen einfach die Systemadministratoren zu DevOps deklariert wurden oder bestenfalls nur Teile der DevOps-Idee umgesetzt wurden.
Im Geiste der ursprünglichen Idee sowie unter Beachtung der Best Practices, die sich entwickelt haben, möchten wir einen Überblick geben, was DevOps bedeutet:
- Testautomatisierung
- CI/CD
- Infrastructure as Code
- You build it, you run it
Testautomatisierung
Basierend auf dem Spirit von Agil ist es wichtig, die Softwareentwicklung in kleinen Iterationen kontinuierlich voranzutreiben. Dies hält den Feedback-Loop möglichst kurz. Um bei einem solchen Vorgehen die Qualität der Software sicherzustellen, sind manuelle Testphasen nicht praktikabel. Daher gehörte es von Anfang an zur DevOps-Idee, die Tests zu automatisieren.
CI/CD
Continuous Integration (CI) bedeutet, auf Basis der Testautomatisierung dafür zu sorgen, dass neuer Quellcode und Änderungen permanent in das vorhandene System integriert werden und die automatisierten Tests dabei unmittelbar entstandene Fehler aufdecken können. Continuous Delivery (CD) bedeutet, die erfolgreich getesteten Änderungen auch möglichst kontinuierlich in die Produktivsysteme zu transportieren.
Infrastructure as Code
Früher wurde die IT-Infrastruktur oft manuell aufgesetzt und später auch manuell angepasst. Ein schneller Wiederanlauf war so nicht möglich und manuelle Änderungen mussten aufwendig und fehleranfällig dokumentiert werden. Infrastructure as Code bedeutet, die gesamte Konfiguration der IT-Infrastruktur zu automatisieren. Sie liegt somit als Quellcode vor. Dieser Quellcode kann dann jederzeit wieder ausgeführt werden und dient gleichzeitig als Dokumentation.
You build it, you run it
Die Bedürfnisse des Softwareentwicklers und des späteren Betriebs passen nicht immer zusammen. In herkömmlichen Silos hat dies dazu geführt, dass Software nicht so programmiert wurde, dass sie auch leicht zu betreiben war. Gleichzeitig war der Informationsfluss zwischen den Silos nicht immer optimal, so dass Erkenntnisse aus dem Betrieb nicht ausreichend in die Entwicklung flossen oder der Betrieb nicht gut genug beurteilen konnte, welche Monitoring-Parameter einen Fehlerzustand darstellen oder ankündigen könnten. Die Kernidee von DevOps ist daher, die Entwickler auch für den Betrieb der Software in die Pflicht zu nehmen.
The next Level
Seit unserer Gründung setzen wir auf agile Softwareentwicklung und leben die DevOps Idee von Anfang an. Allerdings muss man zugeben, dass wir den vierten Punkt “You build it, you run it” bisher nicht vollständig umgesetzt haben.
Ende 2021 haben wir begonnen, im Rahmen eines kontinuierlichen Verbesserungsprozesses den nächsten logischen Schritt umzusetzen. Unsere dedizierten DevOps Ingenieure, die in hervorragender Weise Betrieb, Update und Wartung zahlreicher Instanzen und Services sicherstellen, haben die ersten drei Punkte in den vergangenen Jahren professionalisiert und belastbare sowie skalierbare Prozesse und Strukturen geschaffen. Dies zeigt die Hochverfügbarkeit unserer Produkte und die Zufriedenheit unserer Kunden.
Am Ende dieses schon fast abgeschlossenen Transformationsprozesses, wird ab sofort auch für alle unsere Produkte (z. B. ELEMENT IoT oder ELEMENT Go) gelten: “You build it, you run it”.
Wir glauben, dass wir damit noch besser für die wachsenden Bedürfnisse unserer Kunden aufgestellt sind und auch bei der stetig wachsenden Anzahl betreuter Systeme die gewohnte Qualität und Flexibilität sicherstellen.