© Igor_Koptilin/Shutterstock.com
Anwendungsmanagement mit AWS Proton – Teil 1

Im Maschinenraum


Das Verwalten von Hunderten – oder manchmal Tausenden – Microservices mit sich ständig ändernden Konfigurationen für CI/CD-Chains ist für viele Plattformteams eine nahezu unlösbare Aufgabe. Im folgenden Artikel wird AWS Proton näher beleuchtet, ein vollständig verwalteter Service für das Ausrollen von Container- und Serverless-Anwendungen. Der erste Teil dieses Artikels bietet einen ersten Überblick über den Service, der zweite Teil betrachtet technische Details.

Der Betrieb von großen Plattformen in einem Unternehmen ist herausfordernd. Die Operationsteams kämpfen damit, Konsistenz und Compliance für Infrastrukturen aufrechtzuerhalten, die von Teams im gesamten Unternehmen eingesetzt werden. Heutige Entwicklungsteams erstellen Apps, die aus Dutzenden oder Hunderten von einzelnen Komponenten oder Microservices bestehen, die in Container- oder Serverless-Umgebungen ausgeführt werden.

Jeder dieser Services ist so aufgebaut, dass er unabhängig und modular ist, sodass er geändert werden kann, ohne die anderen zu beeinflussen. Ein populäres Beispiel ist die Entwicklung einer komplexen Website, die Daten aus unterschiedlichen Backends benötigt. Die einzelnen Entwicklungsteams arbeiten jeweils an einem Service, was zur Folge hat, dass sie Änderungen schneller und mit weniger operativem Risiko vornehmen können.

Es ist jedoch wichtig zu erkennen, dass hinter jeder dieser einfachen Services eine Menge Komplexität steckt. Das Einrichten einer „einfachen“ Anwendung (Abb. 1), die diese Microservices nutzt, kann beispielsweise eine lange Liste anderer Dienste und Konfigurationen erfordern, wie die Wahl der Computerimplementierung, DNS, Lastverteilung, Sicherheit, CI/CD-Pipeline, Überwachung und so weiter.

moellering_proton_1.tif_fmt1.jpgAbb. 1: Eine „einfache“ Anwendung

Als typisches Pattern hat sich in großen Unternehmen etabliert, dass neben den Plattformteams Entwicklerteams existieren, die die eigentlichen Funktionalitäten umsetzen. Die Entwickler arbeiten mit den Plattformteams zusammen, um die Infrastrukturkonfigurationen zu definieren und zu erstellen und alles für die Deployments zu paketieren. Jedes Mal, wenn die Entwickler etwas ändern wollen, muss der vollständige Zyklus mit dem Plattformteam wiederholt werden, damit sie die Konsistenz und Kontrolle über all diese Dienste aufrechterhalten können. Ein beliebter Ansatz in großen Unternehmen ist der Aufbau einer gemeinsamen Serviceplattform oder einer internen Entwicklerplattform. Die Betreiber dieser Plattformen können Standards für Sicherheit, Softwarebereitstellung, Überwachung und Netzwerke definieren und haben so mehr Kontrolle. Entwickler, die diese Plattformen nutzen, haben eine angepasste Selfservice-Schnittstelle, die für die Bereitstellung von Code optimiert ist, sodass sie produktiver arbeiten und ihre Software schneller ausrollen können.

Die Kontrolle von Anwendungen, die Implementierung von Guardrails und die Investition in die Entwicklerproduktivität sind nicht neu. Das Problem ist, dass die bestehenden Lösungen nicht die richtige Balance für Unternehmen mit großen Entwicklungsteams oder schnell wachsenden Anwendungsportfolios finden, die moderne Container- und serverlose Architekturen nutzen. Auf der einen Seite steht die vollständige und flexible Infrastructure as a Service, bei der Entwickler die größtmöglichen Freiheiten haben, was aber auch mit dem entsprechenden Maß an Verantwortung einhergeht. Und auf der anderen Seite steht die abgeschottete Platform as a Service, bei der das Plattformteam alle Entscheidungen getroffen hat, was es für Entwickler einfach macht, Code auszuführen, aber schwer, innovativ zu sein (Abb. 2).

moellering_proton_2.tif_fmt1.jpgAbb. 2: Vor- und Nachteile von PaaS und IaaS

Proton schafft ein Gleichgewicht zwischen dem Bedürfnis der Betreiber nach Kontrolle und dem Bedürfnis der Entwickler nach Flexibilität. Mit Proton können Plattformteams Entwicklern eine einfache Möglichkeit bieten, ihren Code mit Hilfe von Containern und serverlosen Technologien bereitzustellen und dabei die Verwaltungstools, die Governance und die Sichtbarkeit zu nutzen, die erforderlich sind, um konsistente Standards und Best Practices zu gewährleisten.

Plattformteams verwenden Proton, um einen Stack zu erstellen, der alles definiert, was für die Bereitstellung, das Deployment und die Überwachung eines Diensts benötigt...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang