Mit den Azure App Services erhalten Entwickler eine leistungsfähige PaaS-Umgebung, die Continuous Integration von Haus aus unterstützt. Dieser Artikel demonstriert exemplarisch die GitHub-Anbindung beim Bereitstellen einer statischen WebApp mit JavaScript.
Im Azure-Portal findet sich die Möglichkeit, statische Web-Apps zu erstellen und beispielsweise an GitHub anzubinden.
(Bild: Drilling / Microsoft)
Mit dem Service „Azure Static WebApp“ lassen sich – auf Basis von Änderungen in einem von Azure unterstützten Coder-Repository – automatisch Web-Apps in Azure recht komfortabel bereitstellen. Sobald Sie eine solche Azure Static Web Apps-Ressource erstellen, interagiert Azure wahlweise direkt mit Azure DevOps oder GitHub.
Das jeweilige Quellcodeverwaltungssystem überwacht dann automatisch den gewünschten Branch auf Änderungen. Wenn Sie also einen neuen Commit an den überwachten Branch pushen oder Pull Requests für den überwachten Branch annehmen, sorgt die Azure-Plattform automatisch für das Ausführen eines Builds, um Ihre App und die API in Azure bereitzustellen.
Im Falle klassischer Azure Web Apps (mit .NET/ASP, NodeJS, PHP, Python, Go usw.) funktioniert das selbstredend genauso. Wir starten aber unsere kleine CI/CD-Workshop-Serie der Einfachheit halber am Beispiel einer Static-Web-App-Ressource.
Über statische Web Apps
Beliebte Frameworks und Bibliotheken für das Erstellen statischer Web-Apps sind beispielsweise React, Angular, Vue, Svelte oder Blazor, weil für auf diese Weise erstellte Apps kein serverseitiges Rendering benötigt wird. Solche Apps bestehen dann üblicherweise aus HTML-, JavaScript-, Image- und CSS-Ressourcen.
Bei einem herkömmlichen Webserver werden meist jedoch alle Ressourcen von einem einzelnen Webserver oder Loadbalancer über die ggf. benötigten API-Endpunkte bereitgestellt. Eine statische Web App wiederum stellt statische Ressourcen getrennt von einem herkömmlichen Webserver mit Hilfe von ggf. über auf der ganzen Welt verteilten Endpunkten bereit.
Mit Hilfe einer solchen „Verteilung“ lassen sich Dateien deutlich schneller zum Endbenutzer ausliefern, da sie diesem physisch näher sind. Außerdem werden API-Endpunkte mithilfe einer serverlosen Architektur gehostet, sodass überhaupt kein vollwertiger Back-End-Server erforderlich ist.
Statische Websites auf Azure Storage
In diesem Kontext drängt sich ein kleiner Exkurs auf: Eine weitere komfortable Art, eine statische Website auszuliefern, ist ein Azure Storage Account. Hier genügt es, unter „Datenverwaltung / Statische Webseite“ den Schalter „Statische Webseite“ auf „Aktiviert“ zu setzen sowie den Pfad zum Index-Dokument anzugeben und der Dienst generiert automatisch den Endpunkt: https://ditdewebsitesa.z1.web.core.windows.net/.
Eine statische Website auf Azure Storage.
(Bild: Drilling / Microsoft)
Wem das optisch nicht schön genug ist, kann Diesen mit einem CNAME-Eintrag auf eine selbst gehostete Domain umleiten.
Die statische Website liegt in einem Blob-Container.
(Bild: Drilling / Microsoft)
Der Storage-Account-Dienst erzeugt dann automatischen einen Blob-Container mit dem Namen „$web“ in den Sie dann den Content ihrer statischen HTML oder JS-Seite kopieren. Eine herkömmliche Compute-Ressource (VM oder Docker-Container) zur Auslieferung der Webseite müssen Sie hier ebenso wenig bereitstellen, wie beim PaaS-Dienst Azure Static Web App.
Eine statische Website mit Azure-Storage-Endpoint.
(Bild: Drilling / Microsoft)
Außerdem bezahlen Sie lediglich für die Storage-Kosten, also die Größe der Webseite, die deren Speicherung erfordert, die Transaktionen und die Abrufe. Dafür können Sie ein Speicherkonto im Gegensatz zu einer VM nicht pausieren, müssen sich aber auch nicht um Verfügbarkeit kümmern. Die Webseite ist je nach Art des Speicherkonto immer mit einer Verfügbarbarkeit von mindestens 99,9 Prozent (Cool-Tier mit LRS) ausgestattet.
Content Delivery Network (CDN) in Azure Storage.
(Bild: Drilling / Microsoft)
Die Beschleunigung der Auslieferung zum Endanwender mittels Caching und Netzwerkoptimierung (Content Delivery) bekommen Sie damit zwar nicht automatisch, Sie können aber Content Delivery in einem Azure Storage Account unter „Sicherheit + Netzwerkbetrieb / Azure CDN“ leicht einrichten. Microsoft unterstützt neben der eigenen Endpunkt-Infrastruktur (Microsoft Standard) übrigens auch Verizon und Akamai. Doch zurück zu unserer Azure Static Web App.
Azure Static Web App
Unsere JS-Seite in GitHub.
(Bild: Drilling / Microsoft)
Wir haben uns für dieses Beispiel das CSS-Framework Bootstrap verwendet und eine einfache Demo-App für eine responsive Website mit Titel, Menü, einer Bild-Ressource und einem Button erstellt. Übrigens inhaltlich die gleiche Seite, die wir oben auch auf Azure Storage bereitgestellt haben. Das Erstellen von JavaScript-Websites ist natürlich nicht Anlass dieses Beitrages. Wir haben die Website lediglich zur als Vorbereitung zur CI/CD-Integration zuvor in ein eigenen GitHub-Repository „eingespielt“.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Nun können wir in Azure auf einfache Weise eine statische Web-App bereitstellen. Das Vorgehen zeigt die untenstehende Bildergalerie.
Natürlich funktioniert das – außer im Rahmen der initialen Bereitstellung – auch für jede an GitHub geschickte oder in GitHub online vorgenommene Änderung.