Gotta Catch them all – Cloud Native Toolchains

8 Aufgaben – 87 Tools

Mit über 50 Expert:innen aus Dev und Ops haben wir gemeinsam einmal geschaut, welche Tools während des typischen Softwarelebenszyklus eingesetzt werden. Es ging von der Code-Erstellung, über das Building, Testing und Deployment bis zum Application Management mitsamt Monitoring. 

DevOps Grafik SysEleven Blog

Dabei stellte sich schnell heraus: manche Tools werden über mehrere Schritte hinweg genutzt, andere dediziert für den Anwendungsfall, für den sie erstellt bzw. optimiert wurden. Insgesamt ergaben sich so 87 verschiedene Tools. 

 

Schauen wir uns das einmal etwas genauer an.

Die integrierte Entwicklungsumgebung (IDE) als Einstiegspunkt

Die integrierte Entwicklungsumgebung ist und bleibt der Einstiegspunkt und das wichtigste Tool zur Codeerstellung. Die meistgenannten Vertreter sind dabei Jetbrains Intellij und Visual Studio Code. Sie verfügen beide über eine große Auswahl an Plugins und ermöglichen damit eine einfache Integration in weitere Komponenten, die besonders das Prinzip des Shift-Left-Testings deutlich vereinfachen.

 

Mit der Containerisierung sind darüber hinaus Integrationen in die Cloud-Laufzeitumgebungen möglich. Eine Web-IDE wie die von Eclipse entwickelte Version  Theia ist direkt in ein Kubernetes-Cluster integrierbar.

Was nicht passt, wird passend gemacht

Die größte Vielfalt gibt es besonders im Abschnitt “Testing”, was im Nachhinein nicht verwunderlich ist. Die Analysephase zusammen mit der programmatischen Überprüfung ist sehr individuell und sollte den größten Arbeitsanteil ausmachen. Die verschiedenen Testszenarien allein könnten eine eigene Blogreihe füllen.

Open-Source-Tools wie JUnit oder Selenium sind dabei die präferierte Wahl. Je weiter es den Softwarelebenszyklus fortschreitet, desto größer ist der Anteil an Open-Source-Komponenten. Eine interessante Beobachtung dabei: Je weiter es den Softwarelebenszyklus fortschreitet, desto größer ist der Anteil an Open-Source-Komponenten.

Helm für das Deployment, Prometheus zum Monitoring

Im Betrieb sind zwei anhaltende Trends erkennbar. Das Deployment wird mit Hilfe von helm oder direkt mit kubectl durchgeführt. Das ist wenig verwunderlich, wenn man die Menge an Features von Kubernetes selbst bzw. die Standardisierung mit Hilfe von Helmcharts betrachtet. 

 

Für die täglichen Betriebsaufgaben sind darüber hinaus die anwendungsspezifischen Kubernetes Operators stark vertreten. Sie bieten die beste Integration in ein Kubernetes-Cluster mit eigenen sogenannten Custom Resource Definitions. Damit können Änderungen oder Anfragen während des Betriebs automatisiert werden.

 

Im Monitoring ist Grafana gemeinsam mit Prometheus das Tool der Wahl. Das liegt nicht nur an der guten Kubernetes-Integration, sondern auch an dem hohen Individualisierungsgrad, der Dich durch eine leicht verständliche Query Language – namentlich PromQL – genau die passenden Darstellungen für dein Monitoring erstellen lässt.

CI/CD als Wundermittel

Besonders interessant ist die Verteilung der CI/CD-Tools auf die jeweiligen Arbeitsschritte: Sie sind in so gut wie jedem Schritt auffindbar. Das bedeutet nicht, dass beispielsweise GitLab CI ein Testing-Tool sei. In der Wahrnehmung erscheinen sie eher als Abstraktion, sodass die eigentlichen Komponenten besser einsetzbar seien. CI/CD-Tools sind u.a. darauf ausgelegt, andere Komponenten zu integrieren. Mittlerweile sind sie in der Entwicklung so weit, dass sie teilweise eigene Workflows und mindestens ihre eigene Notation in den unterstützten Arbeitsschritten vorweisen. Diese Art der zentralen, standardisierten Schnittstelle mit einer Bereitstellung von externen Funktionen sind typisch für Management-Tools die eine Plattformunabhängigkeit und Portabilität sicherstellen wollen. 

87 Tools – Deine Wahl

Nachdem Ihr Euch für eine Toolchain entschieden habt, steht noch eine Frage im Raum: Wo installiere ich sie eigentlich? 

 

Bei der Erstellung der Mindmap sind wir von Systemen ausgegangen, die mit Kubernetes kompatibel sind. Die meisten Tools sind daher auch einfach darauf installierbar. Wer auf Bekanntes zurückgreifen möchte, kann sie aber auch dediziert auf einzelnen VM-Instanzen installieren. 

 

Du willst alle Tools sehen? Dann geht es hier zur kompletten Mindmap

Share: