Application Factory definiert Richtlinien für EntwicklerApps per Fließband bereitstellen – statt mit Handarbeit
18. Februar 2020Unternehmen benötigen heutzutage Prozesse für die automatische Bereitstellung von Anwendungen, die auch Security und Netzwerkbetrieb berücksichtigen. Über den Ansatz Application Factory definieren Netzwerk- und Sicherheitsexperten Richtlinien für die Entwickler, damit sich auch produktive Apps wie in einer Fabrik durchgängig per Fließband bereitstellen lassen.
Noch vor wenigen Jahren sahen die Bereitstellungsprozesse für Anwendungen völlig anders aus als heute. Damals bestimmte die Geschwindigkeit, mit der die IT-Abteilung Server beschaffen und bereitstellen konnte, wie schnell sich Anwendungen und digitale Geschäftsprozesse veränderten. Die Planung für neue Anwendungen oder größere Aktualisierungen dauerte viele Monate oder gar Jahre.
Gleichzeitig wurden die Unternehmensanwendungen immer komplexer. Die Anzahl ihrer Abhängigkeiten wuchs und diese waren immer schwieriger nachzuverfolgen und zu verwalten. So entstanden Sicherheitsgefahren, die zum Absturz von Systemen oder zu Datenlecks führen konnten. Selbst ohne die Bedrohung durch Cyber-Kriminelle stieg das Risiko, dass durch die Implementierung einer Änderung das Netzwerk und die von ihm unterstützten Anwendungen beeinträchtigt wurden oder gar ausfielen.
Risiken reduzieren
Um diese Risiken zu reduzieren sowie eine hohe Sicherheit und Zuverlässigkeit für jede Anwendung zu gewährleisten, entwickelten die Netzwerk- und Sicherheitsteams entsprechende Prozesse und Richtlinien. Diese wurden manuell erstellt und geprüft sowie auf die besonderen Bedürfnisse jeder Anwendung zugeschnitten und bei Bedarf aktualisiert.
Diese Abläufe waren zwar zeitraubend, stellten aber nicht unbedingt einen Engpass für die Beschaffung dar. Denn Software-Hersteller veröffentlichten neue Versionen von Anwendungen und Betriebssystemen ohnehin in einem Zeitraum von mehreren Jahren. Wer eine Version übersprang, hatte oft sechs bis sieben Jahre Zeit bis zur nächsten Migration.
Aus heiterem Himmel
Dann kam die Cloud und plötzlich wurden die Installationsprozesse zu einem Hemmschuh für die schnelle Nutzung von neuen und aktuellen Systemen. Etwa zur gleichen Zeit erleichterten GitHub und andere Plattformen für quelloffene Software die Zusammenarbeit von Entwicklern – sei es im selben Team oder in Open-Source-Projekten.
Neue Anwendungsarchitekturen steigerten die Effizienz der Entwickler deutlich. Denn sie verringerten die Gefahr, dass der für einen Bestandteil der Anwendung erstellte Code andere Bestandteile beeinträchtigte. Dies vermied unnötige Nacharbeit und Verzögerungen in erheblichem Maße.
Dazu reduzieren Microservices und Service-Mesh-Architekturen die Abhängigkeiten zwischen den Komponenten der Anwendung selbst, während Container und Serverless-Architekturen die Abhängigkeiten von der zugrunde liegenden Infrastruktur verringern. Damit können einzelne Entwickler oder App-Teams in ihrem jeweils eigenen Tempo arbeiten. Dabei lassen sich Anwendungen innerhalb von Minuten statt Monaten bereitstellen.
Prozesse verändern sich immer schneller
Ursprünglich waren solche Implementierungen auf Entwicklungs- und Testprojekte beschränkt, aber die Nachfrage nach einem schnelleren Zugriff auf Produktionssysteme wuchs schnell. Doch hier hatten Netzwerk-Administratoren und Security-Verantwortliche zum Teil erhebliche Schwierigkeiten, mit dem Tempo mitzuhalten. Denn ihre Aufgaben und Prozesse waren – im Gegensatz zu den Entwicklern – auf die Sicherheit des Unternehmens statt auf die Optimierung von Workflows ausgerichtet. Für Entwickler waren viele der Kernkonzepte im Bereich DevOps schon selbstverständlich: Automatisierung von Prozessen, Verschlankung von Systemen, Reduzierung von Abhängigkeiten zwischen Systemen sowie – wenn möglich – die Nutzung wiederverwendbarer Prozesse und Codes.
Netzwerk-Administratoren und Security-Experten wurden dagegen eher wie Handwerker ausgebildet, nach dem Motto: Sorgfalt geht vor Schnelligkeit. Die unternehmenskritische Natur ihrer Aufgaben erforderte, dass jede Anwendung manuell und umfassend geprüft, Änderungen ausgiebig getestet sowie Richtlinien einzeln erstellt und verwaltet wurden. Auch die Reaktion auf sich verändernde Bedingungen erfolgte manuell.
Den Rückstand aufholen
Diese unterschiedlichen Anforderungen und Arbeitsweisen führen heute dazu, dass Entwickler durch DevOps, Microservices und Container innerhalb von wenigen Minuten Anwendungen bereitstellen. Doch bei produktiven Systemen bremsen oft Security- und Netzwerk-Verantwortliche die Einführung neuer Apps aus, da sie die Sicherheit des Unternehmens und optimale Arbeitsprozesse gewährleisten müssen.
Die notwendige Handarbeit für manuelle Prüfungen und individuelle Richtlinien können sich Unternehmen im immer schnelleren Wettbewerb aber nicht mehr leisten. Mit Hilfe des richtigen Ansatzes holen Netzwerk- und Sicherheitsteams jedoch ihren Rückstand auf die Entwickler in Sachen automatisierte Bereitstellungsprozesse auf.
Die Application Factory
Hierzu gehört der Ansatz einer Application Factory. Man kann ihn sich wie eine Fabrik für Anwendungen vorstellen. Statt handgefertigter Richtlinien und manueller Prüfprozesse definieren Netzwerk- und Sicherheitsexperten wiederverwendbare Richtlinien. Diese geben sie an die Entwickler weiter, die sie als Teil einer automatisierten Deployment-Pipeline für ihren Anwendungen integrieren.
Das ist natürlich leichter gesagt als getan. Schließlich reichte für die Umstellung von handwerklich gefertigten zu fabrikmäßig hergestellten Produkten während der Industrialisierung auch nicht nur der Kauf von Maschinen und neue Positionen für die Mitarbeiter. Eine Veränderung des Systemansatzes erfordert ebenso eine andere Denkweise und Kultur wie neue Werkzeuge und Prozesse.
Das bedeutet für die heutige IT in Unternehmen: Statt einer ausführlichen manuellen Prüfung jedes möglichen Sicherheitsrisikos und jeder möglichen Auswirkung auf die Performance, reduziert ein gut konzipiertes, automatisiertes Application Delivery System die Fehlermöglichkeiten. Dies minimiert Beeinträchtigungen durch Probleme und ermöglicht über effektive Feedback-Schleifen deren frühzeitige Erkennung und Behebung.
Flexibilität vs. Effizienz
Unternehmen müssen sich hier aber für die optimalen Werkzeuge und Prozessketten entscheiden. Sie sollten dabei die Flexibilität für die Entwickler gegen die Effizienz einheitlicher Services abwägen. Das ideale System bietet Entwicklern maximale Wahlmöglichkeiten für die eingesetzten Tools zur Erstellung von Funktionen, bietet aber gleichzeitig konsistente Multi-Cloud-fähige Infrastruktur- und Sicherheitsdienste.
Die Integration solcher umfassenden Dienste in die Application Delivery Pipeline reduziert den technischen Rückstand, erhöht die betriebliche Effizienz und verbessert die Compliance. So werden Entwickler nicht mehr durch umfassende manuelle Security- und Performance-Tests ausgebremst. Dank Automatisierung können sie sich stärker auf die Bereitstellung von wertvolleren Innovationen für das Unternehmen konzentrieren.
Bernd Achatz ist Director Systems Engineering bei F5 Networks.