In der IT-Welt gibt es einige Trends, die aus der Idee geboren sind, Software schneller und stabiler auszuliefern.

Dafür haben sich neben Cloud-Rechenzentren Managementsysteme und -prozesse etabliert, die das Entwicklungsteam unterstützen und näher zum Betrieb der Systeme bringen. Diese Trends werden zusammengefasst unter dem Schlagwort Cloud Native. Wir unterstützen unsere Kunden bei der Beratung und Integration in den folgenden Bereichen:

Hochverfügbarkeit und Skalierbarkeit

Durch den Einsatz von Containern und Containermanagementsystemen ist es möglich automatisch skalierende und selbstheilende Systeme aufzusetzen. Oftmals fällt in diesem Zusammenhang auch der Begriff Infrastructure as Code um zum Ausdruck zu bringen, dass es sich um hochgradig automatisierte Systeme handelt.

Wir setzen auf die weltweit führenden Technologien Docker und Kubernetes, sowie darauf aufbauende Systeme.

Qualitätsmanagement

Stabile Deploymentartefakte, automatische Tests und Portabilität sind grundlegende Anforderungen an Softwareprojekte. Durch Contineous Integration und Contineous Deployment Systeme wird den Anforderungen Rechnung getragen und eine zuverläsige Qualität für alle Teile eines Projekts erreicht. Je nach Technologie setzt ein Projekt unterschiedliche Werkzeuge voraus um diese Ziele zu erreichen. Das ist meist ein bunter Blumenstrauß und lässt sich manuell kaum beherrschen. In CI-Systemen kommen daher portable Container zum Einsatz, die alle Build-, Test- und Deploytools mitbringen und somit Versionen zuverlässig und wiederholbar zu provisionieren. Dazu zählen Taskrunner, SDKs für verschiedene Systeme wie Android, iOS, komplexe Testsysteme mit Selenium Grids und Webdrivern, Messung der Codeabdeckung, Einhaltung von Coding Standards.

Für jedes Projekt lässt sich für diese Anforderungen eine Pipeline aufsetzen um den Entwicklungsprozess beherrschbar zu machen und stabile Versionen zu releasen.

Überwachung und Reporting

Mit der Verbreitung von serviceorientierten Architekturen und Microservices verringert sich bei guter Architektur die time-to-market, aber gleichzeitig erhöhen sich die Anforderungen an die Überwachung. Da in verteilten Systemen an vielen Stellen Daten gesammelt werden müssen um einen Gesamtüberblick zu erhalten, erfordert es Monitoringsysteme, die für die Cloud entworfen wurden und über Service Discovery selbständig alle Dienste erkennen und überwachen. Um Bottlenecks zu identifizieren erfordert es ein durchgängies distributed Tracing System um alle dafür relevanten Daten zu sammeln. Neben der einfachen Überwachung haben sich die Monitoringsysteme zu APM-Systemen entwickeln, die nicht nur die allgemeine Verfügarbkeit überwachen, sondern auch Performanceanalysen ermöglichen um schneller bei Performanceproblemen die Ursache zu erkennen und zu identifizieren. Darüber hinaus haben sich auch Entwicklungsmuster wie Circuit Breaker durchgesetzt um Performanceengpässe automatisch zu beheben.