So können Entwickler „mit der Schere rennen“ Apps schnell entwickeln – und trotzdem sicher

Von Roman Borovits *

Anbieter zum Thema

Entwickler stecken in der Zwickmühle: Sie müssen schnell neuen Code erstellen, weil das Unternehmen sonst Marktanteile verliert. Doch Fehler können zu Ausfällen der Anwendung, Rufschädigung oder gar Datenverlust führen. Einen Ausweg bietet die Kombination aus DevOps, Orchestrierung, Container und Cloud.

So wie eine Schere kann Code gefährlich werden, Entwickler sollten dementsprechend ebenso sorgfältig wie schnell arbeiten.
So wie eine Schere kann Code gefährlich werden, Entwickler sollten dementsprechend ebenso sorgfältig wie schnell arbeiten.
(Bild: gautamlakum / Unsplash)

„Vor COVID brauchten wir sechs Monate bis ein Jahr für die Einführung einer neuen Anwendung, jetzt dauert es nur sechs Wochen.“ Das berichtet der Verantwortliche eines Unternehmens. Zwar ist längst bekannt, dass man Apps schnell entwickeln muss, aber nun wird der Zeitdruck immer stärker.

Viele Unternehmen sagen ihren Entwicklern einfach, sie sollen sich beeilen. Und diese planen, programmieren und veröffentlichen den Code in einem Bruchteil der bisherigen Zeit. Doch Vorsicht: Schon im Kindergarten wird man gewarnt, besonnen und umsichtig mit der Schere in der Hand zu sein – oder gar damit zu rennen.

Der neue Code eines Entwicklers – sozusagen die Schere – kann viel Schaden anrichten, wenn er zu schnell und unbedacht zum Einsatz kommt. Wird der Code nicht ausreichend getestet und schleichen sich Fehler ein, fallen dadurch eventuell geschäftskritische Anwendungen aus, der Ruf des Unternehmens leidet und Kundendaten sind gefährdet. Bei mehr Zeit und größerer Sorgfalt verlieren Unternehmen aber möglicherweise Marktanteile an ihre schnelleren Wettbewerber.

Alles Nötige bereits vorhanden

Um aus dieser Zwickmühle zu entkommen, müssen Entwickler schnell und sicher mit der Schere arbeiten. Dazu stehen bereits die nötigen Werkzeuge und Prozesse zur Verfügung. So können DevOps-Teams den Freigabeprozess automatisieren. Tools zur kontinuierlichen Integration und Bereitstellung (CI/CD) sowie zur Orchestrierung sind ausgereift – ebenso Technologien für Container und Cloud-native Architekturen.

Der Trick besteht nun darin, diese verschiedenen Lösungen auf geeignete Weise miteinander zu kombinieren. Im Zentrum steht dabei das Konzept der Microservices: Eine große Anwendung wird hier in kleine, diskrete Funktionen aufgeteilt. Diese sind wiederverwendbar und für die jeweiligen Teams, Werkzeuge und Technologien optimiert. Entstehen bei den Microservices Fehler, wirken sie sich nur auf diese eine Funktion aus und nicht auf die gesamte Anwendung.

In einer hybriden Architektur lassen sich Microservices-Umgebungen neben Legacy-Anwendungen einsetzen. Durch die Entkopplung der Funktionen von der Gesamt-Architektur einer Anwendung können Entwickler den nötigen Code selbst testen und bereitstellen. So lassen sich Canary-Tests, Blue-Green-Tests und A/B-Tests durchführen, ohne die Infrastruktur-Teams zu kontaktieren oder auf ein Wartungsfenster zu warten.

Transparenz und Orchestrierung nötig

Doch dies ist nur die halbe Lösung. Denn auch die Sichtbarkeit und die Abstimmung der Workflows sind zu gewährleisten, damit alle Beteiligten auf dem gleichen Stand sind. Die Einführung einer abstrakten Schicht, die über der Infrastruktur für die Anwendungsbereitstellung sitzt, löst zwar das Problem der Software-Netzwerk-Integration. Doch wenn diese Schichten nicht miteinander kommunizieren, ist ein weiteres Silo entstanden. Dann wurde das Problem nur von der Hardware zur Software verlagert.

