Kandidaten für cloudnative Apps
Tipp
Diese Inhalte sind ein Auszug aus dem E-Book „Architecting Cloud Native .NET Applications for Azure“, verfügbar in der .NET-Dokumentation oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.
Denken Sie an die Apps, die Ihr Unternehmen erstellen muss. Betrachten Sie dann die vorhandenen Apps in Ihrem Portfolio. Wie viele davon rechtfertigen eine cloudnative Architektur? Alle genannten? Vielleicht einige?
Nach einer Kosten-Nutzen-Analyse ist es gut möglich, dass einige diese Anstrengungen nicht unterstützen würden. Die Kosten für die Umstellung auf eine cloudnative Struktur würden den Geschäftswert der Anwendung bei weitem übersteigen.
Welche Art von Anwendung kann ein Kandidat für „cloudnativ“ sein?
Strategische Unternehmenssysteme, die ständig neue Geschäftsfunktionen/Features entwickeln müssen
Eine Anwendung, die ein hohes Releasetempo erfordert – mit hoher Konfidenz
Ein System, bei dem einzelne Features freigegeben werden müssen, ohne dass das gesamte System neu bereitgestellt werden muss
Eine Anwendung, die von Teams mit Fachwissen in verschiedenen Technologiebereichen entwickelt wurde
Eine Anwendung mit Komponenten, die unabhängig voneinander skaliert werden müssen
Kleinere, weniger bedeutsame Branchenanwendungen könnten gut mit einer einfachen monolithischen Architektur auskommen, die in einer Cloud-PaaS-Umgebung gehostet wird.
Dann gibt es noch die Legacysysteme. Auch wenn wir alle gerne neue Anwendungen erstellen würden, sind wir oft für die Modernisierung bestehender Workloads verantwortlich, die für das Unternehmen wichtig sind.
Modernisieren von Legacy-Apps
Das kostenlose Microsoft-E-Book Modernisieren vorhandener .NET-Anwendungen mit Azure Cloud und Windows-Containern bietet Anleitungen zum Migrieren lokaler Workloads in die Cloud. Abbildung 1-10 zeigt, dass es für die Modernisierung von Legacyanwendungen keine einheitliche Strategie gibt, die für alle passt.
Abbildung 1-10. Strategien für die Migration von Legacyworkloads
Monolithische Apps, die nicht kritisch sind, könnten von einer schnellen Lift & Shift-Migration profitieren. Hier wird die lokale Workload ohne Änderungen auf einer cloudbasierten VM neu gehostet. Bei diesem Ansatz wird das IaaS-Modell (Infrastructure-as-a-Service) verwendet. Azure umfasst mehrere Tools wie Azure Migrate, Azure Site Recovery und Azure Database Migration Service, um die Verschiebung zu optimieren. Obwohl diese Strategie einige Kosteneinsparungen erzielen kann, waren solche Anwendungen in der Regel nicht darauf ausgelegt, die Vorteile des Cloud Computing freizusetzen und zu nutzen.
Unternehmenskritische Legacy-Apps profitieren häufig von einer verbesserten cloudoptimierten Migration. Dieser Ansatz umfasst Bereitstellungsoptimierungen, die wichtige Clouddienste aktivieren – ohne die Kernarchitektur der Anwendung zu ändern. Sie könnten z. B. die Anwendung containerisieren und in einem Containerorchestrator wie Azure Kubernetes Services bereitstellen, auf den wir später in diesem Buch eingehen. Sobald die Anwendung in der Cloud ist, kann sie cloudgestützte Dienste wie Datenbanken, Nachrichtenwarteschlangen, Überwachung und verteilte Zwischenspeicherung in Anspruch nehmen.
Monolithische Apps, die strategische Unternehmensfunktionen bereitstellen, profitieren am meisten von einem cloudnativen Ansatz, dem Thema dieses Buchs. Dieser Ansatz bietet Flexibilität und Geschwindigkeit. Aber das hat den Preis, dass Sie die Plattform umgestalten, die Architektur ändern und den Code erneut generieren müssen. Im Laufe der Zeit kann eine Legacyanwendung in Microservices zerlegt, containerisiert und schließlich in eine cloudnative Architektur umgewandelt werden.
Wenn Sie und Ihr Team der Meinung sind, dass ein cloudnativer Ansatz angemessen ist, sollten Sie die Entscheidung mit Ihrem Unternehmen besprechen. Was genau ist das Geschäftsproblem, das ein cloudnativer Ansatz lösen soll? Wie würde er den Geschäftsanforderungen entsprechen?
Schnelle Veröffentlichungen von Features mit erhöhter Konfidenz?
Differenzierte Skalierbarkeit – effizientere Ressourcennutzung?
Verbesserte Systemresilienz?
Verbesserte Systemleistung?
Mehr Transparenz hinsichtlich der Vorgänge?
Mischen Sie Entwicklungsplattformen und Datenspeicher, um das beste Tool für Ihren Auftrag zu finden?
Zukunftssichere Anwendungsinvestition?
Die richtige Migrationsstrategie hängt von den Prioritäten des Unternehmens und den Systemen ab, auf die Sie abzielen. Für viele mag es kostengünstiger sein, eine monolithische Anwendung in der Cloud zu optimieren oder undifferenzierte Dienste zu einer N-schichtigen App hinzuzufügen. In diesen Fällen können Sie die PaaS-Cloudfunktionen, wie sie Azure App Service bietet, weiterhin uneingeschränkt nutzen.
Zusammenfassung
In diesem Kapitel haben wir das cloudnative Computing vorgestellt. Wir haben eine Definition sowie die wichtigsten Funktionen für eine cloudnative Anwendung zusammengestellt. Wir haben uns die Arten von Anwendungen angesehen, die diese Investition und den Aufwand rechtfertigen könnten.
Nach dieser Einführung werfen wir jetzt einen genaueren Blick auf den Begriff „cloudnativ“.
Referenzen
.NET Microservices: Architektur für .NET-Containeranwendungen
Modernisieren vorhandener .NET-Anwendungen mit Azure Cloud und Windows-Containern
Cloudnative Anwendungen: Schneller liefern, Risiken reduzieren und Ihr Geschäft ausbauen
Beyond the Twelve-Factor Application (Jenseits der Zwölf-Faktoren-Anwendung)
Uber Engineering's Micro Deploy: Deploying Daily with Confidence (Micro Deploy von Uber Engineering: Tägliche Bereitstellung mit Konfidenz)
How Netflix Deploys Code (Vorgehensweise von Netflix bei der Bereitstellung von Code)
Overload Control for Scaling WeChat Microservices (Überlastkontrolle für die Skalierung von WeChat Microservices)