Hosten von Anwendungen in Azure
Dies ist Teil drei in einer Reihe von 7 Artikeln, die Entwicklern bei den ersten Schritten mit Azure helfen.
- Teil 1: Übersicht über Azure für Entwickler
- Teil 2: Wichtige Azure-Dienste für Entwickler
- Teil 3: Hosten von Anwendungen in Azure
- Teil 4: Verbinden Ihrer App mit Azure-Diensten
- Teil 5: Wie erstelle und verwalte ich Ressourcen in Azure?
- Teil 6: Wichtige Konzepte zum Erstellen von Azure-Apps
- Teil 7: Wie werde ich abgerechnet?
Azure bietet verschiedene Möglichkeiten, Ihre Anwendung je nach Ihren Anforderungen zu hosten. In diesem Artikel werden Dienste vorgeschlagen, die den Anforderungen entsprechen. Es ist nicht restriktiv gemeint. Sie können Dienste kombinieren und aufeinander abstimmen, um Ihren Anforderungen gerecht zu werden. Die meisten Produktionsumgebungen nutzen eine Kombination aus Diensten, um ihre geschäftlichen und organisatorischen Anforderungen zu erfüllen.
Die von Ihnen gewählten Dienste basieren häufig auf zwei Überlegungen:
- Bevorzugen Sie Einfachheit oder Kontrolle?
- Bevorzugen Sie cloudnative (d. h. Container) oder Azure-native (maßgeschneiderte Tools und Integrationen)?
Das folgende Video erläutert die erste Überlegung: Einfachheit im Vergleich zur Kontrolle:
Einfachheit und Kontrolle
Azure-Hostingdienste werden unter zwei Gesichtspunkten bereitgestellt:
- Einfachheit im Vergleich zur Kontrolle
- Einfache Hostingplattformen erfordern weniger Konfiguration und Verwaltung, bieten aber weniger Kontrolle über die zugrunde liegende Infrastruktur.
- Komplexere Hostingplattformen erfordern mehr Konfiguration und Verwaltung, bieten aber auch mehr Kontrolle über die zugrunde liegende Infrastruktur.
- Cloudnativ im Vergleich zu Azure-nativ
- Cloudnativ kann man sich als Cloud-portierbar mit Open-Source-Workloads wie Containern und Open-Source-Technologien wie Dapr vorstellen. Die von Ihnen erstellten Anwendungen können für jeden Cloudanbieter bereitgestellt werden.
- Azure-nativ ist spezifisch für Azure mit einer Investition in Azure-spezifische Tools und Technologien zur Verwaltung dieser Infrastruktur. Während diese Dienste Containerworkloads enthalten, umfassen sie auch Code-first-, Low-Code- und Infrastrukturtools speziell für Azure, wobei der Schwerpunkt auf der Verbindung und Integration zwischen Azure-Diensten liegt.
Vereinfachtes Hosting
Vereinfachte Hostinglösungen werden vollständig von Azure verwaltet. Sie sind für die Funktionalität wie Code- und Umgebungskonfiguration verantwortlich. Azure verwaltet die zugrunde liegende Laufzeit und Infrastruktur, einschließlich Updates und Patches. Vereinfachtes Hosting ist der Azure-native Ansatz.
- Logic Apps: Erstellen und Ausführen automatisierter Workflows mit wenig bis gar keinem Code.
- Power Automate: Verwenden Sie diese Anwendung, wenn Sie Geschäftsprozesse und Workflows automatisieren müssen.
- Azure Static Web Apps: Bereitstellen generierter statischer Web-Apps wie Blazor und React.
- Azure Functions Apps: serverloses Code- oder Containerhosting.
Ausgewogenes Hosting
Ausgewogene Hostinglösungen bringen die Notwendigkeit der Einfachheit mit der Notwendigkeit der Kontrolle in Einklang. Sie sind für die Funktionalität wie Code- und Umgebungskonfiguration verantwortlich. Azure verwaltet die zugrunde liegende Laufzeit und Infrastruktur, einschließlich Updates und Patches. Sie können auch Ihren eigenen Container zum Dienst mitbringen. Ausgewogenes Hosting ist sowohl Azure-nativ als auch cloudnativ.
- Azure App Service: Full-Service-Webhosting, einschließlich Sprachlaufzeiten, Containern und Automatisierungsworkloads.
- Azure Container Apps: Serverloses Containerhosting.
- Azure Spring Apps: Migrieren von Spring Boot-Anwendungen zur Azure-Cloud.
Kontrolliertes Hosting
Kontrollierte Hostinglösungen bieten Ihnen die vollständige Kontrolle über die zugrunde liegende Infrastruktur. Sie sind für Updates und Patches sowie ihre Code-, Ressourcen- und Umgebungskonfiguration verantwortlich. Kontrolliertes Hosting ist der cloudnative Ansatz.
- Azure Virtual Machines: Vollständige Kontrolle der virtuellen Computer.
- Azure Kubernetes Service: Vollständige Kontrolle über Kubernetes-Cluster.
Quellcodehosting
Entwickler, die in Azure einsteigen und eine neue Entwicklung beginnen möchten, verwenden das folgende Diagramm, um die vorgeschlagene Hostinglösung zu finden.
No-Code oder Low-Code
Azure unterstützt No-Code-Lösungen, die Teil des Azure-Cloud-Ansatzes sind.
- Logic Apps: Verwenden Sie einen visuellen Designer mit vordefinierten Vorgängen, um einen Workflow für Ihre Unternehmens- und Geschäftsszenarien zu entwickeln.
- Power Automate wie Power Apps: Verwenden Sie diese Möglichkeit, um Geschäftsprozesse und Workflows innerhalb der Microsoft 365-Organisation zu automatisieren.
Code im Vergleich zum Container
Low-Code-Hostinglösungen sind so konzipiert, dass Sie Ihre Codefunktionalität bereitstellen können, ohne die Anwendungsinfrastruktur verwalten zu müssen.
- Azure Static Web Apps: Bereitstellen generierter statischer Web-Apps.
- Azure Functions: Bereitstellen von Codefunktionen in unterstützten Sprachen, ohne die Anwendungsinfrastruktur verwalten zu müssen.
Code-first-Hostinglösungen sind zum Hosten von Code konzipiert. Sie können Ihren Code direkt in der Hostinglösung bereitstellen.
- Azure App Service: Full-Service-Webhosting.
- Azure Spring Apps: Migrieren von Spring Boot-Anwendungen
Container-first-Hostinglösungen sind für das Hosten von Containern konzipiert. Der Dienst stellt containerspezifische Konfigurationsoptionen und -features bereit. Sie sind für die im Container verwendete Rechenleistung verantwortlich. Die Dienstleistungen, die Container hosten, gehen von der verwalteten Kontrolle in die volle Verantwortung über, sodass Sie nur so viel Containerverwaltung übernehmen, wie Sie möchten.
Kubernetes-zentriertes Orchestrierungshosting umfasst:
Dienst | Fokus | Zweck |
---|---|---|
Azure Kubernetes Service (AKS) | Cloudnativ | Wird für Kubernetes-Cluster mit einem deklarativen Ansatz mit Konfigurationsdateien und externen Artefakten verwendet. |
Azure Service Fabric | Azure-nativ | Verwenden Sie einen imperativen Ansatz zum Bereitstellen von Microservices auf Computerclustern. Es bietet ein Programmiermodell, das es Entwicklern ermöglicht, Code zu schreiben, der den gewünschten Zustand des Systems beschreibt, und die Service-Fabric-Laufzeit sorgt dafür, dass das System diesem Zustand entspricht. |
Vorkonfiguriertes Containerhosting bedeutet, dass die Orchestrierungsoptionen für Sie vorkonfiguriert sind. Ihre Fähigkeit zur Kommunikation zwischen Containern oder Containerclustern erfordert möglicherweise einen zusätzlichen Dienst wie Dapr.
Dienst | Zweck |
---|---|
Azure App Service | Full-Service-Webhosting |
Azure Spring Apps | Spring Boot-Anwendungen |
Azure Container Apps | Serverloses Containerhosting |
Azure Container Instances | einfaches, einzelnes Containerhosting |
Azure stellt eine Containerregistrierung zum Speichern und Verwalten Ihrer Containerimages bereit, oder Sie können eine Containerregistrierung eines Drittanbieters verwenden.
Dienst | Zweck |
---|---|
Azure Container Registry | Verwenden Sie diese Methode, wenn Sie eigene Containerimages erstellen und hosten, die mit Quellcode-Commits und Basisimageupdates ausgelöst werden können. |
Serverlos
Serverlose Hostinglösungen sind so konzipiert, dass zustandsloser Code ausgeführt wird, der eine verbrauchsbasierte Preisstufe enthält, die bei Verwendung auf Null skaliert wird.
Dienst | Zweck |
---|---|
Azure Container Apps | Containerhosting. |
Azure-Funktionen | Code oder Containerhosting. |
Microservices
Microservices-Hostinglösungen sind so konzipiert, dass kleine, unabhängige Dienste ausgeführt werden, die zusammenarbeiten, um eine größere Anwendung zu bilden. Microservices werden in der Regel als Container bereitgestellt.
Dienst | Zweck |
---|---|
Azure Container Apps | Wird für serverlose containerisierte Microservices verwendet. |
Azure-Funktionen | Wird für serverlosen Code oder containerisierte Microservices verwendet. |
Cloud-Edge
Cloud-Edge ist ein Begriff, der angibt, ob der Clouddienst zum Nutzen des Benutzers (Client) oder der Anwendung (Server) positioniert ist.
Client-Computing
Client-Computing ist eine Berechnung, die auf dem Client außerhalb der Azure-Cloud ausgeführt wird. Client-Computing wird in der Regel für das clientseitige Rendering und die clientseitige Verarbeitung verwendet, z. B. für browserbasierte oder mobile Anwendungen.
Dienst | Zweck |
---|---|
Azure Static Web Apps | Wird für statische Web-Apps verwendet, die clientseitiges Rendering wie React, Angular, Svelte, Vue und Blazor verwenden. |
Clientverfügbarkeit
Dienst | Zweck |
---|---|
Azure Front Door | Wird für alle in das Internet zugänglichen Anwendungen verwendet, um ein globales zwischengespeichertes und sicheres Netzwerk für Ihre statischen und dynamischen Ressourcen bereitzustellen, einschließlich DDoS-Schutz, End-to-End-TLS-Verschlüsselung, Anwendungsfirewalls und Geofilterung. |
Server-Computing
Server-Computing-Assets sind Dateien, die vom Server verarbeitet werden, bevor sie dem Client bereitgestellt werden. Dynamische Ressourcen werden mithilfe des Back-End-Server-Computing entwickelt, optional in andere Azure-Dienste integriert.
Dienst | Zweck |
---|---|
Azure App Service | Verwenden Sie diesen Dienst für standardmäßiges Webhosting. Dies unterstützt eine Vielzahl von Funktionen-API-Endpunkten, Full-Stack-Anwendungen und Hintergrundaufgaben. Dieser Dienst enthält viele Programmiersprachenlaufzeiten sowie die Möglichkeit, Ihren eigenen Stapel, Ihre Sprache oder Workload aus einem Container bereitzustellen. |
Azure-Funktionen | Verwenden Sie diesen Dienst, um Ihren eigenen Code in den unterstützten Sprachen für HTTP-Endpunkte oder ereignisbasierte Trigger von Azure-Diensten bereitzustellen. |
Azure Spring Apps | Verwenden Sie diese Option, um Spring Boot-Anwendungen ohne Codeänderungen bereitzustellen. |
Azure Container Apps | Verwenden Sie diese Option, um verwaltete Microservices und containerisierte Anwendungen auf einer serverlosen Plattform zu hosten. |
Azure Container Instances | Verwenden Sie diese Option für einfache Containerszenarien, die keine Containerorchestrierung benötigen. |
Azure Kubernetes Service (AKS) | Verwenden Sie diesen Dienst, wenn Sie einen Kubernetes-Cluster benötigen. Die Kontrollebene zum Verwalten des Clusters wird erstellt und für Sie ohne zusätzliche Kosten bereitgestellt. |
Serverendpunktverwaltung
Die Serverendpunktverwaltung ist die Möglichkeit, Ihren Serverendpunkt und seine Berechnung über ein Gateway zu verwalten. Dieses Gateway bietet Funktionen wie Versionsverwaltung, Zwischenspeichern, Transformation, API-Richtlinien und Überwachung.
Dienst | Zweck |
---|---|
Azure API Management | Verwenden Sie diesen Dienst, wenn Sie Ihre REST-, OpenAPI- und GraphQL-APIs mit einem API-Gateway in die Produktion überführen, einschließlich Kontingente und Ratenbeschränkungen, Authentifizierung und Autorisierung, Transformation und zwischengespeicherte Antworten. |
Azure Application Gateway | Wird für den regionalen Lastenausgleich (OSI-Schicht 7) verwendet. Sie kann verwendet werden, um Datenverkehr basierend auf URL-Pfad- oder Hostheadern weiterzuleiten und unterstützt SSL-Offloading-, cookiebasierte Sitzungsaffinitäts- und WAF-Funktionen (Web Application Firewall). |
Azure Front Door | Wird für den globalen Lastenausgleich (OSI-Schicht 7) verwendet, um ein globales zwischengespeichertes und sicheres Netzwerk für Ihre statischen und dynamischen Ressourcen bereitzustellen, einschließlich DDoS-Schutz, End-to-End-TLS-Verschlüsselung, Anwendungsfirewalls und Geofilterung. |
Azure Traffic Manager | Wird für die Verteilung von Datenverkehr nach DNS (OSI-Schicht 7) an Ihre öffentlich zugänglichen Anwendungen in den globalen Azure-Regionen verwendet. Traffic Manager verwendet DNS, um die Clientanforderungen auf der Grundlage einer Datenverkehrsrouting-Methode an den passenden Dienstendpunkt weiterzuleiten. Es unterstützt verschiedene Datenverkehrsroutingmethoden wie Priorität, Leistung und geografisches Routing. Es ist ideal für die Verwaltung des Datenverkehrs über mehrere Regionen oder Rechenzentren hinweg. |
Automatisiertes Computing
Das automatisierte Computing wird von einem Ereignis wie einem zeitgesteuerten Zeitplan oder einem anderen Azure-Dienst automatisiert und wird in der Regel für Hintergrundverarbeitung, Batchverarbeitung oder lange ausgeführte Prozesse verwendet.
Dienst | Zweck |
---|---|
Power Automate | Verwenden Sie diese Vorgehensweise, wenn Sie Geschäftsprozesse und Workflows automatisieren müssen. |
Azure-Funktionen | Verwenden Sie diese Vorgehensweise, wenn Sie Code basierend auf einem zeitlich festgelegten Zeitplan oder als Reaktion auf Ereignisse in anderen Azure-Diensten ausführen müssen. |
Containerdienste (Azure Container Instances, Azure Kubernetes Service, Azure Container Apps) | Verwendung für automatisierbare Standardworkloads |
Azure Batch | Verwenden Sie diese Anwendung, wenn Sie eine leistungsstarke Automatisierung benötigen. |
Hybrid Cloud
Eine Hybrid-Cloud ist eine Computerumgebung, die die lokalen privaten Clouddienste eines Unternehmens und die öffentliche Cloud eines Drittanbieters zu einer einzigen, flexiblen Infrastruktur für die Ausführung der Anwendungen und Workloads des Unternehmens verbindet.
Dienst | Zweck |
---|---|
Azure Arc | Verwenden Sie, wenn Sie Ihre gesamte Umgebung verwalten müssen, sowohl Cloud- als auch lokale Ressourcen, einschließlich Sicherheit, Governance, Bestand und Verwaltung. |
Wenn Sie ihre eigene Infrastruktur nicht verwalten müssen, verwenden Sie Azure Stack HCI, um virtuelle Computer lokal auszuführen.
High Performance Computing
High-Performance Computing (HPC) ist die Verwendung paralleler Verarbeitung für die effiziente, zuverlässige und schnelle Ausführung erweiterter Anwendungsprogramme. Der Begriff gilt insbesondere für Systeme, die über einem Teraflop oder 10^12 Gleitkommaoperationen pro Sekunde funktionieren.
Dienst | Zweck |
---|---|
Azure Batch | Azure Batch erstellt und verwaltet einen Pool mit Computeknoten (virtuelle Computer), installiert die Anwendungen, die Sie ausführen möchten, und plant Aufträge für die Ausführung auf den Knoten. Entwickler können Batch als Plattformdienst verwenden, um SaaS-Anwendungen oder Client-Apps zu erstellen, für die große Mengen von Ausführungen erforderlich sind. |
Azure BareMetal-Instanzen | Verwenden Sie diese Funktion, wenn Sie in einer nicht virtualisierten Umgebung mit Zugriff auf die Stammebene auf das Betriebssystem, den Speicher und das Netzwerk ausgeführt werden müssen. |
Azure Quantum-Arbeitsbereich | Verwenden Sie diese Anwendung, wenn Sie Quantenalgorithmen entwickeln und experimentieren müssen. |
Microsoft Genomics | Verwendung für ISO-zertifizierte, HIPAA-kompatible genomische Verarbeitung. |
Erfahren Sie mehr über High Performance Computing in Azure.
Ereignisbasiertes Computing
Das ereignisbasierte Computing ist eine Berechnung, die von einem Ereignis wie einem zeitgesteuerten Zeitplan oder einem anderen Azure-Dienst ausgelöst wird. Ereignisbasiertes Computing wird in der Regel für Hintergrundverarbeitung, Batchverarbeitung oder lange ausgeführte Prozesse verwendet.
Dienst | Zweck |
---|---|
Power Virtual Agents | Verwenden Sie diese Anwendung, wenn Sie Chatbots mit einer Code-Schnittstelle erstellen müssen. |
Azure-Funktionen | Verwenden Sie diese Vorgehensweise, wenn Sie Code basierend auf einem zeitlich festgelegten Zeitplan oder als Reaktion auf Ereignisse in anderen Azure-Diensten ausführen müssen. |
Azure Service Bus-Messaging | Verwenden Sie diese Funktion, wenn Sie Anwendungen und Dienste entkoppeln müssen. |
CI/CD-Computing
CI/CD-Computing ist eine Berechnung, die zum Erstellen und Bereitstellen Ihrer Anwendung verwendet wird.
Dienst | Beschreibung |
---|---|
Azure DevOps | Verwenden Sie Azure DevOps für eine enge Integration in die Azure-Cloud, einschließlich Authentifizierung und Autorisierung für die gehosteten Agents, die Ihre Anwendung erstellen und bereitstellen. |
GitHub-Aktionen | Verwenden Sie GitHub Actions, um Ihre GitHub-Repository-Anwendungen zu erstellen und bereitzustellen. Verwenden Sie die Azure CLI, um sicher auf Azure innerhalb der Aktion zuzugreifen. |
Dokumentation zu virtuellen Computern | Wenn Sie ein anderes CI/CD-System verwenden, können Sie Azure Virtual Machines verwenden, um Ihr CI/CD-System zu hosten. |