Bereitstellen in App Service
Jedes Entwicklungsteam verfügt über spezifische Anforderungen, die die Implementierung einer effizienten Bereitstellungspipeline in einem beliebigen Clouddienst erschweren können. App Service unterstützt sowohl die automatisierte als auch die manuelle Bereitstellung.
Automatisierte Bereitstellung
Die automatisierte Bereitstellung oder Continuous Deployment ist ein Prozess, der dazu dient, neue Funktionen und Fehlerkorrekturen in einem schnellen und sich wiederholenden Muster mit minimalen Auswirkungen auf die Endbenutzer zu implementieren.
Azure unterstützt die automatische Bereitstellung direkt aus verschiedenen Quellen. Die folgenden Optionen sind verfügbar:
- Azure DevOps Services: Sie können Ihren Code an Azure DevOps Services pushen, Ihren Code in der Cloud erstellen, Tests ausführen, ein Release aus dem Code generieren und schließlich Ihren Code an eine Azure-Web-App pushen.
- GitHub: Azure unterstützt die automatische Bereitstellung direkt aus GitHub. Wenn Sie Ihr GitHub-Repository für die automatische Bereitstellung mit Azure verbinden, werden alle Änderungen, die Sie per Push in Ihren Produktionsbranch auf GitHub übertragen, automatisch für Sie bereitgestellt.
- Bitbucket: Ähnlich wie mit GitHub können Sie mit Bitbucket eine automatisierte Bereitstellung konfigurieren.
Manuelle Bereitstellung
Ihnen stehen verschiedene Optionen zur Verfügung, um Ihren Code manuell per Push in Azure zu übertragen:
- Git: App Service-Web-Apps verfügen über eine Git-URL, die Sie als Remoterepository hinzufügen können. Durch Push an das Remoterepository wird Ihre App bereitgestellt.
- CLI:
webapp up
ist ein Feature deraz
-Befehlszeilenschnittstelle, mit der Apps gepackt und bereitgestellt werden können. Im Gegensatz zu anderen Bereitstellungsmethoden kann mitaz webapp up
eine neue App Service-Web-App für Sie erstellt werden, sofern Sie dies nicht bereits erledigt haben. - ZIP-Bereitstellung: Verwenden Sie
curl
oder ein ähnliches HTTP-Hilfsprogramm, um eine ZIP-Datei Ihrer Anwendungsdateien an App Service zu senden. - FTP/S: FTP oder FTPS ist eine herkömmliche Methode, Ihren Code per Push in beliebige Hostingumgebungen wie App Service zu übertragen.
Verwenden von Bereitstellungsslots
Verwenden Sie nach Möglichkeit immer Bereitstellungsslots, wenn Sie einen neuen Produktionsbuild bereitstellen. Wenn Sie einen App Service Plan der Dienstebene Standard oder höher verwenden, können Sie Ihre App in einer Stagingumgebung bereitstellen und dann Ihre Staging- und Produktionsslots tauschen. Durch den Tauschvorgang werden die erforderlichen Workerinstanzen kontrolliert auf Ihr Produktionsniveau gebracht, wodurch Ausfallzeiten beseitigt werden.
Kontinuierliches Bereitstellen von Code
Wenn Ihr Projekt designierte Branches für Tests, QA und Staging hat, sollte jeder dieser Branches kontinuierlich in einem Stagingslot bereitgestellt werden. Dies ermöglicht es den Projektbeteiligten, den bereitgestellten Branch einfach zu bewerten und zu testen.
Kontinuierliches Bereitstellen von Containern
Stellen Sie für benutzerdefinierte Container aus Azure Container Registry oder anderen Containerregistrierungen das Image in einem Stagingslot bereit, und tauschen Sie in die Produktion, um Ausfallzeiten zu vermeiden. Die Automatisierung ist komplexer als die Codebereitstellung, da Sie das Image in eine Containerregistrierung pushen und das Imagetag in der „webapp“ aktualisieren müssen.
- Erstellen Sie das Image, und kennzeichnen Sie es: Kennzeichnen Sie das Image als Teil der Buildpipeline mit der Git-Commit-ID, dem Zeitstempel oder anderen identifizierbaren Informationen. Es ist am besten, nicht das standardmäßige Tag „Latest“ zu verwenden. Andernfalls ist es schwierig nachzuverfolgen, welcher Code aktuell bereitgestellt ist, was das Debuggen wesentlich erschwert.
- Pushen Sie das gekennzeichnete Image: Nachdem das Image erstellt und gekennzeichnet wurde, pusht die Pipeline das Image in unsere Containerregistrierung. Im nächsten Schritt pullt der Bereitstellungsslot das gekennzeichnete Image aus der Containerregistrierung.
- Aktualisieren Sie den Bereitstellungsslot mit dem neuen Imagetag: Wenn diese Eigenschaft aktualisiert wird, startet die Website automatisch neu und zieht das neue Containerimage.