Verbessern der Effizienz durch Optimierung
- 15 Minuten
|
---|
Die während der Anfangsphase festgelegten Ziele basieren auf einer angemessenen Benutzererfahrung, je nach unterschiedlichen Einschränkungen. Es lohnt sich, diese Ziele zu überarbeiten und anzupassen, um die Erfahrung noch besser zu machen. Dazu benötigen Sie ein klares Bild darüber, wie das System verwendet wird, wie es verändert wird und wie sich die Plattform oder Technologie weiterentwickelt hat. Der Zyklus der Überwachung, Optimierung, Tests und Bereitstellung ist ein fortlaufender Prozess.
Wenn Sie die Effizienz optimieren, kann die Workload mit weniger Ressourcen ausgeführt werden. Dies kann Ihnen zusätzliche Kapazität geben, wodurch einige Optionen geöffnet werden. Sie können die Kapazität nutzen, um das System zuverlässiger zu machen, es zu reduzieren, um Kosten zu sparen oder neue Produktfeatures zu unterstützen, ohne mehr Infrastruktur zu benötigen.
Wenn das System effizienter ausgeführt wird, ist es ein guter Zeitpunkt, neue Leistungsziele festzulegen und sicherzustellen, dass Sie mit ihnen schritthalten.
Beispielszenario
Das Hr Engineering-Team von Contoso verarbeitet benutzerdefinierte Integrationen in das HR-Informationssystem des Unternehmens. Zu diesen Integrationen gehören Finanzen für Lohn- und Gehaltsabrechnungen, Einstellungsdaten für Berichte zum Arbeitsrecht der Regierung und einige andere. Die meisten dieser Integrationen werden als In C# geschriebene Azure-Funktionen ausgeführt, die in einem Azure Arc-fähigen Kubernetes-Cluster im Rechenzentrum des Unternehmens gehostet werden. Insgesamt laufen die Aufträge reibungslos, aber ein paar verursachen Stress für das Team, da Verzögerungen bei der Verarbeitung manchmal bedeuten, dass der HR-Direktor keine wichtigen Daten rechtzeitig erhält.
Priorisieren von Leistungsoptimierungen
Konzentrieren Sie sich auf konzentrierte Zeit, um die Leistung zu verbessern, indem Sie nicht funktionale Anforderungen angehen und Verbesserungen in Funktionsbereichen vornehmen. Die Hauptschwerpunkte für diese Arbeit sind ressourcennutzung, Codequalität, Datenaufbewahrung und Datenbankabfragen.
Durch diesen Ansatz helfen Sie dabei, eine Kultur zu schaffen, die leistungsorientierte Verbesserungen wirklich wertet. Außerdem bleibt das Team dafür verantwortlich, über Leistungstrends zu bleiben und sicherzustellen, dass die Anwendung immer besser wird.
Herausforderung von Contoso
Das Team ist ziemlich verschrottet, und ihr Backlog ist verpackt. In den meisten Fällen nehmen sie beim Erstellen und Starten von Integrationen einen schnellen Bearbeitungsansatz. Sie schreiben den Code, stellen ihn bereit und springen dann direkt in die nächste Aufgabe.
Das Team wurde häufig in die Unterstützung kritischer Vorfälle gezogen, da die leitende Führung die benötigten Daten nicht immer rechtzeitig abrufen kann.
Alle Teammitglieder wissen, dass Änderungen erforderlich sind, aber sie haben sie noch nicht als Priorität festgelegt.
Umsetzung und Ergebnisse
Das Team legt nun 20% jedes Sprints auf, um technische Schulden anzugehen und sich auf andere Leistungsverbesserungen zu konzentrieren. Dadurch erhalten sie den Raum, sich auf kritische Bereiche zu konzentrieren und fortschritte zu machen, wo sie wirklich zählen.
Mit diesem Ansatz kann das Team die Zeit widmen, die sie benötigen, um die Leistungsprobleme zu beheben, die die Datenverarbeitung verlangsamt haben.
Suchen nach Designverbesserungen
Verbessern Sie die Architektur, indem Sie neue Entwurfsmuster und -komponenten hinzufügen, die die Leistung steigern können, insbesondere in der Art und Weise, die Sie aufgrund enger Zeitachsen oder Budgetbeschränkungen nicht berücksichtigt haben.
Neue Designmuster und -komponenten können dazu beitragen, das System zu optimieren, was zu einer reibungsloseren Benutzererfahrung führt und im Laufe der Zeit Geld spart. Beispielsweise kann das Hinzufügen von Zwischenspeicherung oder das Einfügen eines Inhaltsübermittlungsnetzwerks einen spürbaren Unterschied ausmachen.
Herausforderung von Contoso
- Das Team hat Azure-Funktionen und triggerbasierte Abläufe seit mehreren Jahren verwendet, und sie haben keine Zeit gedauert, um andere Optionen zu untersuchen.
Umsetzung und Ergebnisse
Das Team beginnt, andere Möglichkeiten zur Verwendung von Azure-Funktionen zu untersuchen und findet, dass dauerhafte Funktionen ein Fanoutmodell unterstützen, das ihnen dabei helfen kann, eine bestimmte Lohnbuchhaltungsaufgabe parallel auszuführen.
Das Team fügt dieses Muster dem Designkatalog für die zukünftige Verwendung hinzu. Es ist auch eine gute Erinnerung, dass die Verbesserung der Leistung nicht nur das Bereinigen von Code oder Daten ist. Manchmal geht es darum, den Ansatz ganz neu zu überdenken.
Analysieren von Telemetriedaten und Trends
Verwenden Sie Überwachungstools, um in historische Trends einzugraben und zu finden, welche Flüsse und Codepfade wirklich eine Leistungssteigerung nutzen könnten. Tools wie Anwendungsleistungsüberwachung (Application Performance Monitoring, APM) und Profilierer eignen sich hervorragend für diese Aufgabe. Sie helfen Ihnen, betriebsbereite Pfade und andere Orte im System zu finden, die die Dinge möglicherweise verlangsamen.
Nachdem Sie die Bereiche gefunden haben, die Probleme verursachen, kann das Team seine Energie konzentrieren, wo es den größten Unterschied macht.
Herausforderung von Contoso
Das Team hat alle Funktionen mit Application Insights instrumentiert.
Sie verwenden hauptsächlich Application Insights für Break-Fix-Probleme und für die Protokollierungssenke.
In der Vergangenheit haben sie sich auf Feedback von leitender Führung verlassen, um herauszufinden, wo sie sich auf Verbesserungsbemühungen konzentrieren müssen.
Umsetzung und Ergebnisse
Während das Feedback wichtig ist, bemerkt das Team, dass Application Insights tatsächlich eine ziemlich gute Aufgabe hat, Hotspots in den Apps zu finden, die es überwacht.
Das Team beginnt mit der Nutzung dieses Features, und da sie bereits wissen, welche Flüsse am wichtigsten sind, wird es zu einem wirklich nützlichen Teil ihrer 20% Zeit, die sich auf technische Verbesserungen und Effizienz konzentriert.
Mithilfe von Application Insights konnte das Team eine riskante Integration proaktiv identifizieren und behandeln, bevor ein Führungsteammitglied ein Problem auftrat.