Freigeben über


Erstellen von cloudeigenen Lösungen

Nach Abschluss der Planung besteht die nächste Phase darin, die Lösung in einer Entwicklungsumgebung zu erstellen und zu konfigurieren, die bewährten Methoden einzuhalten und die Qualität durch Tests sicherzustellen. Eine cloudeigene Lösung verwendet skalierbare, robuste und feststellbare Architekturmuster, um die Vorteile von Azure-Diensten zu maximieren. Das Erstellen in einer Nichtproduktionsumgebung mit starken Test- und Automatisierungsmethoden gewährleistet Qualität und Bereitschaft für die Produktionsbereitstellung.

Entwickeln neuer cloudeigener Lösungen

Die cloudeigene Entwicklung erfordert einen strukturierten Ansatz, der Qualitätsmethoden von Anfang an integriert. Dieser Leitfaden hilft Ihnen, zuverlässige, sichere und skalierbare Lösungen durch bewährte Entwicklungsmethoden zu erstellen.

Prinzipien des Well-Architected Frameworks während der Entwicklung anwenden

Eine cloudeigene Lösung profitiert von einer konsistenten Anwendung der Well-Architected Framework -Prinzipien ( WAF)Well-Architected Framework (WAF) bietet wesentliche Prinzipien, die eine effektive cloudeigene Entwicklung unterstützen. Integrieren Sie diese fünf Säulen in Ihren Entwicklungsprozess, um robuste Anwendungen zu erstellen, die in der Produktion gut funktionieren.

Entwickeln von Lösungen in einer Nichtproduktionsumgebung

  1. Erstellen Sie Entwicklungsumgebungen, die Produktionskonfigurationen spiegeln. Richten Sie Nichtproduktionsumgebungen (Entwicklung, Test, QA) ein, die die Produktionskonfiguration genau widerspiegeln. Je näher Ihre Testumgebungen an der Produktivumgebung sind, desto mehr Vertrauen haben Sie, dass alles bei der Veröffentlichung funktioniert. Dieser Ansatz ist besonders wichtig beim Hinzufügen neuer Features zu einer vorhandenen Workload.

  2. Verwenden Sie realistische Datasets, die Produktionsdatenvolumes darstellen. Testen Sie mit Daten, die der Größe und Komplexität von Produktionsworkloads entsprechen. Große Datasets stellen Leistungsengpässe und Skalierungsprobleme offen, die kleine Testdatensätze verpassen. Anonymisieren Sie Produktionsdaten oder generieren Sie synthetische Daten, die die statistischen Eigenschaften realer Daten bewahren.

  3. Implementieren Sie Kostenkontrollen für Nichtproduktionsumgebungen. Verwenden Sie Azure DevTest Labs oder die Ressourcenplanung, um Ressourcen automatisch zu starten und zu beenden, wenn sie nicht verwendet werden. Wenden Sie geeignete Dienstebenen für Entwicklungsworkloads an, und implementieren Sie Ausgabenlimits, um unerwartete Kosten zu vermeiden und gleichzeitig die Effektivität des Tests aufrechtzuerhalten.

Weitere Informationen finden Sie unter Konfigurieren der Testumgebung in WAF.

Implementieren von Änderungen mithilfe der Quellcodeverwaltung und CI/CD

  1. Speichern Sie den gesamten Code und die Konfiguration in einem Git-Repository. Nachverfolgen von Anwendungscode, Infrastrukturvorlagen, Bereitstellungsskripts und Konfigurationsdateien in der Versionssteuerung. Diese Übung bietet einen vollständigen Verlauf der Änderungen und ermöglicht die Zusammenarbeit zwischen Teammitgliedern.

  2. Teilen Sie Entwicklungsarbeit in kleine, häufige Commits auf. Vollständige Funktionsentwicklung in kleinen Schritten, die unabhängig zusammengeführt und getestet werden können. Dieser Ansatz reduziert Integrationskonflikte und erleichtert die Identifizierung der Ursache von Problemen, wenn sie auftreten.

  3. Automatisieren Sie Builds und Tests für jede Codeänderung. Konfigurieren Sie CI/CD-Pipelines, die Code automatisch kompilieren, Tests ausführen und in Nichtproduktionsumgebungen bereitstellen, wenn Änderungen übernommen werden. Schnelle Feedbackschleifen helfen Entwicklern, Probleme schnell zu erfassen und zu beheben.

  4. Verwenden Sie Featurekennzeichnungen, um die Freigabe neuer Funktionen zu steuern. Implementieren Sie Featureumgänge, mit denen Sie Code in der Produktion bereitstellen können, während neue Features deaktiviert bleiben, bis sie für Benutzer bereit sind. Diese Strategie trennt die Bereitstellung von release und ermöglicht sicherere, kontrolliertere Rollouts.

