Bereitstellen in App Service

Abgeschlossen

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 der az-Befehlszeilenschnittstelle, mit der Apps gepackt und bereitgestellt werden können. Im Gegensatz zu anderen Bereitstellungsmethoden kann mit az 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.