Für viele Unternehmen mit komplexen Arbeitsabläufen spielt es zudem fast keine Rolle, wie schnell die Entwickler eine Änderung vornehmen, da die Security-Verantwortlichen erst noch den Code überprüfen oder eine Firewall-Regel ändern müssen. Dies bildet oft den neuen Engpass. Denn einerseits sind hier Änderungen von bis zu 50 verschiedenen App-Teams – die jeweils an ihrem eigenen Microservice arbeiten – zu berücksichtigen sowie andererseits zahlreiche interne und externe Richtlinien. Diese Menge können Security-Teams angesichts der erforderlichen Sorgfalt meist nicht in kurzer Zeit bewältigen.

Reibungslose Übergaben

Letztlich muss es eine Möglichkeit geben, Transparenz, Orchestrierung und Automatisierung bereitzustellen, um Übergabepunkte und die daraus resultierenden Reibungsverluste zwischen den verschiedenen Teams wie Entwicklung, DevOps, Infrastruktur & Betrieb sowie Sicherheit zu beseitigen. Bisher bestand eine Lösungsmöglichkeit in einer vertikal integrierten Plattform, die dies erledigt. Diesen Ansatz verfolgen etwa Anbieter von Platform-as-a-Service (PaaS) und Infrastructure-as-a-Service (IaaS).

Die Kehrseite der Medaille: Anwendungsdienste sind dann an die zugrunde liegende Infrastruktur gekoppelt. Durch die Einfachheit des All-in-One-Ansatzes können Unternehmen am Anfang schneller sein. Aber später stellen sie vielleicht fest, dass ihre Anpassungsfähigkeit beeinträchtigt ist. Beziehen sie alle Tools und Services wie Datenbank, Firewall, WAF, DNS, Ingress Controller oder API Gateway von einem Cloud-Anbieter, führt dies zum sogenannten Vendor Lock-In.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Ein Umziehen in eine andere Cloud, um attraktivere Services anderer Anbieter zu nutzen, ist dann fast unmöglich. So können sie bei einer größeren Veränderung wie einer Übernahme nicht verschiedene Systeme schnell zusammenführen, auf eine neue Cloud migrieren oder eine Anwendung wieder ins eigene Rechenzentrum zurückholen.

Statt dieser vertikalen Integration, bei der App, App-Services und Infrastruktur eng miteinander verbunden sind, besteht der horizontale Ansatz in der Integration über verschiedene Cloud-Anbieter hinweg. In einem solchen Multi-Cloud-Ansatz lassen sich Applikationen unabhängig von der genutzten Infrastruktur betreiben. Dies lässt sich mit Hilfe von Microservices, die über entsprechende APIs verfügen, relativ einfach realisieren.

Ein Infrastruktur-unabhängiges Application Delivery bietet dabei eine Bedienoberfläche über alle größeren Hyperscaler und das eigene Rechenzentrum hinweg. Dadurch können Infrastruktur-relevante Services wie Ingress Controlling, WAF oder Authentifizierung bei jedem Cloud-Anbieter auf die gleiche Weise realisiert werden. Dabei ist ein Wechsel auf einen anderen Anbieter oder auch ein Mischbetrieb jederzeit möglich.

Fazit

Aktuelle Technologien bieten in allen Phasen des Anwendungslebenszyklus Transparenz, Arbeitsabläufe und APIs. Eine neue Abstraktionsschicht automatisiert und gewährleistet dazu sowohl die Bereitstellung als auch die Sicherheit der Anwendungen in allen Prozessen des Unternehmens. So dürfen die Entwickler auch mit der Schere in der Hand schnell rennen, da die Sicherheit in jeder Phase gewährleistet ist.

* Roman Borovits ist Senior Systems Engineer bei F5.

(ID:46937165)