Überwachung während der Entwicklung implementieren

  1. Integrieren Sie Azure Monitor und Application Insights in Ihren Anwendungscode. Fügen Sie überwachungsdatensammlung hinzu, um wichtige Leistungsmetriken, Benutzerinteraktionen und Systemintegritätsindikatoren nachzuverfolgen. Konfigurieren Sie diese Tools während der Entwicklung, um sicherzustellen, dass sie vor der Produktionsbereitstellung ordnungsgemäß funktionieren.

  2. Implementieren Sie die strukturierte Protokollierung in der gesamten Anwendung. Verwenden Sie konsistente Protokollformate und enthalten Kontextinformationen wie Benutzer-IDs, Anforderungs-IDs und Geschäftsprozess-IDs. Strukturieren Sie Ihre Protokolle als JSON-Objekte, um leistungsstarke Abfrage- und Analysefunktionen zu ermöglichen.

  3. Konfigurieren Sie Warnungen für wichtige Metriken und Fehlerbedingungen. Richten Sie eine proaktive Überwachung ein, die Sie benachrichtigt, wenn fehlerraten steigen, die Reaktionszeiten beeinträchtigt werden oder Geschäftsmetriken außerhalb der erwarteten Bereiche fallen. Definieren Sie Warnungsschwellenwerte basierend auf ihren Zielen auf Serviceebene und den Geschäftlichen Anforderungen.

  4. Erstellen Sie Dashboards, die Einblicke in die Systemleistung bieten. Erstellen Sie Überwachungsdashboards, die den Status Ihrer Anwendung, Infrastruktur und Geschäftsprozesse anzeigen. Fügen Sie Metriken hinzu, die sowohl für technische Teams als auch für Geschäftsbeteiligte wichtig sind, um datengesteuerte Entscheidungen zu ermöglichen.

Weitere Informationen finden Sie unter Entwerfen eines Überwachungssystems und Instrumentierung einer Anwendung in WAF.

Überprüfen von cloudeigenen Lösungen mit Tests

