Halte es einfach

Abgeschlossen
Vermeiden Sie ein Overengineering von Architekturdesign, Anwendungscode und Vorgängen.

Oft führt eher das Weglassen als das Hinzufügen zu den zuverlässigsten Lösungen. Einfachheit reduziert die Oberfläche für die Kontrolle und minimiert Ineffizienzen und mögliche Fehlkonfigurationen oder unerwartete Interaktionen. Andererseits kann eine zu starke Vereinfachung zu Single Points of Failure führen. Verfolgen Sie einen ausgewogenen Ansatz.

Beispielszenario

Contoso Travel kauft und integriert ein kleines Startup-Unternehmen mit einer beliebten webbasierten Reise-App. Die Beliebtheit der App beruht auf ihrem Geschäftsmodell, das auf dem Aushandeln von hohen Rabatten mit Hotelketten und Fluggesellschaften beruht, sowie auf der Nutzung sozialer Medien für intensive und sehr gezielte Marketingkampagnen.

Die bestehende Version des Startup-Produkts wurde in nodejs entwickelt und wird auf VMs ausgeführt, die zwischen dem lokalen Rechenzentrum und AWS gehostet werden.

Minimieren der Workloadkomponenten

Fügen Sie Ihrer Architektur nur dann Komponenten hinzu, wenn sie Ihnen helfen, die angestrebten Geschäftswerte zu erreichen. Der kritische Pfad sollte schlank gehalten werden.

Das Design für Geschäftsanforderungen kann zu einer unkomplizierten Lösung führen, die einfach zu implementieren und zu verwalten ist. Vermeiden Sie zu viele kritische Komponenten, denn jede einzelne stellt einen beträchtlichen Schwachpunkt dar.

Herausforderung von Contoso

  • Eine der Komponenten der neu erworbenen Anwendung ermöglicht es, direkt auf der Website Feedback von den Benutzer*innen einzuholen, nachdem sie eine Reservierung vorgenommen haben. Die Funktion wird nur selten genutzt, da die meisten Benutzer*innen sie einfach überspringen. Es gibt einen starken Feedback-Mechanismus von Benutzer*innen, der über die Konten des Unternehmens in den sozialen Medien funktioniert, die stark für die Interaktion mit Marketingbenutzer*innen genutzt werden. Dieser Mechanismus wird wesentlich häufiger genutzt als die Feedback-Funktion der Website.

Anwenden des Ansatzes und Umsetzen der Ergebnisse

  • Im Rahmen der Erstveröffentlichung der unter der Marke Contoso Travel vertriebenen Version der App beschließt das Team, die Website-Feedback-Komponente der Workload zu entfernen.
  • Eine kleinere Codebasis senkt die Kosten für Wartung und Vorgänge. Und in diesem Fall gibt es keine Auswirkungen auf die Geschäftsanforderungen.

Standardisieren Ihres Lebenszyklus der Softwareentwicklung

Legen Sie Standards für die Code-Implementierung, -Bereitstellung und -Prozesse fest und dokumentieren Sie diese. Identifizieren Sie Möglichkeiten zur Durchsetzung dieser Standards mit Hilfe automatischer Validierungen.

Standards sorgen für Konsistenz und minimieren menschliche Fehler. Ansätze wie standardisierte Benennungskonventionen und Style-Guides für die Programmierung können Ihnen helfen, die Qualität aufrechtzuerhalten und die Ressourcen bei der Problembehandlung leicht zu identifizieren.

Herausforderung von Contoso

  • Das Entwicklungsteam des Startups hat nicht viele Entwicklungs- und Prozessstandards definiert. Es werden mehrere Bibliotheken verwendet, deren Funktionsumfang sich überschneidet, es werden keine einheitlichen Programmierrichtlinien verwendet und es gibt keine formalen Release Gates, die automatisierte Tests vorsehen.
  • Das Workload-Team von Contoso stellt fest, dass die Kosten für die Wartung der neuen Codebasis zu hoch sind, weil es keine einheitlichen Formatvorlagen gibt und die Bibliotheken und Entwurfsmuster nicht einheitlich verwendet werden.
  • Nach größeren Updates in der Produktion kommt es häufig zu Incidents, die manchmal ein Rollback der Updates oder Hotfixes während der Bereitstellung erfordern. Aufgrund der Häufigkeit dieser Art von Problemen bei der Bereitstellung ist das Team gezwungen, bei der Veröffentlichung von Updates für die Produktion alle verfügbaren Mitarbeiter*innen einzubeziehen. Erschwerend kommt hinzu, dass die häufigen Probleme den Ruf von Contoso durch eine schlechte Benutzererfahrung negativ beeinflussen.

Anwenden des Ansatzes und Umsetzen der Ergebnisse

  • Das Team, das den Support für die neue App übernimmt, bemüht sich um eine größere Konsistenz, indem es Programmierrichtlinien durchsetzt, eine Reihe gemeinsamer Bibliotheken und Designmuster standardisiert und die Verwendung von Release Gates auf der Grundlage automatisierter Tests formalisiert.
  • Während diese Änderungen implementiert werden, hält sich das Workload-Team an seine Standarddokumentationsanforderungen. Alle neuen Tools, Entwurfsmuster und Stile, die eingeführt werden, werden gründlich dokumentiert, so dass das Team die Workload in Zukunft besser verstehen und pflegen kann. Das Team kann nun bei der Code Review Abweichungen von den Standards leichter erkennen.

Minimieren des Betriebs- und Entwicklungsaufwands

Nutzen Sie die Vorteile der von der Plattform bereitgestellten Funktionen und vorgefertigten Ressourcen, die Ihnen helfen können, Ihre Geschäftsziele effektiv zu erreichen.

Dieser Ansatz minimiert die Entwicklungszeit. Außerdem können Sie sich auf bewährte Praktiken verlassen, die bereits bei ähnlichen Workloads eingesetzt wurden.

Herausforderung von Contoso

  • Für die erste Veröffentlichung unter dem Markennamen Contoso Travel wird die nodejs-Lösung von VMs auf App Services migriert, um die vielen nativen Zuverlässigkeitsfunktionen des Dienstes zu nutzen.
  • Die auf VMs bereitgestellte Version enthält eine erhebliche Menge an benutzerdefiniertem Code, der für die Instrumentierung benötigt wird.

Anwenden des Ansatzes und Umsetzen der Ergebnisse

  • Während der ersten Migration zu App Services war das Team in der Lage, den gesamten benutzerdefinierten Instrumentierungscode zu entfernen, indem die automatische Instrumentierung von App Insights in App Services implementierte wurde.
  • Das Team kann außerdem verschiedene andere native App Service-Funktionen wie Autoskalierung, Key Vault-Integration und Zonenredundanz nutzen.

Überprüfen Sie Ihr Wissen

1.

Warum sollten Sie versuchen, die Anzahl der Komponenten in Ihrer Workload zu minimieren?

2.

Welche Elemente Ihres Lebenszyklus der Softwareentwicklung sollten standardisiert werden?

3.

Wie konnte der Wechsel zu Azure App Services dazu beitragen, dass das Contoso-Team ihre Workload vereinfacht?