Einleitung
Ich habe selbst schon öfters mit der Azure Cloud gearbeitet. Ich hatte auch im Groben einen Überblick darüber, was nebst den von mir bisher verwendeten Diensten sonst noch alles angeboten wird. Aber die Details waren verwirrend; schon nur weil viele der Namen nicht sehr aussagekräftig sind und teils erheblich überlappen und daher Potential zur Verwechslung bieten.
In Diskussionen mit Arbeitskolleg*innen stellte ich fest, dass es anderen genau so geht. In einer dieser Diskussionen kam dann die Idee auf, eine Übersicht mit Zusammenfassungen zu allen angebotenen Azure Diensten zu erstellen. Diese sollte für IT-affine Nicht-Spezialisten, und vor allem Nicht-Programmierer, zugänglich sein. Der Fokus sollte auf dem WAS statt dem WIE liegen.
Also setzte ich mich hin und wühlte mich durch Unmengen an Marketing-Material und Worthülsen. Zu jedem Dienst notierte ich mir ein paar Sätze. Ich orientierte mich dabei an der von Microsoft verwendeten Gruppierungen der Dienste. Allerdings tauchen viele Dienste in den Dokumenten von Microsoft unter mehreren Gruppen auf. Einerseits macht das Sinn, weil die Dienste in verschiedenen Kontexten genutzt werden können. Aber gleichzeitig leidet darunter die Übersichtlichkeit. Daher wählte ich jeweils die Gruppe, mit der ein Dienst meiner Meinung nach am stärksten verbunden ist. Dem Leser sollte es offensichtlich sein, in welchen weiteren Zusammenhängen er einen Dienst auch noch sinnvoll verwenden kann. Aus dieser Arbeit entstand dann ein Artikel auf meinen privaten Blog.
In diesem Beitrag möchte ich diese Übersicht nochmals konzentrierter vorstellen. Ich werde aber den Schnitt etwas anders anlegen und beschreiben, was die Azure Cloud kann. Dazu erwähne ich dann jeweils die Dienste, die dafür genutzt werden können. Auch lasse ich Dienste weg, die bald eingestellt werden. Wo es auf unserem Blog vertiefende Beiträge gibt, verlinke ich zu diesen.
Übersicht
Zuerst wende ich mich der Bereitstellung von Infrastruktur zu. Weiters betrachte ich den Betrieb von Anwendungen, Sicherheit und das Speichern von Daten. Darauf geht es um die Entwicklung von Anwendungen, gefolgt von Diensten zur Verbarbeitung von Daten und deren Analysen und für Künstliche Intelligenz und Machine-Learning. Es folgen Dienste und Frameworks für Mixed Reality Anwendungen und die Bereitstellung und Verarbeitung von Multimedia Inhalten. Abschliessend behandle ich die Themen rund um die Verwaltung, Automatisierung und Governance, den Betrieb von Hybrid und Multicloud Lösungen und das Anbieten eigener Dienste in der Azure Cloud.
Infrastruktur
Unter diesem Kapitel habe ich Kategorien von Diensten zusammengefasst, welche eher der Infrastruktur zuzuordnen sind.
Rechnerinfrastruktur
Wie in fast jeder anderen Cloud können Kunden auch in Azure Rechner bzw. Server als Dienst mieten. Dies kann notwendig oder von Vorteil sein, wenn sonst kein Angebot die funktionalen oder nicht-funktionalen Anforderungen erfüllt. Diese Dienste bieten sich aber zur Migration von Legacy-Anwendungen in die Cloud an. In den meisten Fällen übernimmt der Kunde die Verantwortung für Updates und Wartung des Betriebssystems und der darauf betriebenen Software.
- CycleCloud: Verwaltete Cluster für Hochleistungsrechnen (HPC).
- Dedicated Host: Dedizierte physische Server zum Hosten von VMs.
- Microsoft Azure Virtual Machine Scale Sets: Verwaltung und Skalierung grosser Anzahl virtueller Maschinen.
- Virtuelle Citrix-Apps und -Desktops für Azure: App- und Desktop-Virtualisierung von Citrix.
- Virtuelle Computer: Infrastructure as a Service (IaaS).
- VMware Horizon Cloud in Microsoft Azure: Dienst zur App- und Desktop-Virtualisierung von VMware.
- VMWare-Lösungen in Azure: Migration von VMWare Lösungen aus dem on-premise Rechenzentrum in die Cloud.
- Windows Virtual Desktop: Virtuelle Windows 10 Desktops für Remote-Arbeiten mit Multisession-Fähigkeit.
Netzwerk
Auch dieser Bereich ist aufgrund seiner Diversität und Komplexität sehr gross und bietet viele Dienste. Da gibt es Dienste zur Erstellung und Verwaltung von virtuellen Netzwerken zwischen Cloud-Ressourcen wie virtuellen Maschinen, Applikationen, Containern, etc. Für Webapplikationen gibt es Reverse Proxies, Firewalls und Load-Balancer.
Ein Dienst kombiniert das Content Delivery Network (CDN) von Azure mit Sicherheitsdiensten wie Web-Application Firewall, SSL-Offloading und Schutz vor DDoS Angriffen.
Weiter können private Tunnel eingerichtet werden, um on-premise Netzwerke und Ressourcen mit denen in der Cloud zu verbinden. Um z.B. Filialen miteinander zu verbinden, kann der Kunde virtuelle WANs anlegen. Der Netzwerkverkehr kann er dabei überwachen und steuern. Die verwendeten Ressourcen kann er dabei bedarfsgesteuert skalieren. Informationen zum Routing können automatisch zwischen on-premise und Cloud-Netzwerken ausgetauscht werden.
Mit den Diensten für die Satellitenkommunikation können entlegene Orte ohne reguläre Internetabdeckung in ein Netzwerk eingebunden werden. Betreiber von eigenen Satelliten können mit diesen Diensten auch deren Einsatz, die Erdstationen etc. planen und als eigene Dienste auf Azure anbieten.
Firewalls
- Firewall: Automatisch skalierende Stateful Firewall für die virtuellen Cloud-Netzwerke.
- Web Application Firewall: Schützt Web-Applikationen vor den gängigsten Sicherheitsrisiken.
- Application Gateway: Applikations-Gateway mit Lastenausgleich, Routing, SSL-Offloading und Zertifikats-Verwaltung und Verfügbarkeits-SLA.
- Firewall Manager: Verwaltungstool für Netzwerk-Policies und Routing-Management.
Lastausgleich
- Load Balancer: Lastenausgleich und automatische Skalierung der Ressourcen.
- Traffic Manager: DNS-basierter Lastausgleich und automatisches Failover.
DNS
- DNS: Domain-Name-Service.
Netzwerke und WAN’s
- Virtual Network: Virtuelle Netzwerkkonfiguration für Cloud-Ressourcen und Hybridinfrastruktur.
- Private Link: Gesicherte Verbindung von Azure Diensten mit on-premise und Peer-Netzwerken.
- Route Server: Austausch von Routinginformationen zwischen eigener Netzwerkinfrastruktur und virtuellen Cloud-Netzwerken.
- Virtual WAN: Einheitliche, globale Konnektivität und Sicherheit.
Überwachung, Analyse und Planung
- Internet Analyzer: Erlaubt das Testen von Änderungen an der Netzwerkinfrastruktur bezüglich der Leistung für Kunden.
- Network Watcher: Netzwerküberwachung und Paketflussanalyse.
VPN, Remote-Desktop und SSH
- Bastion: Privater, sicherer Zugriff auf Cloud-VMs mit RDP und SSH-Protokoll.
- VPN Gateway: IPSec VPN für Site-to-Site-Verbindungen und der Anbindung lokaler Infrastruktur.
Weiteres
- Front Door: Content Delivery Network (CDN) mit Web-Applikations-Firewall und Schutz vor DDoS und Bot-Netzwerken.
- Orbital: Planung von Satellitenverbindungen und Datentransfer mit der Cloud über eine Satellitenverbindung.
Identität
Mit Azure Active Directory bietet Microsoft einen sehr umfangreichen Dienst zur Authentifizierung und Autorisierung. Die modernsten Protokolle wie OpenID Connect, OAuth 2.0 und Multifaktor-Authentifizierung (MFA) werden unterstützt. Zusätzlich stellt Microsoft Domänenkontroller zur Verwaltung von virtuellen Maschinen in der Azure Cloud bereit. Auch können Zugriffe über die Grenzen der Organisation hinweg an externe Personen, z.B. Kunden oder Partner, gewährt und verwaltet werden.
- Azure Active Directory Domain Services: Verwalteter Domänen-Controller.
- Azure Active Directory: Verwaltete Identitätsplattform von Microsoft für Single-Sign-On und Multifactor-Authentifizierung.
- Externe Azure Active Directory Identitäten: Zugriffsverwaltung über Organisationsgrenzen hinweg.
Betrieb von Anwendungen
Hier betrachte ich Dienste, welche dem Betrieb eigener Anwendungen dienen.
Hosting von Applikationen
Diese Dienste erlauben dem Kunden den Betrieb von Anwendungen auf von Microsoft verwalteter Infrastruktur. D.h. der Kunde ist im Gegensatz zu den zuvor unter Infrastruktur erwähnten Diensten, nicht für die Updates und Wartung des Betriebssystems verantwortlich.
- Cloud Services: Plattform as a Service (PaaS).
- Mobile Apps: Backends für Mobile Apps mit Push-Nachrichten und AD-Anmeldung.
- Spring Cloud: VMWare Spring Cloud zur Erstellung von Microservice-Architekturen mit Spring Boot und .NET Core Steeltoe.
- SQL Server auf VM: Von Microsoft verwaltete SQL Server Instanz auf dedizierter Azure Virtual Machine.
Microservices und Container
Für sogenannte cloud native Anwendungen, Microservice und Service-orientierte Architekturen bieten sich mehrere Dienste, mit teils deutlich überlappender Funktionalität an. Dadurch leidet einerseits die Übersichtlichkeit, andererseits kann man sich so die am besten passende Lösung auswählen. Einige der Dienste erlauben es auch, eher traditionelle Anwendungen in eine Microservice- oder Cloud-Native-Landschaft zu überführen.
- Container Instances: Container-Orchestrierungs-Plattform.
- Container Registry: Geo-replizierte Registrierung (Repository) für Container Images und Kubernetes Helm Charts.
- Kubernetes Service: Container-Orchestrierungs-Plattform.
- Red Hat OpenShift: Container-Orchestrierungslösung von Red Hat.
- Service Fabric: Betrieb von hochverfügbaren, verteilten Apps, Microservices und Containern.
- Web-App für Container: Bereitstellung von Web-Applikationen mit Containern mittels App Service.
Stapelverarbeitung
Viele Applikationen laufen als Stapelverarbeitung. So z.B. Lohnabrechnungen, wissenschaftliche Simulationen oder das Berechnen von Portfoliorisiken. Oftmals benötigen diese Anwendungen viel Rechnerleistung, welche dann zwischen den Durchläufen brach liegt und Kosten verursacht. Mit diesem Dienst zur Stapelverarbeitung können die Ressourcen zusätzlich automatisch skaliert werden.
- Batch: Stapelverarbeitung auf skalierbaren Ressourcen.
Sicherheit
Hier bietet Microsoft eine Reihe von Diensten an welche von sehr spezialisiert bis hin zur eierlegenden Wollmilchsau gehen. Es gibt Abwehrmechanismen gegen DDoS Attacken, hardwarebasierte Sicherheitsmodule, Dienste zum Schutz von Informationen, Speicher für Passwörter, Zertifikate und ähnliches, aber auch KI-gestützte Analysewerkzeuge.
Schliesslich gibt es eine zentrale Übersicht über die Sicherheit von Azure Diensten und hybriden Ressourcen, welche auch Berichte für Compliance-Nachweise erstellt. Microsoft bietet auch einen Dienst zur Sicherstellung der Integrität und Vertrauenswürdigkeit von Ressourcen ausserhalb der Cloud an, zum Beispiel von Edge Geräten.
- DDoS Protection: Schutz vor DDoS-Attacken.
- Dedicated HSM: Privates Hardware-Sicherheits-Modul für Cloud-Ressourcen.
- Defender: Schutz (hybrider) Cloud-Infrastruktur.
- Information Protection: Sicherstellung der Datensicherheit.
- Key Vault: Speicher für kryptographische Schlüssel und andere Geheimnisse.
- Microsoft Azure Attestation: Remoteüberprüfung der Integrität und Vertrauenswürdigkeit einer Plattform und der dort ausgeführten Software.
- Security Center: Übersicht über die Sicherheit von Azure- und Hybrid-Cloud-Ressourcen.
- Sentinel: KI-gestützte Sicherheitsanalysen, Bedrohungserkennung und Reaktion.
Speicher
Datenbanken
Eine der wohl wichtigsten Komponenten für eine Vielzahl von Applikationen ist die Datenbank. Entsprechend gross ist das Angebot, welches verschiedene Formen des Microsoft-eigenen SQL Server, aber auch verschiedene open-source SQL Datenbanken und sogenannte No-SQL Datenbanken, wie Key-Value-Stores, Dokumenten- und Graphendatenbanken, umfasst. Hans Peter Bornhauser hat speziell zu Cosmos DB und SQL Datenspeicher detaillierte Beiträge verfasst.
Relationale Datenbanken
- SQL Datenbank: Vollständig verwaltete MS SQL Datenbank.
- SQL Edge: Datenbankengine, die auf Endgeräten (Edge), on-premise und in der Cloud betrieben werden kann.
- SQL Managed Instance: Vollständig verwaltete MS SQL Server Instanz.
- Database for MariaDB: Verwaltete Community-Edition von MariaDB.
- Database for MySQL: Verwaltete MySQL Datenbank.
- Database for PostgreSQL: Verwaltete PostgreSQL Datenbank.
Cosmos DB
Cosmos DB ist eine Sammlung hochverfügbarer, durch SLA’s geschützter und geo-replizierter SQL- und NoSQL-Datenbank-Diensten.
- Relational: Core-API (SQL)
- Spaltenorientiert: Cassandra-API
- Dokumentenbasiert: MongoDB-API
- Graph: Gremlin-API
- Tabellen: Tabellen-API
No-SQL Datenbanken
- Cache for Redis: Verwaltete Caching Lösung auf Basis der In-Memory Datenbank Redis.
- Managed Storage für Apache Cassandra: Verwaltete Apache Cassandra-Instanz.
- Table Storage: Schlüssel-Wert-Tabellen für teilweise strukturierte Daten.
Gesundheitsdaten
- API für FHIR: Datenverwaltungs- und Austauschlösung für geschützte Gesundheitsdaten.
Andere Speicher
Um Daten in unstrukturierten, z.B. in Dateisystem-ähnlichen Strukturen, zu speichern gibt es für unterschiedliche Szenarien spezialisierte Dienste. Kunden können so z.B. traditionelle Netzwerklaufwerke in die Cloud migrieren. In sogenannten Blob-Speichern können Anwendungen Daten ablegen, für welche sich eine Datenbank schlecht eignet (z.B. Benutzerbilder oder Dokumentenuploads). Es können aber auch Archive und Backups gespeichert werden. Für wissenschaftliche Simulationen stehen speziell schnelle Speicherdienste bereit.
Sollen Daten sicher mit Drittparteien geteilt werden, stellt auch Microsoft hier einen Dienst bereit.
In seinem Blog Beitrag geht Hans Peter Bornhauser weiter auf Azure Storage ein.
- Archive Storage: Kostengünstiger Archivspeicher für selten benötigte Daten.
- Avere vFXT für Azure: Auslagerung grosser Datei-basierter Datenmengen in die Cloud im HPC-Umfeld.
- Backup: Verwaltung von Backups verschiedener Azure Dienste.
- Blob Storage: Georeplizierter Speicher für grosse Mengen unstrukturierter Daten.
- Data Lake Storage: Hochverfügbarer, geo-replizierter Speicher für unstrukturierte Daten.
- Data Share: Datenfreigabe für andere Organisationen.
- Disk Storage: Disk-Speicher, welcher für die Verwendung mit VMs konzipiert ist.
- Files: Dienst für serverlose Networkshares mit SMB und NFS Protokollen.
- FXT Edge Filer: Optimierungslösung für Hybridspeicher im HPC-Umfeld.
- HPC Cache: Dateizwischenspeicherung von HPC-Daten.
- NetApp Files: Verwalteter NetApp Dienst.
- Queue Storage: Speicherdienst für Message Queueing mit grossen Datenmengen.
- Speicher Explorer: Tool zur Verwaltung aller Azure Speicherressourcen.
- StorSimple: Hybrider Cloud-Speicher zur Konsolidierung von Speicherinfrastruktur und Automation der Dateiverwaltung.
Anwendungsentwicklung
Serverlose Anwendungen
Serverlose Anwendungen sind wohl einen der wichtigsten Innovationen der letzten Jahre im Cloud Bereich. Speziell bezogen auf die Azure Functions kann ich gar nicht genügend hervorheben, wie stark serverlose Architekturen ganze Bereiche der IT transformieren.
Mit Azure Functions können ereignisgesteuerte Funktionen erstellt werden. Diese werden nicht fixen Ressourcen zugewiesen, sondern die Azure Cloud führt sie auf dynamisch zur Verfügung gestellten Ressourcen aus und kann diese so auch nach Bedarf skalieren. Wird die Funktion nicht ausgeführt fallen auch keine Kosten an. Als weiteren Vorteil lassen sich die Funktionen über sogenannte Bindings rein deklarativ an Daten-Quellen und Daten-Senken anbinden, ohne dass der Programmierer die Daten explizit lesen oder schreiben muss. Dadurch fällt viel Code einfach weg. Es stehen sehr viele Ereignisse zur Verfügung, welche die Ausführung einer Funktion veranlassen. Dies können z.B. HTTP-Aufrufe, Mutationen in Datenbanken, Änderungen im Blob Storage oder Nachrichten im Event Grid, IoT Hub, Queue Storage, etc. pp. sein. Mit den Logic Apps können dann z.B. auch einfach höherwertige Workflows mit einem graphischen Editor “zusammengestrickt” werden.
Ich bin fest davon überzeugt, dass die Azure Functions die Zukunft der Anwendungsentwicklung und Unternehmensarchitektur stark beeinflussen und verändern werden.
- Functions: Serverloser Betrieb von ereignisgesteuerten Funktionen.
- Logic Apps: Ausführbare Low-Code Workflows.
API’s
Moderne Applikations-Architekturen und Designs beherzigen oft den API-first Ansatz. Dies erlaubt es auch viel einfacher, Dienste miteinander zu verknüpfen und Automatisierungen zu bauen. So können auch Frontends vom Backend getrennt werden. Das Frontend wird dann nur noch als statische Webseite veröffentlicht. Per REST greift es dann auf eine separate API als Backend zu.
Sogenannte Microservice- und Service-Mesh-Architekturen, obwohl nicht gleich, benötigen ein oder mehrere Gateways. Bidirektionale Kommunikation wird auch immer mehr z.B. für Chats und Benachrichtigungen, zur Anzeige von Live-Daten, etc. benötigt. Für all diese Bedürfnisse bietet Microsoft in der Azure Cloud Dienste.
- API Management: API-Gateway in der Cloud und in Hybrid- und Multicloud-Umgebungen.
- API-Apps: Bereitstellung und Verwaltung von APIs mit App Service.
- App Service: Erstellen und Hosten von Web-Apps, mobilen Backends und REST-APIs auf verwalteter Infrastruktur.
- SignalR Service: Echtzeitkommunikation mit Web-Anwendungen.
- Statische Web-Apps: Entwicklung und Betrieb von statischen Web-Frontends.
Mobile
Die meisten in der Azure Cloud angebotenen Dienste lassen sich selbstverständlich auch im Kontext von Mobile-Apps nutzen, z.B. um deren Backend zu erstellen. Dennoch bietet Microsoft einige speziell auf die Erstellung von Mobile-Applikationen ausgerichtete Dienste an. Diese reichen von Karten- und Navigationsdiensten über Programmier-Bibliotheken und Werkzeugen hin zu Kommunikations-Plattformen, welche es dem Entwickler ermöglichen Video, Chat, SMS und Telefonie in der App zu nutzen.
- Communications Services: Kommunikationsplattform für Telefonie, Video, Chat und SMS.
- Maps: Räumliche Analysen und Karten für Web- und Mobil-Apps mit Daten von TomTom.
- Visual Studio App Center: Tools und Services für den ganzen Lebenszyklus von Apps für Android, iOS, MacOS und Windows.
- Xamarin: .NET Entwicklungsplattform für native Android und iOS Apps.
Integration, Messaging, Events
Microsoft bietet mehrere Dienste an, mit denen Applikationen untereinander mittels Ereignissen und Nachrichten kommunizieren können. Je nach Charakteristik eignen sich diese eher für seltene grosse und komplexe Datenpakete, oder aber für kleine Ereignisse in sehr hoher Frequenz. Diese können genutzt werden, um Applikationen in kleine, lose gekoppelte Teile zu zerlegen oder bestehende Applikationen miteinander zu integrieren. Die Ereignisse oder Nachrichten können aber z.B. auch von IoT Geräten erzeugt werden.
- Event Grid: Event Bus, für die Erstellung von ereignisgesteuerten und serverlosen Anwendungen.
- Event Hubs: Event Streaming Plattform für Datenerfassung und Verarbeitung in Echtzeit.
- Queue Storage: Speicherdienst für Message Queueing mit grossen Datenmengen.
- Service Bus: Messaging as a Service (MaaS).
Internet of Things (IoT)
Unter der Flagge IoT bietet Microsoft sehr unterschiedliche Dienste an. Diese reichen von der Erstellung, Auslieferung und Wartung der Software auf IoT Geräten über die Verwaltung ebendieser Geräte bis hin zur Verarbeitung der erzeugten Daten. Microsoft bietet sogar ein eigenes real-time Betriebssystem für Mikrokontroller an. Natürlich können diese IoT und Edge Geräte auch überwacht werden. Um die Geräte und die Kommunikation abzusichern bietet Microsoft auch mehrere Dienstleistungen an.
Weiter können sogenannte Digital Twins erstellt werden mit welchen ganze Systeme in Echtzeit simuliert werden können. So kann der Kunde z.B. sonst nicht messbare Grössen erfassen, die Effizienz von Anlagen maximieren oder deren Wartung optimieren.
Letztlich können auch AI/Machine-Learning-Anwendungen auf IoT Geräten eingesetzt und mit den entsprechenden Diensten in der Cloud integriert werden.
- Defender for IoT: Ressourcenermittlung, Verwaltung von Sicherheitsrisiken und Bedrohungserkennung für IoT und OT Geräte.
- Digital Twins: Erstellung digitaler Modelle von Maschinen und Anlagen.
- IoT Central: Erstellung von IoT Anwendungen. Verbindung, Verwaltung, Konfiguration und Aktualisierung von IoT Geräten.
- IoT Edge: Bereitstellung von containerisierten Anwendungen in Edge Geräten.
- IoT Hub: IoT Backend für Daten-Transfer, Geräteupdates und Verbinden mit serverloser Logik oder Event Grid.
- IoT Solution Accelerators: Vorbereitete, weiterentwickelbare Lösungen für gängige IoT Probleme.
- Percept: Plattform für die KI/ML-Entwicklung auf Edge-Geräten.
- RTOS: Entwicklungssuite mit kleinem, leistungsfähigem Echtzeitbetriebssystem für 32-Bit-Mikrokontroller.
- Sphere: IoT-Sicherheitslösung.
- Time Series Insight: Überwachung, Analyse und Visualisierung von industriellen IoT Daten.
- Windows 10 IoT Services: Windows 10 Core Betriebssystem für IoT Geräte mit langer Support-Dauer.
Entwicklerwerkzeuge und DevOps
Für Entwickler bietet Microsoft in Azure einige Dienste an. Einerseits für das agile Projektmanagement, Versionskontrolle und Build Server für Continuous Integration und Deployment. Andererseits auch Dienste, um Softwarepakete für .NET, NPM, und Python zu veröffentlichen oder im Team zu teilen. Weiter gibt es Dienste zur Bereitstellung von standardisierten Entwicklungs- und Testumgebungen. Manuelle und explorative Tests lassen sich planen und protokollieren. All diese Dienste werden in dem Azure DevOps Portal zusammengefasst.
Für Schulungen, Kurse, Hackathons, oder ähnliches lassen sich bedarfsgesteuert vorkonfigurierte virtuelle Maschinen bereitstellen.
Microsoft stellt SDK’s für eine grosse Anzahl Programmiersprache und Kommandozeilen-Tools für Scripting bereit. Damit können Applikationen in Azure Dienste eingebunden und die Azure Ressourcen programmgesteuert verwalten werden. So lässt sich das Infrastructure-as-Code Paradigma umsetzen.
Um die Anwendungskonfiguration zu vereinfachen bietet Azure einen Dienst, mit dem die Parameter zentral verwaltet werden können.
- App Configuration: Speicherung und Bereitstellung von Applikationsparametern.
- Artifacts: Software-Pakete für Maven, NPM, NuGet und Python erstellen und hosten.
- Boards: Kanban/SCRUM Boards für Team-übergreifendes Arbeiten.
- DevTest Labs: Entwicklungs- und Testumgebungen als Infrastruktur bereitstellen und verwalten.
- Lab Services: Bedarfgesteuertes Bereitstellen von VMs als Remote-Desktops.
- Pipelines: Continuous Integration / Continuous Delivery (CI/CD) pipelines.
- Repos: Private und öffentliche Git und TFVC (Team-Foundation Version Control) Repositories.
- SDKs: Bibliotheken und Kommandozeilentools um die Azure Cloud programmgesteuert zu Verwalten und zu integrieren.
- Test Plans: Tool für geplante manuelle und explorative Tests.
Daten und Analysen
Hier habe ich Themen und Dienste zusammengefasst, welche mit der Verarbeitung, Analyse und Verwaltung von Daten in Verbindung stehen. Viel mehr Details zu Datenanalysen in der Azure Cloud gibt der Blog Beitrag von Hans Peter Bornhauser.
Big Data Analysen
Microsoft Azure bietet mehrere Dienste zur Verarbeitung von grossen Datenmengen, welche z.B. aus SQL Datenbanken, aber auch unstrukturierten Dateien bestehen können. Microsoft setzt hier auf bekannte Open-Source Technologien wie Apache Spark, Apache Hadoop, Apache HBase, R und Python.
- Data Factory: Serverlose Daten-Integration (ETL).
- Data Lake Analytics: Big-Data Analyseplattform.
- Databricks: Apache Spark as a Service für Datenanalysen und AI.
- Daten-Explorer: Datenanalyse aus z.B. Anwendungen, IoT, Websites.
- HDInsight: Verwaltete Cluster mit Apache Spark, Apache Hadoop, Apache HBase, Apache Kafka und anderen.
- Microsoft Graph Data Connect: Import grosser Mengen Microsoft 365 Daten nach Data Factory.
- R-Server for HDInsight: Verwalteter Server mit R für HDInsight.
- Synapse Analytics: Datawarehouse mit Apache Spark für Datenanalyse.
Daten-Governance und Verwaltung
Heute sammeln Unternehmen immer mehr Daten. Gerade grosse Organisationen müssen ihre Daten einerseits gut auffindbar, und damit nutzbar machen. Andererseits wollen sie diese aber auch vor unerlaubten Zugriffen schützen.
- Data Catalog: Metadatenkatalog für Daten.
- Pureview: Vereinheitlichte Governance von lokalen und Cloud-Daten.
Datenstrom-Verarbeitung
Mit diesen Diensten können Daten on-the-fly transformiert und analysiert werden. Beispiele dafür könnten prädiktive Wartungstools sein, welche Maschinendaten laufend analysieren um z.B. Anomalien zu entdecken. Diese Analysen können auch direkt auf Geräten ausserhalb der Cloud, z.B. auf Steuerungen von Maschinen, ausgeführt werden.
- Stream Analytics: Serverlose Echtzeitanalyse von Datenströmen.
Log-Daten Analyse
Grosse Applikationen generieren Unmengen an Log-Daten. Diese Logs können unmöglich mehr einzeln gelesen werden. Daher müssen sie mit spezialisierten Tools statistisch analysiert werden.
- Log Analytics: Analyse von Log Daten aus Azure Monitor.
Business Intelligence
In der Azure Cloud gibt es Dienste und Werkzeuge um die eigenen Geschäftsdaten zu analysieren. Das self-service Analysetool kann aber auch unter eigenem Namen (d.h. als white-label Produkt) in eigene Produkte eingebaut werden.
- Analysis Services: BI-Analyse ohne Infrastruktur.
- Power BI Embedded: White-Label Power BI Komponenten.
AI und Machine-Learning
In den letzten Jahren ist das Feld von AI und maschinellem Lernen förmlich explodiert. Und so hat auch die Azure Cloud ein sehr grosses Angebot an Diensten zu künstlicher Intelligenz und maschinellem Lernen.
Microsoft bietet hier sowohl fix fertige Dienste “aus der Konserve” an, als auch Unterstützung für den gesamten Lebenszyklus eigener Modelle und Anwendungen in diesem Bereich. Der Kunde kann die Dienste auch sehr einfach mit anderen Azure Produkten integrieren.
Entwicklung von Modellen und Anwendungen
Für die Entwicklung von neuen Machine Learning Modellen und Anwendungen bietet Microsoft verschiedene Dienste. Nebst der Nutzung vorbereiteter Infrastruktur kann der Kunde auch mit nur wenig (oder gar keinen) Programmierkenntnissen neue Modelle oder sogar ganze Anwendungen entwickeln.
- Machine Learning: End-to-End MLOps für die schnelle Erstellung von Modellen und deren Bereitstellung in der Produktion.
- Project Bonsai: Low-Code Entwicklungsplattform für industrielle AI-Anwendungen.
- Virtuelle Data-Science Computer: Vorkonfigurierte VMs für Data-Science.
Daten
Für die Analyse von Datenreihen bietet Microsoft einen Dienst zur Erkennung von Anomalien und einen Ratgeber, welcher aufgrund der Daten geeignete Metriken und KPIs vorschlägt. Diese kann der Kunde dann zur Analyse und Optimierung der Prozesse nutzen.
- Anomalieerkennung: Automatische Auswahl von Modellen zur Problemerkennung in Zeitreihendaten.
- Metrics Advisor: Überwachung von Zeitreihendaten aus Geschäfts-, Maschinen- und IoT-Daten.
Sprache und Dokumente
Die automatische Analyse und Verarbeitung von natürlicher Sprache und unstrukturierten Dokumenten nimmt einen grossen Platz in der Welt der Azure ML und AI Dienste ein. Das fängt bei Text-to-Speech und Speech-to-Text an, geht über Inhaltsmoderation und Übersetzung hin zu semantischen und Meinungs- bzw. Stimmungs-Analysen. Weiter gibt es eine Erkennung von Formularen und das automatischen Generieren von Frage-Antwort-Diensten aufgrund von Handbüchern und Dokumentationen.
- Content Moderator: Bild-, Text- und Videomoderation basierend auf Machine-Learning.
- Formularerkennung: Text- und Strukturextraktion aus Dokumenten.
- Language Understanding: No-Code Entwicklung von Anwendungen, welche natürliche Sprache verstehen.
- Plastischer Reader: Leseunterstützung durch Vorlesen, Übersetzung, Aufmerksamkeitsfokussierung, Hervorhebung etc.
- QnA Maker: Erstellen von Frage-Antwort-Anwendungen im Konversationsstil aufgrund vorhandener Dokumente.
- Spracherkennung: Auf Domäne anpassbare Speech-to-Text Lösung.
- Sprachübersetzung: An Domäne anpassbare Echtzeitübersetzung von Text und gesprochener Sprache mit Normalisierung.
- Sprechererkennung: Identifizierung und Überprüfung des Sprechers anhand der Stimme.
- Text-to-Speech: In Stimmlage und Sprachstil anpassbare Sprachausgabe.
- Textanalysen: Extraktion von Entitäten und Schlüsselbegriffen, Analyse von Standpunkten, Erkennung der Sprache.
- Übersetzer: Auf Domäne anpassbare Echtzeit- oder Batch-Übersetzung.
Suche
Einerseits bietet Microsoft die pfannenfertige Bing Suche als Produkt für die eigenen Daten an, andererseits gibt es auch einen Dienst mit dem man auch eigene AI-gestützte Suchanwendungen erstellen kann.
- Bing Websuche: API für die Bing-Suche für Webseiten, News, Bilder, etc.
- Cognitive Search: Search-as-a-Service unter Verwendung von AI.
Bots
Heute binden viele Anwendungen sogenannte Bots ein. Der Benutzer kann so mittels natürlicher Sprache mit der Anwendung interagieren. Microsoft selbst setzt diese Technologie z.B. sehr stark in der Teams Plattform ein. Mit den Bot Services lassen sich ohne viel Aufwand solche Bots für die eigene Anwendung erstellen. Für den Gesundheitsbereich gibt es einen spezialisierten Dienst, der z.B. bei der Diagnose und Patiententriage Unterstützung bieten kann.
- Bot Services: Erstellen von Bots für z.B. Q&A oder gebrandete virtuelle Assistenten.
- Health Bot: Erstellung digitaler Assistenten im Gesundheitsbereich.
Bild und Video
Mit den Azure Diensten zur Bild-Erkennung und Video-Analyse kann der Kunde z.B. Diagnose-Anwendungen für Industrieprozesse erstellen, oder eigene Dienste, welche Gesichtserkennung einsetzen, bereitstellen. Bilder und Videos kann er automatisch mittels vor-trainierter Modelle klassifizieren lassen.
- Custom Vision: AI-gestütztes maschinelles Sehen für spezifische Szenarien.
- Gesichtserkennung: Erkennung von Gesichtern aufgrund verschiedener Merkmale.
- Maschinelles Sehen: Textextraktion (OCR), Bildanalyse, räumliche Analyse (Anzahl Personen, deren Abstand, Gesichtsmasken, etc.).
- Videoindizierung: Extraktion von Metadaten wie gesprochene Worte, Texte, Gesichter, Sprecher, Prominente Personen, Emotionen, Themen, Marken oder Szenen aus Video und Audiodaten.
Weiteres
Weiter gibt es AI und ML Dienste spezialisiert auf Gentechnik und Forschung. Mit kurierten und aufbereiteten Datensätzen ermöglicht es Microsoft schnell eigene Modelle zu trainieren. Letztlich gibt es noch einen Dienst, der ein ML Modell nutzt, um eigenen Anwendungen für die Benutzer, gemäss ihren Bedürfnissen und Präferenzen, zu personalisieren.
- Microsoft Genomics: ISO-zertifizierte, Cloud-basierte Genomsequenzierung mit dem Burrows-Wheeler Aligner und dem Genome Analysis Toolkit.
- Open Datasets: Kuratierte Sammlung von öffentlich zugänglichen Daten.
- Personalisierung: Priorisierung von Inhalten, Anpassung von Layouts etc.
Mixed Reality
Virtual Reality und Augmented Reality, unter dem neuen Begriff Mixed Reality zusammengefasst, sind mittlerweile in Freizeit und Beruf angekommen. Spiele wie Pokémon Go, Navigationssysteme aber auch ganze Produktionsanlagen, nutzen mittlerweile die Möglichkeiten, welche VR- und AR-Brillen, Mobiltelefone und Tablets bieten.
Mit den von Microsoft angebotenen Diensten lassen sich virtuelle Inhalte z.B. an physische Orte oder Objekte binden. Mittels Analyse von Sprache und maschinellem Sehen lassen sich auch Eingaben erfassen. Das Rendering von komplexen 3D-Modelle kann remote in der Cloud erfolgen und die so entstandenen Bilder auf die Datenbrillen übertragen werden.
- Kinect DK: Entwickler-Kit mit Hard- und Software für Spatial Computing, maschinelles Sehen und Sprachverarbeitung.
- Object Anchors: Ausrichtung und Zuordnung von 3D-Inhalten an physischen Objekten.
- Remote Rendering: Rendering von 3D-Inhalten in der Cloud und Echtzeitstreaming auf Geräte.
- Spatial Anchors: Erstellung von Mixed-Reality Anwendungen mit räumlichem Bezug.
Multimedia
Die Azure Cloud bietet sehr ausgereifte Dienste zur Verarbeitung, Analyse, Verbreitung und Wiedergabe von Multimedia-Inhalten an. Diese wurden z.B. auch schon für die Übertragung der Olympischen Spiele genutzt. Kunden können diese Inhalte mittels DRM vor Diebstahl schützen.
- Codierung: Dynamisches Transcoding von Medieninhalten.
- Content Delivery Network: Automatisches CDN mit globaler Abdeckung.
- Content Protection: Schützt Medien-Inhalte mit Multi-DRM.
- Live Video Analytics: Erstellung AI-gestützter Video-Anwendungen.
- Live- und On-Demand Streaming: Just-in-time Verarbeitung und Bereitstellung von Multimedia-Inhalten via CDN, Aufzeichnung von Livestreams.
- Media Player: Mediaplayer für viele Browser und Geräte.
Verwaltung, Automatisierung und Governance
Migration
Um grossen Organisationen die komplexe und mit erheblichen Risiken verbundene Migration in die Cloud zu erleichtern, bietet Microsoft sehr viele Dienste an. So z.B. für den Betrieb von Legacy-Anwendungen mittels Lift-and-Shift. Microsoft will Kunden den Einstieg ja möglichst leicht machen.
Damit der Gesamtüberblick über die Migration in die Cloud nicht verloren geht, bietet Microsoft aber auch spezialisierte Dienste an. Der Kunde kann so Workloads ermitteln, bewerten, planen und verfolgen. Die Azure Cloud zeichnet sämtliche Aktionen rückverfolgbar auf und der Kunde kann diese Daten für Audits nutzen.
Falls der Kunde sehr grosse Datenmengen in die Cloud migrieren will, und dies über das Netzwerk zu lange dauern würde, stellt Microsoft auch physische Speicher verschiedener Grösse zur Verfügung. Microsoft transportiert diese dann in eines seiner Cloud-Datencenter.
- Data Box: Datenmigration in die Cloud mittels physischer Speicher.
- Migrate: Hub und Dashboard für die Migration von Ressourcen in die Cloud.
Automatisierung
In der Azure Cloud lassen sich viele Aufgaben und Dienste automatisieren und mittels Vorlagen und Schablonen konsistent und vereinfacht erstellen.
- Automanage: Automatisierte Vorgänge für den Lebenszyklus von Applikationen und deren Betrieb.
- Automation: Automatisierung von Betriebssystemupdates in Hybridumgebungen.
- Blueprint: Vorlagen für das einfache, wiederholte Bereitstellen und Aktualisieren von Cloud-Umgebungen.
- Cloud Shell: Browser-basierte Kommandozeilenumgebung, um Azure Ressourcen zu verwalten.
- Resource Mover: Verschieben von Azure Ressourcen zwischen verschieden Cloud Regionen.
- Vorlagen für Azure Resource Manager: Infrastructure-as-Code Vorlagen.
Governance
Microsoft unterstützt seine Kunden bei der Erstellung, Erzwingung und Überwachung von Richtlinien in der Cloud und für on-premise Ressourcen. Ein Ratgeber erteilt automatisch Vorschläge zur Verbesserung der Zuverlässigkeit, Sicherheit, Leistung und Senkung von Kosten. Die Zugriffsrechte auf Daten kann der Administrator für Personen und Systeme innerhalb und ausserhalb der eigenen Organisation steuern und überwachen.
- Advisor: Empfehlungen zur Verbesserung der Zuverlässigkeit und Optimierung der Kosten.
- Lighthouse: Datenzugriffsverwaltung für Anbieter, Partner und Kunden.
- Policy: Richtlinienerzwingung und Bewertung, automatisierter bedarfsgesteuerter Ressourcenkorrektur und Reporting.
Verwaltung und Überwachung
Für den Betrieb von Anwendungen und Ressourcen in der Cloud bietet Microsoft Dienste zur Überwachung, Kostenverrechnung und Wiederherstellung. Mit der Mobile-App kann der Benutzer viele dieser Aufgaben auch unterwegs erledigen.
- Mobile App: Mobil App zur Überwachung von Ressourcen und deren Integrität.
- Monitor: Überwachung und Sammlung von Telemetriedaten aus der Azure Cloud und on-premise Umgebungen.
- Service Health: Informiert über Incidents und Wartungsfenster der Azure Plattform.
- Site Recovery: Dienst für Disaster Recovery.
- Cost Management und Abrechnung: Überwachung der Kosten.
Hybrid und Multicloud
Viele Szenarien verlangen, dass Azure Ressourcen mit Computern, Programmen oder Geräten ausserhalb der Cloud zusammenarbeiten. Z.B. können das IoT Geräte (wie Anlagensteuerungen, Messanlagen, etc.), Kassensysteme, noch nicht in die Cloud migrierte on-premise Dienste, etc. pp. sein. Oder aber eine Organisation will sich nicht auf einen Cloud-Anbieter festlegen, möglicherweise werden aus Verfügbarkeitsgründen sogar die gleichen Applikationen in mehreren Clouds redundant betrieben.
All diese Szenarien stellen besondere Herausforderungen an das Verwalten der Dienste, die Überprüfung von Policies und Compliance Richtlinien und an die Sicherheit. Mit den von Microsoft angebotenen Diensten kann man diese Aufgaben von einer vereinheitlichten, zentralen Stelle aus erfüllen. Andere Dienste von Microsoft in diesem Themenfeld ermöglichen es, Azure Dienste auch ausserhalb der Cloud zu nutzen, z.B. auf Edge-Geräten, im eigenen Datacenter oder an Orten ohne Netzwerkanbindung.
- Arc: Verwaltung, Policies, Compliance von Multicloud, On-Premise und Edge Ressourcen.
- ExpressRoute: Private Verbindungen von der Azure Cloud in On-Premise Netzwerke/WANs.
- Modular Datacenter: Transportable Rechenzentrumslösung im Container.
- Stack Edge: Edge-Computing mit Datenübertragung in die Cloud.
- Stack HCI: Betrieb hyperkonvergenter Infrastruktur.
- Stack Hub: Eine lokale, autonome Azure Cloud.
- Stack: Betrieb von Azure Diensten auf eigener Infrastruktur.
Anbieten eigener Dienste
Microsoft hat das Azure-Ökosystem auch für Drittanbieter geöffnet, die selbst eigene Dienste und Ressourcen anbieten können.
- Managed Applications: Anbieten eigener Dienste im Azure Marketplace.
Abschliessende Gedanken
Wie ersichtlich ist die Anzahl der Dienste und die von ihnen abgedeckten Themenfelder sehr gross. Für mich die einfacher verständlichen sind diejenigen, welche sich für die “Lift-and-Shift” Szenarien anbieten. D.h. bestehende Anwendungen und Ressourcen werden mit möglichst wenig Modifikation und Aufwand in die Cloud migriert. Allerdings kann dies nur der erste Schritt sein. Man spart sich dadurch bestenfalls die Investitionskosten in eigene Hardware und deren Wartung. Aber weder verbessert sich die Unternehmens- noch die Applikations-Architektur und eine Integration in andere Dienste ist immer noch schwierig. Eine echte Cloud-Strategie sollte diese Dienste nur für eine Übergangsphase als tragend betrachten.
Die Herausforderung liegt dann darin, die Anwendungen “neu zu denken” und die bekannten Trampelpfade zu verlassen. Die vielen Legobausteine wollen geschickt kombiniert werden, um viel rascher und mit sehr wenig Code zu ausgereiften und robusten Lösungen zu kommen. Die Gefahr liegt in der Tendenz, vertraute Lösungsansätze zu bevorzugen und so den Lösungsraum unnötig und ungünstig einzuschränken. Andererseits eignet sich der gerade zuletzt neu entdeckte Dienst nicht für alle Anwendungen – das Problem des sprichwörtlichen Jungen mit einem Hammer, für den alles wie ein Nagel ausschaut. Hier lohnt es sich den Spieltrieb auszuleben, die neuen Möglichkeiten in kleinen Prototypen und “Wegwerfprojekten” auszuprobieren und deren Vor- und Nachteile zu erforschen. Aus dem einfachen Grund, dass nur sinnvoll einsetzen kann, was man auch kennt und versteht.