Umfassende Tests überprüfen, ob Ihre Lösung geschäftliche Anforderungen erfüllt und unter realen Bedingungen zuverlässig ausgeführt wird. Jede Art von Tests dient einem bestimmten Zweck, um die Lösungsqualität sicherzustellen.

  1. Führen Sie End-to-End-Funktionstests aus, um Geschäftsworkflows zu überprüfen. Testen Sie vollständige Benutzerszenarien von der Authentifizierung bis zum Abschluss der Transaktion mithilfe realistischer Daten und Interaktionen. Überprüfen Sie, ob neue Features ordnungsgemäß funktionieren und dass vorhandene Funktionen nach Änderungen intakt bleiben. Führen Sie Regressionstests aus, um unbeabsichtigte Nebenwirkungen der neuen Entwicklung abzufangen.

  2. Führen Sie Benutzerakzeptanztests mit Geschäftsbeteiligten durch. Binden Sie tatsächliche Benutzer oder Geschäftsvertreter ein, um zu überprüfen, ob die Lösung ihren Anforderungen und Erwartungen entspricht. Testen Sie wichtige Szenarien in einer UAT-Umgebung und geben Sie Feedback zur Benutzerfreundlichkeit und Funktionalität. Erhalten Sie formale Genehmigungen von Projektbeteiligten, bevor Sie mit der Produktionsbereitstellung fortfahren.

  3. Führen Sie Auslastungstests unter realistischen Bedingungen durch, um die Leistung zu überprüfen. Verwenden Sie Azure Load Testing , um erwartete Benutzervolumes und Datendurchsatz zu simulieren. Testen Sie höchstlastend und darüber hinaus, um Leistungsengpässe und Skalierungsgrenzwerte zu identifizieren. Messen Sie Die Reaktionszeiten, den Durchsatz und die Ressourcenauslastung, um sicherzustellen, dass Ihre Lösung die Leistungsanforderungen erfüllt.

  4. Führen Sie Sicherheits- und Compliancetests aus, um Sicherheitsrisiken zu identifizieren. Führen Sie automatisierte Sicherheitsüberprüfungen für Anwendungscode, Containerimages und Infrastrukturkonfigurationen aus. Verwenden Sie Microsoft Defender für Cloud, um auf Sicherheitsfehler und Complianceverletzungen zu überprüfen. Behandeln Sie kritische Sicherheitslücken vor der Bereitstellung und implementieren Sie ausgleichende Kontrollen für akzeptierte Risiken.

  5. Beheben Sie kritische Probleme vor der Produktionsbereitstellung. Betrachten Sie Testphasen als Qualitätssicherungsmaßnahmen, die erfolgreich abgeschlossen werden müssen, bevor man fortfährt. Beheben Sie Leistungsprobleme, die die Einhaltung von Service-Level-Vereinbarungen verhindern, und beheben Sie Sicherheitslücken, die ein erhebliches Risiko darstellen. Behandeln Sie funktionale Mängel, die sich auf kerngeschäftsbezogene Prozesse auswirken. Dokumentieren Sie bekannte Probleme mit niedriger Priorität bei Plänen für die zukünftige Lösung.

  6. Verwalten Sie automatisierte Komponenten- und Integrationstestsuiten. Erstellen Sie umfassende automatisierte Tests, mit denen einzelne Komponenten und ihre Interaktionen mit externen Abhängigkeiten überprüft werden. Führen Sie diese Tests als Teil Ihrer CI/CD-Pipeline und nach jeder der Fehlerbehebung aus, um Regressionen zu verhindern. Eine robuste automatisierte Testsuite ermöglicht eine sichere kontinuierliche Bereitstellung in cloudeigenen Umgebungen.

Erstellen wiederverwendbarer Infrastruktur

Sobald Ihre modernisierte Lösung alle Tests in der Nichtproduktion-Umgebung bestanden hat, sollten Sie die Infrastruktureinrichtung und -konfigurationen als Code erfassen, damit sie problemlos in Produktions- und zukünftigen Umgebungen repliziert werden können. Wiederverwendbare Infrastruktur bedeutet die Verwendung von Infrastruktur-as-Code-Vorlagen (IaC) und Automatisierung für Konsistenz und Geschwindigkeit.

  1. Erstellen Sie IaC-Vorlagen für bewährte Konfigurationen. Nehmen Sie die endgültige Architektur Ihrer Testumgebung (die das gewünschte Produkt widerspiegelt) und codieren Sie sie. Verwenden Sie Bicep-, Terraform- oder Azure Resource Manager-Vorlagen , um Ihre Infrastruktur zu definieren. Parametrisieren Sie diese Vorlagen, damit sie für verschiedene Stufen wie Dev, Test, Prod mit kleinen Optimierungen wie Namen oder Größen wiederverwendet werden können. Mit diesem Setup wird sichergestellt, dass die von Ihnen erstellte Produktionsumgebung mit dem getesteten Element übereinstimmt. Es vermeidet den menschlichen Fehler beim manuellen Klicken auf das Azure-Portal, um Ressourcen zu erstellen. Dies bedeutet auch, wenn Sie die Umgebung, z. B. für die Notfallwiederherstellung oder die Bereitstellung in neuen Regionen, neu erstellen müssen, die Infrastrukturbereitstellung bereit ist. Weitere Informationen finden Sie unter CAF Manage – Code-basierte Bereitstellungen verwalten.

  2. Speichern sie Vorlagen im Versionssteuerelement. Überprüfen Sie Ihren Infrastrukturcode in einem Git-Repository (zusammen mit dem Anwendungscode oder in einem separaten Repository). Verwenden Sie GitHub oder Azure DevOps , um IaC-Objekte mit der richtigen Versionssteuerung zu verwalten. Die Versionssteuerung ermöglicht Codeüberprüfungen, unterstützt die Teamzusammenarbeit und fördert die Wiederverwendung von Vorlagen für alle Projekte. Dieser Ansatz bietet vollständige Rückverfolgbarkeit für Infrastrukturänderungen und unterstützt Rollbackfunktionen, wenn Probleme auftreten.

  3. Automatisieren Sie die Installation und Konfiguration von Abhängigkeiten. Erstellen Sie Skripts oder Pipelineaufgaben, um diese Vorlagen bereitzustellen und auch alle erforderlichen Konfigurations- oder Seedingaufgaben zu verarbeiten. Verwenden Sie Azure Pipelines, GitHub-Aktionen, um Bereitstellungsaufträge auszuführen, die die IaC-Vorlage verwenden und in einer Zielabonnement-/Ressourcengruppe bereitstellen. Automatisieren Sie die Installation von App-Abhängigkeiten, konfigurieren Sie Einstellungen und geheime Schlüsselverwaltung. Das Ziel ist die Einrichtung einer Umgebung mit nur einem Klick (oder einem Befehl): von nichts zu einer vollständig laufenden Umgebung, die der von Ihnen getesteten Umgebung entspricht.

  4. Testen Sie den End-to-End-Prozess von IaC und Automatisierung. Verwenden Sie ein separates Azure-Abonnement oder eine separate Ressourcengruppe als Sandkasten, und üben Sie die Bereitstellung Ihrer gesamten Umgebung ganz neu mit Ihren Vorlagen und Skripts. Testen Sie, ob Ihre IaC-Vorlagen, Pipelines und Skripts den vollständigen Infrastrukturstapel aus nichts erstellen können. Testen Sie verschiedene Bereitstellungsszenarien, einschließlich anfänglicher Bereitstellung, Konfigurationsupdates und Rollbackprozeduren, um zu bestätigen, dass die Automatisierung ordnungsgemäß funktioniert.

