Empfehlungen zur Verbesserung der Buildgeschwindigkeit
Gilt für diese Checkliste für azure Well-Architected Framework Operational Excellence:
OE:04 | Optimieren Sie die Softwareentwicklungs- und Qualitätssicherungsprozesse der Workload mit branchenerprobten Praktiken für die Durchführung von Entwicklungs- und Testaktivitäten. Standardisieren Sie Methoden für eindeutige Rollenbezeichnungen für Komponenten wie Tools, Quellcodeverwaltung, Anwendungsentwurfsmuster, Dokumentation und Formatvorlagen. |
---|
Verwandte Leitfäden: Empfehlungen für die Standardisierung von Tools und Prozessen | Empfehlungen für die Verwendung der kontinuierlichen Integration
In diesem Handbuch werden die Empfehlungen zur Verbesserung der Leistung Ihrer Bereitstellungsinfrastruktur beschrieben. Es ist wichtig, einen Aufbauprozess am ersten Tag Ihrer Produktentwicklung durchzuführen. Builds sind der Takt Ihres kontinuierlichen Bereitstellungssystems, da der Buildstatus angezeigt wird, wenn Ihr Produkt bereitgestellt werden kann. Builds stellen wichtige Informationen zum Status Ihres Produkts bereit, sodass Sie immer nach schnellen Builds suchen sollten.
Es ist schwierig, ein Buildproblem zu beheben, wenn das Erstellen länger dauert. Wenn Verzögerungen auftreten und normalisiert werden, werden Teams tendenziell weniger motiviert, das Problem zu beheben.
Wichtige Entwurfsstrategien
Optimieren von Buildzeiten
Um schnellere Builds auszuführen, haben Sie folgende Möglichkeiten:
Wählen Sie Agents aus, die Ihren Leistungsanforderungen entsprechen: Beschleunigen Sie Ihre Builds, indem Sie die richtigen Buildcomputer auswählen. Schnelle Computer können den Unterschied zwischen Stunden und Minuten bedeuten. Wenn Sich Ihre Pipelines in Azure-Pipelines befinden, können Sie Ihre Aufträge mit einem von Microsoft gehosteten Agent ausführen. Wenn Sie von Microsoft gehostete Agents verwenden, werden Wartungs- und Upgrades für Sie erledigt. Weitere Informationen finden Sie unter Von Microsoft gehostete Agents.
Optimieren Sie den Buildserverspeicherort: Wenn Sie Ihren Code erstellen, werden Daten über das Kabel gesendet. Eingaben für die Builds werden aus einem Quellcodeverwaltungs-Repository und dem Artefakt-Repository abgerufen. Die Ausgabe des Buildprozesses muss kopiert werden, einschließlich der kompilierten Artefakte, Testberichte, Codeabdeckungsergebnisse und Debugsymbole. Es ist wichtig, dass diese Kopieraktionen schnell ausgeführt werden. Wenn Sie Ihren eigenen Buildserver verwenden, stellen Sie sicher, dass sich der Buildserver in der Nähe der Quellen und eines Zielspeicherorts befindet. Schnelle Uploads und Downloads können die Gesamtbuildzeit reduzieren.
Skalieren von Buildservern: Ein einzelner Buildserver reicht möglicherweise für ein kleines Produkt aus. Da die Größe und der Umfang des Produkts und die Anzahl der teams, die an dem Produkt arbeiten, steigt, reicht ein einzelner Server möglicherweise nicht aus. Skalieren Sie Ihre Infrastruktur horizontal über mehrere Computer, wenn Sie die Grenze erreichen. Weitere Informationen finden Sie unter Erstellen und Verwalten von Agentpools.
Optimieren Sie den Build:
Fügen Sie parallele Aufträge hinzu, um den Buildprozess zu beschleunigen. Weitere Informationen finden Sie unter Konfigurieren von und Bezahlen für Parallelaufträge.
Aktivieren Sie parallele Testsuiteausführungen, die häufig eine große Zeit sparen, insbesondere beim Ausführen von Integrations- und UI-Tests. Weitere Informationen finden Sie unter "Parallele Ausführung von Tests für jeden Testläufer".
Verwenden Sie das Konzept eines Multiplikators, der es Ihnen erlaubt, Ihre Builds über mehrere Build-Agents aufzuskalieren. Weitere Informationen finden Sie unter Angeben von Aufträgen in Ihrer Pipeline.
Erwägen Sie das Verschieben von Integrations-, UI- und Rauchtests in eine Releasepipeline. Der Wechsel zu einer Releasepipeline verbessert die Buildgeschwindigkeit und die Geschwindigkeit der Buildfeedbackschleife.
Veröffentlichen Sie die Buildartefakte in einer Paketverwaltungslösung, z. B. NuGet oder Maven. Mit der Veröffentlichung in einer Paketverwaltungslösung können Sie Ihr Buildartefakt einfacher wiederverwenden.
Minimieren des menschlichen Eingriffs
Ihre Organisation kann verschiedene Arten von Builds erstellen, um Buildzeiten zu optimieren. Mögliche Builds sind:
Continuous Integration (CI)-Build: Der Zweck dieses Builds besteht darin, sicherzustellen, dass Code kompiliert wird und Komponententests ausgeführt werden. Dieser Build wird bei jedem Commit ausgelöst. Sie dient als Takt des Projekts und liefert dem Team sofort qualitätsbezogenes Feedback. Weitere Informationen finden Sie unter Angeben von Ereignissen, die Pipelines auslösen.
Nightly Build: Der Zweck eines nächtlichen Builds besteht nicht nur darin, den Code zu kompilieren, sondern auch, um sicherzustellen, dass alle größeren Testsammlungen, die ineffizient sind, in regelmäßigen Abständen für jeden Build ausgeführt werden. In der Regel umfassen diese Tests Integrations-, UI- oder Rauchtests. Weitere Informationen finden Sie unter Konfigurieren von Zeitplänen für Pipelines.
Releasebuild: Zusätzlich zum Kompilieren und Ausführen von Tests kompiliert dieser Build auch die API-Dokumentation, Complianceberichte, Codesignierung und andere Schritte, die nicht jedes Mal erforderlich sind, wenn der Code erstellt wird. Dieser Build stellt die goldene Kopie bereit, die an die Releasepipeline weitergeleitet wird, um schließlich in der Produktionsumgebung bereitzustellen.
Die Typen von Builds, die von Ihrer Organisation benötigt werden, hängen von Faktoren ab, einschließlich der Reife Ihres Teams und der Organisation, der Art des Produkts, an dem Sie arbeiten, und Ihrer Bereitstellungsstrategie.
Azure-Erleichterung
Azure DevOps ist eine Sammlung von Diensten, die Ihnen helfen, eine zusammenarbeitende, effiziente und konsistente Entwicklungspraxis zu entwickeln.
Verwenden Sie Azure Pipelines , um Dienste zu erstellen und freizugeben, um die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) Ihrer Anwendungen zu unterstützen.
Verwenden Sie GitHub-Aktionen für Azure , um CI/CD-Prozesse zu automatisieren und direkt in Azure zu integrieren, um Bereitstellungen zu vereinfachen. Sie können auch Workflows erstellen und testen, die jede Pullanforderung an Ihr Repository erstellen und testen, oder zusammengeführte Pullanforderungen mithilfe von GitHub-Aktionen für Azure für die Produktion bereitstellen.
Von Microsoft gehostete Agents sind nativ in Azure-Pipelines verfügbar. Bei diesen Agents handelt es sich um virtuelle Computer, die nur für einen Auftrag verwendet und dann verworfen werden, was eine einfach zu verwaltende Option für Ihre Builds bietet.
Verwandte Links
- Azure DevOps
- Azure Pipelines
- Konfigurieren von und Bezahlen für Parallelaufträge
- Konfigurieren von Zeitplänen für Pipelines
- Erstellen und Verwalten von Agentpools
- GitHub für Aktionen für Azure
- Von Microsoft gehostete Agents
- Parallele Ausführung von Tests für jeden Testläufer
- Angeben von Ereignissen, die Pipelines auslösen
- Angeben von Aufträgen in Ihrer Pipeline
Checkliste für operative Exzellenz
Lesen Sie den vollständigen Satz von Empfehlungen.