Weitere Informationen finden Sie unter Entwerfen einer Workload-Entwicklungsversorgungsänderung und Infrastruktur als Code in WAF.

Erstellen der Bereitstellungsdokumentation

Auch bei der Automatisierung ist eine gute Dokumentation zu Bereitstellungen entscheidend für die Überwachung, das Onboarding neuer Teammitglieder und für zukünftige Wartungen. Die Bereitstellungsdokumentation sollte Konfigurationen, Verfahren und Rollbackschritte in lesbarer Form abdecken.

  1. Dokumentkonfigurationseinstellungen und -schritte. Zeichnen Sie alle umgebungsspezifischen Einstellungen, Verbindungszeichenfolgen, Dienstendpunkte und Sicherheitskonfigurationen in barrierefreier Dokumentation auf. Schließen Sie schrittweise Bereitstellungsanweisungen, Voraussetzungen und Überprüfungsschritte nach der Bereitstellung ein. Diese Dokumentation ermöglicht konsistente Bereitstellungen und unterstützt die Problembehandlung bei Auftreten von Problemen. Wenn ein neuer Ingenieur bereitstellen müsste, könnte er dieses Dokument lesen und der Ausgabe der Pipeline folgen oder sie verstehen.

  2. Aktualisieren von Rollback- und Wiederherstellungsprozeduren. Nachdem Sie Ihre Tests abgeschlossen haben, formalisieren Sie die Schritte zum Zurücksetzen von Änderungen, wenn Bereitstellungsprobleme auftreten. Fügen Sie Rollbacktrigger, Datensicherungs- und Wiederherstellungsüberprüfungsschritte ein. Testen Sie Rollback- und Wiederherstellungsprozeduren regelmäßig, um sicherzustellen, dass sie bei Bedarf ordnungsgemäß funktionieren. Diese Vorbereitung reduziert Ausfallzeiten.

  3. Sammeln Sie alle diese Dokumentation an einem zentralen Ort. Verwenden Sie SharePoint, GitHub oder ein Wiki, um diese Informationen zu speichern. Stellen Sie sicher, dass das Team und das Supportpersonal wissen, wo es zu finden ist. Bei einem Vorfall mit hohem Stress ist es ein Lebensschoner, klare Dokumente zur Hand zu haben.

Nächster Schritt