Überblick über Microsoft Azure Autor: Version: Azure SDK: Stand: Holger Sirtl 2.9.6 2.9.6 19.01.2017 © 2017 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Information in this document, including URL and other Internet Web site references, is subject to change without notice. This document supports a preliminary release of software that may be changed substantially prior to final commercial release, and is the proprietary information of Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT. The entire risk of the use or the results from the use of this document remains with the user. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred. © 2017 Microsoft Corporation. All rights reserved. Microsoft, Internet Explorer, Windows, and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH i . ii Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Inhalt im Überblick 1 Cloud Computing mit Microsoft Azure 2 Bereitstellung eigener Anwendungslogik auf Azure 1 7 3 Speicherung von Daten auf Microsoft Azure 17 4 Analytics- und IoT Services 24 5 Sicherheit Azure-basierter Anwendungen 31 6 Medienverarbeitung und -verteilung 34 7 36 Integration Azure-basierter Anwendungen in die eigene IT 8 Netzwerkdienste 41 9 DevOps mit Microsoft Azure 45 10 Erste Schritte mit Microsoft Azure 48 Anhang A: Azure Ausführungsmodelle 49 Anhang B: Azure Services im Überblick 50 Anhang C: Aufbau der Plattform 53 Index 54 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH iii iv Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Inhaltsverzeichnis 1 Cloud Computing mit Microsoft Azure 1 1.1 Cloud Computing .................................................................................................................................... 1 1.2 Aufbau der Microsoft Azure Plattform ........................................................................................... 2 1.3 Die physische Infrastruktur .................................................................................................................. 3 1.4 Dienste der Microsoft Azure Plattform ........................................................................................... 4 1.5 Aufbau dieses Dokuments ................................................................................................................... 5 2 Bereitstellung eigener Anwendungslogik auf Azure 7 2.1 App Service – Hosting Web-basierter Anwendungslogik ....................................................... 8 2.2 Cloud Services – mehrschichtige, skalierbare Anwendungen .............................................11 2.3 Service Fabric - Microservices-basierte Apps .............................................................................12 2.4 Container Service – Cluster für Container-Deployments .......................................................13 2.5 Virtual Machines - Betrieb virtueller Maschinen in der Cloud .............................................13 2.6 Azure Batch – Batch-Verarbeitung .................................................................................................15 2.7 Mobile Engagement – Verwaltung mobiler Apps ....................................................................15 2.8 Notification Hubs - Push-Benachrichtigungen an mobile Plattformen ...........................15 2.9 API Management ...................................................................................................................................16 3 Speicherung von Daten auf Microsoft Azure 17 3.1 Relationale Datenspeicherung .........................................................................................................18 3.2 NoSQL-Datenspeicherung .................................................................................................................20 3.3 Dateisystem-basierte Speicherdienste ..........................................................................................21 3.4 Caching ......................................................................................................................................................22 3.5 Hybride Datenablage mit StorSimple ...........................................................................................23 4 Analytics- und IoT Services 24 4.1 IoT Hub ......................................................................................................................................................24 4.2 Event Hubs ...............................................................................................................................................25 4.3 Stream Analytics ....................................................................................................................................25 4.4 Data Factory.............................................................................................................................................25 4.5 Azure Data Lake .....................................................................................................................................26 4.6 HDInsight ..................................................................................................................................................27 4.7 Machine Learning ..................................................................................................................................27 4.8 Azure Search ............................................................................................................................................28 4.9 SQL Data Warehouse ...........................................................................................................................28 4.10 Azure Data Catalog ...............................................................................................................................28 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH v 4.11 Analysis Services .................................................................................................................................... 28 4.12 Cognitive Services ................................................................................................................................. 29 4.13 Azure Bot Service .................................................................................................................................. 29 4.14 Power BI Embedded ............................................................................................................................. 30 5 Sicherheit Azure-basierter Anwendungen 31 5.1 Azure Active Directory ........................................................................................................................ 31 5.2 Multi-Factor Authentication ............................................................................................................. 32 5.3 Key Vault................................................................................................................................................... 33 5.4 Azure Security Center .......................................................................................................................... 33 5.5 Microsoft Azure Trust Center ........................................................................................................... 33 6 Medienverarbeitung und -verteilung 34 6.1 Media Services ....................................................................................................................................... 34 6.2 Content Delivery Network (CDN) ................................................................................................... 34 7 Integration Azure-basierter Anwendungen in die eigene IT 36 7.1 Datenintegration via SQL DataSync .............................................................................................. 36 7.2 Anwendungsintegration ..................................................................................................................... 37 8 Netzwerkdienste 41 8.1 Virtual Network ...................................................................................................................................... 42 8.2 ExpressRoute........................................................................................................................................... 42 8.3 Traffic Manager ...................................................................................................................................... 43 8.4 Load Balancer ......................................................................................................................................... 43 8.5 DNS Service ............................................................................................................................................. 44 8.6 VPN Gateway .......................................................................................................................................... 44 8.7 Application Gateway ............................................................................................................................ 44 9 DevOps mit Microsoft Azure 45 9.1 Services für die Software-Entwicklung ......................................................................................... 45 9.2 Services für den Systembetrieb ....................................................................................................... 46 10 Erste Schritte mit Microsoft Azure 48 10.1 Blogs und Webseiten .......................................................................................................................... 48 vi Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Anhang A: Azure Ausführungsmodelle 49 Anhang B: Azure Services im Überblick 50 Anhang C: Aufbau der Plattform 53 Index 54 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH vii Abbildungsverzeichnis Abb. 1-1 Grobaufbau der Microsoft Plattform .............................................................................................. 3 Abb. 2-1 Ausführungsmodelle für Cloud Anwendungen .......................................................................... 7 Abb. 2-2 API Management ..................................................................................................................................16 Abb. 4-1 Analytics- und IoT-Services in Microsoft Azure ........................................................................24 Abb. 7-1 Microsoft Azure SQL DataSync ........................................................................................................37 Abb. 7-2 Microsoft Azure Service Bus .............................................................................................................38 Abb. 7-3 Microsoft Azure Service Bus Topics und Subscriptions .........................................................39 Abb. 8-1 Netzwerkdienste in Microsoft Azure .............................................................................................41 Abb. 8-2 Microsoft Azure Traffic Manager ....................................................................................................43 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH ix 1 Cloud Computing mit Microsoft Azure Microsoft Azure ist Microsofts Public Cloud Plattform für Entwickler und Administratoren, die eigene Softwareanwendungen ganz oder in Teilen in der Cloud ausführen möchten. Die Plattform umfasst eine Reihe von Cloud-Diensten, die einzeln oder in Kombination genutzt werden können, dabei bedarfsabhängig in quasi beliebiger Kapazität bereitgestellt und nutzungsabhängig abgerechnet werden. Zu diesen Services gehören unter anderem solche, mit denen Anwendungen in der Cloud ausgeführt, andere, mit denen unterschiedliche Daten in der Cloud gespeichert und effizient verarbeitet und wieder andere, mit denen Cloud-Elemente sicher und effektiv mit Ressourcen aus einem eigenen Rechenzentrum bzw. lokal ausgeführten ClientAnwendungen verknüpft werden können. Tatsächlich sind derartige Hybrid-Lösungen, bei denen einzelne Anwendungsteile in der Cloud, andere Teile in einer lokalen Ausführungsumgebung zusammen betrieben werden, eine große Stärke von Microsoft Azure. So könnte beispielsweise eine klassische Windows Rich-Client Anwendung Daten in Microsoft Azure Storage speichern, Apps auf mobilen Endgeräten über Microsoft Azure Nachrichten untereinander austauschen, eine lokal betriebene SQL Server Datenbank sich ganz oder in Teilen mit einer Cloud Datenbank synchronisieren, eine in Microsoft Azure betriebene Webanwendung über den Service Bus ein lokal ausgeführtes Backend-System aufrufen. Viele weitere Hybrid-Szenarien sind denkbar. Selbstverständlich können Anwendungen auch vollständig auf Microsoft Azure betrieben werden. Zur Erstellung und Migration Azure-basierter Anwendungen können verschiedene Entwicklungs- und Management-Umgebungen (Visual Studio, Eclipse, System Center, …) und Programmiertechnologien (.NET, Java, PHP, Python, …) mit entsprechenden APIs genutzt werden. Entwickler können dadurch auf vorhandes Wissen aufsetzen. 1.1 Cloud Computing Häufig wird der Begriff Cloud Computing normativ, d.h. über bestimmte Eigenschaften definiert, die man im Allgemeinen mit Cloud Computing verbindet. Microsoft Azure erfüllt diese Eigenschaften und kann deshalb zu Recht als Cloud Plattform bezeichnet werden: • Azure Services können in quasi beliebiger Kapazität bereitgestellt werden, hierzu sind keine Vorab-Investitionen erforderlich. Kapazitätsplanungen zu Beginn eines Softwareprojektes vereinfachen sich drastisch: der Start der Anwendung kann in einer kleinen, Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 1 kostengünstigen Umgebung erfolgen, und bei Erfolg der Anwendung und entsprechender Last können schnell zusätzliche Ressourcen hinzugeschaltet werden. • Die Dienste werden bedarfsgerecht bereitgestellt, d.h. sobald Bedarf an Rechen-, Speicher- oder Kommunikationsleistung besteht, können die Dienste genutzt werden, sobald kein Bedarf mehr besteht, können die Dienste wieder deaktiviert werden. Dies ist beispielsweise bei der Nutzung der Cloud zum Aufbau von Test- und Enwicklungsumgebungen ein entscheidender Vorteil gegenüber einer lokalen Infrastruktur. • Die Abrechnung erfolgt dabei nutzungsabhängig, d.h. nur für die tatsächlich genutzte Kapazität fallen während der Nutzung Kosten an. Dadurch sind die Kosten mit dem Erfolg eines Cloud-basierten Softwaresystems korreliert, und das Risiko teurer Fehlinvestitionen beseitigt. • Über Standardschnittstellen (z.B. RESTful APIs) können die Dienste über alle Technologien genutzt werden, die diese Standards unterstützen (z.B. .NET, Java, PHP, …). Durch Nutzung entsprechender Software Development Kits (SDKs) können die Schnittstellen nativ aus den verschiedenen Technologien heraus angesprochen werden. 1.2 Aufbau der Microsoft Azure Plattform Abb. 1-1 zeigt den groben Aufbau der Microsoft Azure Plattform. Die Plattform besteht aus einer Menge hoch-skalierbarer, schnell provisionierbarer, flexibel administrierbarer Services, die auf Microsofts Cloud Infrastruktur bereitgestellt werden. Diese Services können über eine Management API (REST-basiert) angesprochen und administriert werden, d.h. es können eigene Umgebungen bestehend aus diesen Services bzw. Instanzen der Services erstellt, konfiguriert, skaliert und wieder gelöscht werden. Die Management API kann, da sie entsprechend dem REST-Paradigma implementiert ist, von jeder Technologie aus angesprochen werden, die Aufrufe von RESTful-Services unterstützt. Eine Nutzung aus .NET, PHP, Java, Python etc. ist so problemlos möglich. Ein komfortablerer Zugang zur API besteht über Software Development Kits (SDKs) verschiedener Programmiersprachen. Diese kapseln REST-Aufrufe in Objekten der jeweiligen Sprache. So können Entwickler der unterstützten Sprachen zur Steuerung von Azure Services Klassen ihrer gewohnten Implementierungstechnologie verwenden. Für Anhänger der Kommandozeile stehen Cmdlets für die Windows PowerShell und darüber hinaus für Windows-, Linux- und Mac-Umgebungen das plattfromübergreifende Command Line Interface (Xplat-CLI) zur Verfügung. Über diese Werkzeuge können die REST-Schnittstellen von Azure aus der Kommandozeile heraus angesprochen werden. 2 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Abb. 1-1 Grobaufbau der Microsoft Plattform Einsteiger werden sich allerdings wohl zunächst mit einem der beiden Web-Portale Azure nähern: dem Management Portal und dem Classic Portal. Das aktuelle Portal wird mittelfristig das Classic Portal vollständig ablösen. Die Portale stellen große Teile der Azure-Funktionalität über eine Web-basierte Oberfläche zur Verfügung. Letztlich sprechen auch sie ihrerseits die RESTful-API an. 1.3 Die physische Infrastruktur Microsofts Cloud Infrastruktur bildet die Basis für alle weiteren Dienste. Dabei handelt es sich um Server-, Speicher- und Netzwerkkomponenten, auf der die Infrastruktur- und Plattformdienste ausgeführt werden. 1.3.1 Azure Global Cloud Azure ist in 24 Regionen weltweit allgemein verfügbar. Die Verfügbarkeit in 8 weiteren Regionen ist geplant und wurde bereits angekündigt. Grundsätzlich kann die Region für jeden zu nutzenden Azure Service einzeln gewählt werden. Auch eine Verteilung von Anwendungsinstallationen auf mehrere Regionen ist möglich. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 3 1.3.2 Microsoft Cloud Deutschland In Deutschland wird Azure über ein Datentreuhändermodell in zwei Rechenzentren (Frankfurt am Main und Magdeburg) bereitgestellt, bei dem Kundendaten in Deutschland verbleiben und von T-Systems als Datentreuhänder verwaltet und kontrolliert werden. Vertraglich ist unter anderem sichergestellt, dass jegliche administrativen Zugriffe auf die Azure Umgebung neben etwaigen Nutzern stets auch der Freigabe des Datentreuhänders bedürfen. 1.3.3 Azure Stack Einzelne Dienste aus Azure (z.B. Web Apps und Virtual Machines) können mittels Azure Stack im eigenen Rechenzentrum auf einer Windows-Server-Umgebung betrieben werden. Steht Azure Stack dann lokal zur Verfügung können Deploymentpakete, Skripte etc. aus der Global Cloud (bzw. der Microsoft Cloud Germany) ohne Änderungen verwendet werden, sofern sie sich auf Services beziehen, die in Azure Stack unterstützt werden. Tabelle 1 gibt eine Auflistung der Services, die nach aktuellem Planungsstand zum GA-Zeitpunkt (= allgemeine Verfügbarkeit) in Azure Stack enthalten sein werden. Dienstgruppe Azure Stack Services zum GA-Zeitpunkt Compute Virtual Machines (einschl. Extensions & Availability Sets), Service Fabric Data & Storage Blobs, Tables, Queues Networking Virtual Network, Load Balancer, VPN Gateway Management & Security Microsoft Azure Portal, Key Vault Web & Mobile App Service (Web Apps, Logic Apps, Mobile Apps, API Apps) Developer Services Azure SDK Tabelle 1: Verfügbarkeit von Azure Services in Azure Stack zum GA-Zeitpunkt1 1.4 Dienste der Microsoft Azure Plattform Zur Ausführung eigener Anwendungslogik stehen verschiedene Dienste der Kategorien Infrastructure-as-a-Service (IaaS) und Platform-as-a-Service (PaaS) zur Verfügung. Der Anwender entscheidet, welche Betriebsaspekte automatisiert durch die Plattform übernommen werden und welche er selbst verwalten möchte. Auf IaaS-Ebene besteht die Möglichkeit, vorgefertigte oder eigene Windows- oder Linux-basierte virtuelle Maschinen auf Azure auszuführen. Im PaaS-Bereich gibt es unter anderem Cloud Services für komplexere, mehrschichtige Web-Anwendungen, Web Apps für schnelles, flexibles Webhosting, Mobile Apps als Backend für mobile Anwendungen und Media Services zur Implementierung von Medien-Workflows. 1 Quelle: “Taking the cloud to your datacenter – Azure Stack”, Microsoft 4 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Aus eigenen Anwendungen (egal ob auf Azure oder lokal ausgeführt) heraus können weitere Dienste genutzt werden. Im Bereich Identity gibt es Dienste zur Authentifizierung und Benutzerverwaltung. Integrationsdienste können zur Kommunikation und Integration verteilter Anwendungskomponenten genutzt werden und zur Datenspeicherung und –auswertung gibt es eine ganze Palette verschiedener Speicherdienste. Anhang A listet die Dienste der einzelnen Funktionsgruppen auf und verweist auf die jeweiligen Abschnitte in diesem Dokument. Die von Azure angebotenen Dienste sind hochverfügbar ausgelegt. Sie werden ständig überwacht und auf dem neuesten Stand gehalten. Ausfälle werden erkannt und automatisch entsprechende Instandsetzungsmaßnahmen eingeleitet. Die Dienste können auf schwankende Last reagieren, d.h. über einen Auto-Scaling-Mechanismus auf Wunsch automatisch Ressourcen hinzufügen oder entfernen. Managementaufgaben, die Anwender ausführen möchten, können über ein Web Portal, PowerShell-Skripte oder REST-Schnittstellen angesteuert werden. Für alle bereitgestellten Dienste werden passende Entwicklerwerkzeuge bereitgestellt, die den Application Lifecycle, angefangen vom Erstellen, über das Testen bis hin zum Deployment und Betrieb, sehr einfach gestalten. Dabei werden neben Microsoft-Entwicklungsplattformen (.NET und Visual Studio) auch diverse andere Plattformen und Werkzeuge (Node.js, Java, PHP, Python, Ruby, Eclipse) mit entsprechenden Erweiterungen unterstützt. Auch die Interaktion mit verschiedenen Quellcode-Verwaltungssystemen (Visual Studio Online, GitHub etc.) wird unterstützt. 1.5 Aufbau dieses Dokuments Die einzelnen Kapitel dieses Dokuments behandeln jeweils folgende Themen: • Kapitel 2: Bereitstellung eigener Anwendungslogik auf Azure Dieses Kapitel zeigt auf, wie eigene Anwendungen und Dienste auf Microsoft Azure ausgeführt und verwaltet werden können. Hierzu stehen mehrere Ausführungsmodelle zur Verfügung. Unter anderem: App Service, Cloud Services und Virtual Machines. • Kapitel 3: Speicherung von Daten auf Microsoft Azure Microsoft Azure bietet verschiedene relationale und nicht-relationale Speicherdienste an. Dieses Kapitel gibt einen Überblick und zeigt auf, wann welcher Dienst sinnvoll eingesetzt werden kann. • Kapitel 4: Analytics- und IoT Services Hier werden die Azure Dienste vorgestellt, die sich zur Speicherung, Auswertung und Recherche auch größter Datenbestände eignen. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 5 • Kapitel 5: Sicherheit Azure-basierter Anwendungen Dieses Kapitel stellt Dienste und Dienstbeschreibungen vor, die dabei helfen, eigene Anwendungen sicher zu machen bzw. deren Sicherheit zu dokumentieren. • Kapitel 6: Medienverarbeitung und -verteilung Die hier vorgestellten Services fokussieren auf die Bereiche Medienverarbeitung (Audio, Video, Bilder etc.) und Medienverteilung. • Kapitel 7: Integration Azure-basierter Anwendungen in die eigene IT Dieses Kapitel widmet sich dem Brückenschlag zwischen Azure und einem eigenen Rechenzentrum. Es stellt die Dienste vor, mit denen sich hybride Cloud-Umgebungen realisieren lassen. • Kapitel 8: Netzwerkdienste Hier finden sich diverse Dienste zur Vernetzung von virtuellen Maschinen auf Azure untereinander, deren Anbindungen aus dem Internet bzw. an ein oder mehrere lokale Rechenzentren. • Kapitel 9: DevOps mit Microsoft Azure Dienste für Entwicklung und Betrieb Cloud-basierter Anwendungen sowie deren Integration in einer integrierten DevOps-Lösung stehen im Mittelpunkt dieses Kapitels. • Kapitel 10: Erste Schritte mit Microsoft Azure Hier finden sich Hinweise auf Informationsquellen, Trainings, Videos etc., die nützlich bei der Einarbeitung in Microsoft Azure sein können. 6 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 2 Bereitstellung eigener Anwendungslogik auf Azure Wer sich dem Thema Cloud Computing mit Microsoft Azure nähert, denkt häufig zunächst an die Möglichkeit, Anwendungen in der Cloud, d.h. Microsofts Rechenzentren auszuführen. Wenngleich dies nicht die einzige Funktion von Microsoft Azure ist, ist sie doch eine zentrale. Weitere Dienste der Plattform wie beispielsweise Speicher, Datenbank oder Service Bus können dann – auch wenn sie ebenfalls alleine genutzt werden können – problemlos mit den auf Microsoft Azure ausgeführten Anwendungen kombiniert werden. Zur Ausführung von Anwendungen in der Cloud stellt Microsoft Azure mehrere Modelle zur Verfügung, die in Abb. 2-1 aufgeführt sind. Diese können unabhängig voneinander, aber auch in Kombination genutzt werden. Anhang A enthält eine detailliertere Gegenüberstellung der wichtigsten Modelle. Letztlich kommen in allen Alternativen virtuelle Maschinen zum Einsatz. Unterschiede bestehen in dem Maße, in dem administrative Aufgaben automatisiert von Azure übernommen werden. Abb. 2-1 Ausführungsmodelle für Cloud Anwendungen Im Bereich Infrastructure-as-a-Service (IaaS) stehen Virtual Machines, VM Scale Sets sowie der Container Service zur Verfügung. Virtual Machines bieten die größte Flexibilität. Die virtuellen Maschinen können individuell konfiguriert und betrieben werden; dafür verbleiben viele administrative Aufgaben (Patching, Upgrades etc.) beim Nutzer. VM Scale Sets automatisieren Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 7 einige Aspekte zum Betrieb eines Clusters identischer virtueller Maschinen (Skalierung, Loadbalancing etc.). Der Container Service stellt auf Basis von VM Scale Sets Cluster-Umgebungen für Container-basierte Deployments (DC/OS, Mesos, Kubernetes) zur Verfügung. Die Ausführungsmodelle im Bereich Platform-as-a-Service (PaaS) werden viele Aspekte der zugrundeliegenden Infrastruktur automatisiert (Patching der virtuellen Maschinen etc.). Der Batch Service stellt automatisch Ressourcen für Batch-Jobs bereit. Cloud Services eignen sich für Aufbau und Betrieb hoch-skalierbarer, hoch-verfügbarer, mehrschichtiger Anwendungen bei minimalem Administrationsaufwand. Service Fabric ermöglicht den Aufbau flexibel skalierbarer, Microservices-basierter Anwendungen. Der App Service nimmt dem Nutzer zusätzlich Aufgaben ab (Gast-Betriebssysteme werden automatisiert gewartet, Installation benötigter Runtimes und Frameworks kann auf Knopfdruck erfolgen), dafür ist die Funktionalität dort stärker auf einen festen Standard zur Implementierung von Web-, Mobile- und API Apps beschränkt. Über das App Service Environment können diese Apps auch in einer dedizierten Umgebung ausgeführt werden. Azure Functions abstrahieren im Sinne des „serverless computing“ gänzlich von einer konkreten Ausführungsumgebung, d.h. es werden von Azure automatisch zur Ausführung benötigte Ressourcen bereitgestellt. Logic Apps ermöglichen die Definition und ereignisgesteuerte Ausführung von Workflows in deren Rahmen verschiedene BackendSysteme integriert werden können. PowerApps ermöglichen über eine grafische Oberfläche die Implementierung mobiler Anwendung, in die Cloud Daten und Dienste integriert werden können. 2.1 App Service – Hosting Web-basierter Anwendungslogik Der App Service stellt Funktionalitäten für eine Gruppe von Anwendungstypen bereit, die ähnliche Anforderungen an Installation, Provisionierung, Authentifizierung, Skalierung etc. haben. Neben Web Apps zum Hosting klassischer Web-Anwendungen gehören hierzu Mobile Apps zur Bereitstellung von Backends für mobile Clients, Logic Apps zur Implementierung API-basierter Workflows und API Apps, die Funktionalitäten über Web-basierte Schnittstellen zur Verfügung stellen. 2.1.1 Hosting von Web-Anwendungen mit Web Apps Microsoft Azure Web Apps sind (neben Cloud Services und Virtual Machines) eine von drei Optionen zur Ausführung von Web-Anwendungen in der Cloud. Sie stellen eine kostengünstige, aber trotzdem gut skalierbare Hosting-Variante für Websites bereit. Über das Microsoft Azure Portal können hierzu sehr schnell und einfach Umgebungen eingerichtet, mit zahlreichen Web Frameworks (z.B. ASP.NET, Java, PHP, Node.js, ...) und Anwendungen (z.B. Joomla, 8 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Wordpress, Drupal, ...) vorkonfiguriert und von verschiedenen Entwicklungsplattformen aus mit Webanwendungen bestückt werden. Hierbei werden als Deployment-Optionen unter anderem Git, FTP, WebDeploy und TFS2 Deploy unterstützt. Das Portal bietet hierzu verschiedene Deployment-Skripte an, die in eigene Entwicklungsumgebungen importiert werden können. Damit können Websites neben Windows auch in Nicht-Microsoft-Umgebungen wie Linux oder MacOS entwickelt und dann auf Microsoft Azure betrieben werden. Auch ist ein automatisiertes Deployment direkt aus Quellcode-Verwaltungen (unter anderem Git, Visual Studio Online, Dropbox, Skydrive, …) heraus möglich. Sobald ein Entwickler neuen Code einstellt, erfolgt automatisch ein neues Deployment (welches über das Portal auch rückgängig gemacht werden kann), so dass eine Website stets auf dem aktuellsten Quellcode-Stand ist. Zur Ausführung der Web Apps stehen mehrere Betriebsarten zur Verfügung: im "Shared"-Modell werden eine oder mehrere Instanzen der Anwendung in einer Multi-Mandanten-Umgebung betrieben, im kostenlosen „Free“-Modell ist die Zahl der Instanzen auf eine einzige beschränkt, im "Basic"-Modell erfolgt der Betrieb in exklusiv für die Anwendung bereitgestellten virtuellen Maschinen. Das „Standard“- und das „Premium“-Modell bietet darüber hinaus noch Backup und Restore, Auto-Scaling, Webjobs, Scheduler Unterstützung und das stufenweise Publishing über eine Staging-Umgebung. Zwischen den Betriebsarten kann flexibel gewechselt werden. Damit ist sowohl Scale-out (Hinzuschalten zusätzlicher Instanzen gleicher Größe) als auch Scale-up (Vergrößerung der bestehenden Instanzen im „Basic“- oder „Standard“-Modell) zur Anpassung der Umgebung an sich ändernde Last möglich. Dies kann in „Standard“- und „Premium“-Modell mit der AutoScaleFunktion auch (z.B. in Abhängigkeit von der CPU-Last) automatisiert werden. Konfiguration und Verwaltung der zur Ausführung von Web Apps genutzten virtuellen Maschinen wird vollständig durch Microsoft Azure übernommen. Für die Persistierung von Daten stehen als Datenbanken MySql und Microsoft Azure SQL Database zur Auswahl. Aus Web Apps heraus können natürlich auch die weiteren Dienste der Microsoft Azure Plattform genutzt werden. So kann eine Web App Authentifizierung von Benutzern über das Azure Active Directory durchführen oder zur Datenspeicherung auf einen SQL Server zugreifen, der in einer Virtual Machine ausgeführt wird. http://azure.microsoft.com/de-de/services/app-service/web/ 2.1.2 Backends für mobile Clients mit Mobile Apps Sogenannte „Connected mobile Apps“, d.h. leichtgewichtige Anwendungen, die auf mobilen Endgeräten ausgeführt werden, sind häufig über Backend-Services vernetzt. Über diese Dienste tauschen die einzelnen Clients Daten aus, speichern Daten, führen Authentifizierung 2 Team Foundation Server (Bestandteil der Visual Studio Plattform) Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 9 durch etc. Microsoft Azure Mobile Apps bieten eine Sammlung genau solcher, häufig benötigter Dienste auf Microsoft Azure an. Zu diesen Diensten gehören unter anderem folgende Funktionen: • Benutzerauthentifizierung (via Microsoft Account, Facebook, Twitter und Google ID) mit entsprechender Zugriffskontrolle bei Service-Aufrufen • Speicherung von Daten in Blob, Table, Queue Service oder SQL Database • Kommunikation via Service Bus • Push Notifications • Zeitgesteuerte Ausführung serverseitiger Skripte Darüber hinaus ist es möglich, neben den Daten-basierten Schnittstellen (für das Schreiben, Lesen, Ändern, Löschen von Daten) eigene Schnittstellen bereitzustellen. Die vorkonfigurierten Microsoft Azure Mobile Apps können ohne größeren Programmieraufwand sehr einfach als Backend-Dienste für Windows, iOS, Android und Web Clients eingesetzt werden. Es können Vorlagen für entsprechende neue Apps oder Code Fragmente für bestehende Apps aus dem Portal heruntergeladen werden. Die Entwicklung einfacher mobiler Anwendungen, die Cloud Dienste nutzen sollen, vereinfacht sich dadurch deutlich. http://azure.microsoft.com/de-de/services/app-service/mobile/ 2.1.3 API-basierte Workflows mit Logic Apps Über Logic Apps können Workflows definiert werden, die aus einer Aneinanderreihung von API-Aufrufen und der entsprechenden schrittweisen Verarbeitung von Daten bestehen. D.h. Rückgaben einer API können als Aufrufparameter nachfolgender APIs dienen. Über bereits in Azure enthaltene Konnektoren können verschiedene Backend-Systeme (z.B. Salesforce, DropBox, Twitter, SharePoint, Office 365, …). Damit lassen sich Geschäftsprozesse implementieren, die eigene Anwendungslogik und Logik verschiedener Backendsysteme (über die Konnektoren) umfassen. Die Prozesse können dabei regelmäßig ausgeführt ober über Ereignisse der integrierten Systeme ausgelöst werden. So könnte beispielsweise nach Anlage eines neuen Eintrags in Salesforce eine E-Mail passende verschickt und ein Eintrag in einer SQL Datenbank erstellt werden. http://azure.microsoft.com/de-de/services/app-service/logic/ 2.1.4 Web-basierte Schnittstellen mit API Apps Häufig soll Anwendungslogik flexibel als aufrufbare API bereitgestellt werden. Wenngleich über Technologien wie Web API die Erstellung einer API recht einfach ist, sind Funktionalitäten zur Authentifizierung, zum Aufruf etc. mitunter mit Aufwänden zur Umsetzung verbunden. API 10 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Apps vereinfachen die Bereitstellung dieser begleitenden Funktionalitäten bedeutend. Bei der Implementierung von Clients, die eine API App verwenden sollen, können die Meta-Informationen (Aufrufparameter, Rückgabewerte, Authentifizierungsanforderungen etc.) über eine Swagger-basierte Beschreibung importiert und daraus der Code für die Aufrufe automatisch erzeugt werden. Entwickler können sich so voll auf die Anwendungslogik konzentrieren und Objekte ihrer jeweiligen Programmiersprache verwenden. Entwickler können API Apps entweder vollständig selbst implementieren oder durch Konfiguration entsprechender Konnektoren bereitstellen. Azure enthält im Marketplace bereits eine Vielzahl an Konnektoren mit denen beispielsweise E-Mails versandt, Daten in Salesforce eingestellt oder Twitter-Tweets abgesetzt werden können. http://azure.microsoft.com/de-de/services/app-service/api/ 2.1.5 Azure Functions Azure Functions ermöglichen die ereignisgesteuerte Ausführung von Anwendungscode, bei der nur während der Ausführung benötigte Ressourcen in Rechnung gestellt werden. Functions können in verschiedenen Sprachen wie z.B. JavaScript, C#, Python oder PHP oder Skriptsprachen (Bash, Batch, PowerShell) erstellt werden. Functions werden dann in Reaktion auf externe Ereignisse (Änderungen in einer Datenquelle, Eintreffen von Nachrichten etc.) ausgeführt. https://azure.microsoft.com/de-de/services/functions/ 2.2 Cloud Services – mehrschichtige, skalierbare Anwendungen Microsoft Azure Cloud Services sind (neben Web Apps und Virtual Machines) eine von drei Optionen zur Ausführung von Anwendungen in der Cloud. Der Fokus liegt bei Cloud Services stark auf hoch-verfügbaren, hoch-skalierenden, mehrschichtigen Web-Anwendungen, die maximal von der flexiblen Ressourcenbereitstellung der Public Cloud profitieren sollen. Diese Anwendungen können in Komponenten, genannt "Rollen", untergliedert werden, die unabhängig voneinander skaliert werden können. Microsoft Azure übernimmt dabei das Management der zur Ausführung der Rollen benötigten virtuellen Maschinen. Dies schließt Upgrades der GastBetriebssysteme, Patching und Failover (ausgefallene Komponenten werden automatisch ersetzt) ein. Anders als bei Websites haben Entwickler vollen administrativen Zugang auf die virtuellen Maschinen, um beispielsweise zusätzliche Software in die einzelnen Instanzen zu installieren. Hierzu werden auch Remote Desktop Verbindungen zur Administration unterstützt. Rollen können unabhängig voneinander skaliert werden (Hinzuschalten bzw. Entfernen von Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 11 Instanzen); mit der Auto-Scaling-Funktion kann dieser Vorgang auch (in Abhängigkeit von verschiedenen Lastparametern) automatisiert werden. Die Entwicklung von Cloud Services kann über Visual Studio oder auch Eclipse erfolgen. Die Anwendungen können zunächst in einem Azure Emulator lokal ausgeführt und - nach erfolgreichem Test - direkt aus der Entwicklungsumgebung heraus in die Cloud deployt werden. Cloud Services bieten demnach Entwicklung und Betrieb von Anwendungen im Sinne des PaaS-Modells (PaaS = Platform-as-a-Service). Cloud Services bieten dabei mehr Kontrolle über das Deployment und die Verteilung von Anwendungskomponenten als Web Apps. Microsoft Azure basierte Cloud Services werden in der Cloud letztlich in auf Windows Server basierenden virtuellen Maschinen (VMs) ausgeführt. Es hängt vom Aufbau des Cloud Service, der gewählten Instanzgrößen und VM Versionen ab, wie diese VMs von Microsoft Azure konfiguriert werden. Der Entwickler kann den Aufbau über eine Cloud-Service-Definition (csdef) und eine Cloud-Service-Konfiguration (cscfg) bestimmen. Im Deploymentpaket, welches von Visual Studio, Eclipse oder Kommandozeilentools erstellt werden kann, befinden sich dann alle zur Ausführung der Anwendung benötigten Komponenten (Anwendungscode, Libraries, Frameworks, Serversysteme etc.). Der Rest wird von Microsoft Azure übernommen. Wird die Zahl der Instanzen (durch Änderung der Konfiguration oder durch Nutzung der AutoScaleFunktion) zur Laufzeit geändert, werden entsprechend Instanzen automatisch heruntergefahren bzw. zusätzliche Instanzen provisioniert und der vorgeschaltete Loadbalancer passend umkonfiguriert. Der administrative Aufwand für den Nutzer beschränkt sich somit auf ein Minimum. Die Kosten für den Betrieb werden pro Stunde angesetzt. Werden neue virtuelle Maschinen erzeugt (z.B. bei einem größeren Patch oder bei Hardware-Ausfall), so wird ihr Zustand auf den Deployment-Zeitpunkt zurückgesetzt, d.h. die virtuelle Maschine wird aus einem BasisImage und dem Deployment-Paket erzeugt. Anders als bei Virtual Machines sind die virtuellen Maschinen von Cloud Services nicht persistent. In Cloud Services ausgeführte Anwendungen sollten ihren Zustand also außerhalb der virtuellen Maschinen (z.B. in Microsoft Azure Storage oder SQL Database) speichern und die Laufwerke innerhalb der virtuellen Maschinen nur für Caching-Zwecke nutzen. http://azure.microsoft.com/de-de/services/cloud-services/ 2.3 Service Fabric - Microservices-basierte Apps Die Service Fabric ist das neueste Mitglied in der Familie der Compute Services. Derzeit nur angekündigt, wird dieser Dienst die vierte Option zur Umsetzung Cloud-basierter Anwendungen in Azure (neben App Service, Cloud Services und Virtual Machines). Apps, die für die Service Fabric geschrieben werden, unterscheiden sich hinsichtlich Aufbau und Deployment von den Anwendungen der anderen Compute-Betriebsarten. Bei der Service Fabric können Anwendungen aus sogenannten Micro-Services aufgebaut sein, die dynamisch installiert und auf 12 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH einen Pool bereitgestellter virtueller Maschinen verteilt werden können. Dabei können sich die Instanzen eines Micro-Service die Ressourcen mit anderen Micro-Service teilen, d.h. auf einer virtuellen Maschine kann mehr als eine Micro-Service-Instanz ausgeführt werden. Vorteil gegenüber den anderen Ausführungsoptionen ist eine deutlich flexiblere Ressourcen-Zuteilung und bessere Auslastung der Maschinen. Anwendungen können flexibler, nämlich auf MicroService-Ebene skalieren. So können einzelne Funktionen in Micro-Services verpackt und dann sehr individuell skaliert werden (wenn z.B. nur bei einer bestimmten Anwendungsfunktion eine Lastspitze auftritt). Allerdings müssen Anwendungen ganz speziell für die Azure Service Fabric geschrieben sein. http://azure.microsoft.com/de-de/documentation/services/service-fabric/ 2.4 Container Service – Cluster für ContainerDeployments Mit Hilfe des Azure Container Service lassen sich auf Knopfdurck Cluster von virtuellen Maschinen erstellen, auf denen verschiedene Orchestrierungstechnologien für Container-Deployments vorinstalliert sind. Hierzu stehen DC/OS, Docker Swarm oder Kubernetes zur Auswahl. Die Cluster halten sich dabei an den jeweiligen Standard, so dass Deployment, Überwachung und Management mit den gewohnten Werkzeugen (z.B. Docker Clients) erfolgen können. Bestehende Container können so problemlos aus einer lokalen Umgebung in die Cloud migriert werden. Die Azure Container Registry bietet in diesem Zusammenhang die Möglichkeit ContainerImages zu speicher und zu verwalten. Container können so leicht vorgehalten und bei Bedarf in einem Cluster zur Ausführung gebracht werden. https://docs.microsoft.com/de-de/azure/container-service/ 2.5 Virtual Machines - Betrieb virtueller Maschinen in der Cloud Virtual Machines bringen das IaaS-Element in Microsoft Azure ein. Sie erlauben den Betrieb selbst erstellter oder von Microsoft bereitgestellter virtueller Maschinen auf Microsoft Azure. Diese werden minutengenau abgerechnet. Zur Bereitstellung einer Virtual Machine ist letztlich nur die Festlegung einer VHD (hier werden Standard-VHDs eingesetzt), auf deren Basis der Bootvorgang ablaufen soll, die VM-Größe sowie – abhängig von der gewählten VHD – ein paar wenige Konfigurationsparameter (z.B. Administratorkennung, DNS-Name) erforderlich. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 13 Die in den virtuellen Maschinen eingesetzten Festplattenlaufwerke werden im Storage als Page Blobs persistiert. Damit bleiben alle Inhalte erhalten, sollte eine virtuelle Maschine einem ReImage unterzogen werden (z.B. bei Hardware-Ausfall). Für die Inhalte gelten die gleichen Regeln für Failover (3-fach-Speicherung aller Inhalte, optionale Geo-Replikation in ein entferntes Rechenzentrum) wie für alle anderen Inhalte des Blob Storage. Da von Microsoft Azure Standard-VHDs genutzt werden, können sowohl bestehende VMs aus einer lokalen Hyper-V-Umgebung in die Cloud migriert und als Virtual Machine ausgeführt werden, als auch umgekehrt VHDs aus Microsoft Azure heruntergeladen und in einer entsprechenden Hyper-V-Umgebung lokal ausgeführt werden. Als Gast-Betriebssysteme für Virtual Machines werden sowohl verschiedene Windows Server Varianten als auch ausgewählte Linux-Distributionen unterstützt. Ebenfalls unterstützt werden einige Serveranwendungen wie SQL Server, SharePoint Server, BizTalk Server und Active Directory. Durch Kooperation mit Oracle werden auch Anwendungen aus dem Oracle-Technologieportfolio (WebLogic, Java, Oracle DB, …) unterstützt. Es ist möglich, neue VHDs in einer lokalen Hyper-V-Umgebung zu erzeugen, nach Microsoft Azure zu laden und von den VHDs neue Virtual Machines zu booten. Daneben können auch bereits vorgefertigte mit entsprechender Serversoftware bestückte Images aus einer VM Gallery ausgewählt und gestartet werden. Im sogenannten VM Depot hält MS Open Tech diverse mit Open-Source-Stacks bestückte VM Images vor, die dann leicht nach Azure importiert und dort ausgeführt werden können. Damit ist es möglich, wichtige Teile der Serverumgebungen eines eigenen Rechenzentrums ohne Änderung nach Microsoft Azure zu migrieren. Die minutengenaue Abrechnung macht dieses Ausführungsmodell auch für die Bereitstellung von Test- oder Demo-Umgebungen interessant, wo Infrastruktur oft nur temporär benötigt wird. Wie die anderen Ausführungsmodelle können auch Virtual Machines in Kombination mit anderen Azure Services genutzt werden. So kann eine in einer VM ausgeführte Anwendung beispielsweise problemlos Microsoft Azure Storage oder SQL Database nutzen oder Benutzerauthentifizierung über den Azure Active Directory abwickeln. Besonders interessant ist die Kombination mit dem Virtual Network (siehe 8.1): Durch die Möglichkeit ein lokale und CloudVMs umspannendes virtuelles Netzwerk mit gemeinsamen Ipv4-Adressraum und entsprechenden Routing Tabellen einzurichten, können virtuelle Maschinen flexibel zwischen der Cloud und einem lokalen Rechenzentrum hin- und hergeschoben werden ohne dass dies aus Netzwerksicht Auswirkungen auf die anderen VMs hat. http://azure.microsoft.com/de-de/services/virtual-machines/ 14 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 2.6 Azure Batch – Batch-Verarbeitung Die automatisierte Ausführung von größeren Berechnungsprozessen (z.B. für mathematische Berechnungen, Rendering von Videos, Datenauswertungen, …) ist normalerweise mit einigen Herausforderungen verbunden: die temporäre Bereitstellung ausreichender Rechenkapazität, Verteilung der Berechnungslogik und zugehöriger Daten sind in der klassischen IT schwer bis überhaupt nicht zu realisieren. Azure Batch kann diese Aufgaben übernehmen und so die Möglichkeiten der Batch-Verarbeitung jedem Azure-Anwender zugänglich machen. Der Service stellt die jeweils benötigten Cluster-Umgebungen bereit, verteilt die per EXE-Datei oder Skript bereitgestellte Berechnungslogik, steuert die Ausführung und gibt die Rechenressourcen nach Beendigung wieder frei, so dass nur genau die benötigten Ressourcen abgerechnet werden. http://azure.microsoft.com/de-de/services/batch/ 2.7 Mobile Engagement – Verwaltung mobiler Apps Mit Mobile Apps und den Vorlagen für Clients auf verschiedenen Plattformen können mobile Anwendungen recht schnell und effizient umgesetzt werden. Während des Betriebs dieser Anwendungen ist häufig von Interesse, welche Funktionen dieser Anwendungen häufig genutzt werden, wo Probleme auftreten etc. Mobile Engagement ermöglicht einen Zugriff auf derartige Informationen über ein Dashboard. Über dieses ist es auch möglich, Nachrichten an Nutzer zu verschicken, um beispielsweise Kampangnen-bezogene Informationen zu verteilen. http://azure.microsoft.com/de-de/services/mobile-engagement/ 2.8 Notification Hubs - Push-Benachrichtigungen an mobile Plattformen Die Möglichkeit, gezielt, schnell und einfach Push Notifications an eine große Zahl von unterschiedlichen Clients verschicken zu können, stellt eine große Herausforderung in modernen, mobilen Anwendungsszenarien dar. Notification Hubs erlauben es, mit einem einzigen APIAufruf Nachrichten an Clients unterschiedlicher Plattformen (Windows Store, Windows Phone 8, iOS, Android) zu verschicken. Als Adressat können dabei einzelne User (die ggf. mehrere Geräte besitzen), Gruppen von Usern oder alle Nutzer zugehöriger Client-Apps bestimmt werden. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 15 Damit können beispielsweise Nachrichtenportale an ihre Leser aktuelle Neuigkeiten thematisch zielgerichtet verschicken oder Event-Seiten Aktualisierungen zum Tagesverlauf verschicken. http://azure.microsoft.com/de-de/services/notification-hubs/ 2.9 API Management Anwendungslogik wird häufig nicht über eine endbenutzertaugliche Oberfläche, sondern als API bereitgestellt. API Management kann bei der Vermarktung einer API helfen. Abb. 2-2 API Management Dazu können bereitgestellte APIs vom Anbieter der API über ein Publisher Portal unter anderem zu Produkten paketiert, mit Berechtigungen versehen, duch Konvertierung von Ein- und Ausgabewerten ergänzt, mit produktspezifischen SLAs versehen werden. Entwickler, die diese APIs nutzen wollen, erhalten über ein Developer Portal Zugriff auf die APIs und zugehörige Dokumentation. Das Portal erzeugt für verschiedene Programmiersprachen Aufruf-Code. Die Nutzung von APIs erfolgt über ein API Gateway, welches die Aufrufe überwacht, Sicherheit und Quotas sicherstellt, Aufrufe auswertet und ggf. entsprechende Informationen an die Abrechnungssysteme leitet. Die bereitgestellte API kann dabei auf Azure oder auch extern betrieben werden. http://azure.microsoft.com/de-de/services/api-management/ 16 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 3 Speicherung von Daten auf Microsoft Azure Sichere Datenspeicherung ist eine zentrale Anforderung in nahezu jeder Anwendung. Eine Möglichkeit zur Speicherung von Daten wurde bereits in Abschnitt 2.3 vorgestellt: Speicherung in Virtual Machines. Dies kann in den Laufwerken der Virtual Machine, einem vorkonfiguriertem SQL Server oder auch in beliebigen anderen Speichersystem (auch Non-SQL-Systeme wie MongoDB, Cassandra etc.) erfolgen, welches in einer Virtual Machine betrieben wird. Durch die Persistierung der Festplatten in Blob Storage sind die Daten sicher abgelegt. Microsoft Azure stellt darüber hinaus auch verschiedene Speichertypen als echte Cloud Services zur Verfügung. Das Management dieser Speicher wird weitestgehend durch Microsoft Azure übernommen. Für relationale Datenspeicherung gibt es SQL Database, für Non-SQLSpeicherung semi-strukturierter Daten gibt es DocumentDB und Table Storage, für große Binärdaten (Dokumente, Videos, Musik, statische Webseiteninhalte) gibt es Blob Storage und als persistentes Dateisystem stehen Azure Disks zur Verfügung. Folgende Tabelle gibt einen Überblick über die verschiedenen Speicheroptionen. Relational PaaS Document SQL Database DocumentDB Key-Value Table Storage Data Lake • Voll gemanaged SQL DW HBase (HDIinsight) • Skalierbar IaaS SQL Server Mongo DB Cassandra • Betrieb in VMs Oracle … … • Marketplace MySQL … Tabellen Objekte Key-Value Schema On write Nein Nein Redundanz Blobs File Storage Blob Storage Disks HBase (Hadoop) flexibel On read Nein Nein RESTful SMB RESTful Ja, 3-fach, Geo-Redundanz optional SQL SQL RESTful MongoDB Use Cases Files … Informationstyp Schnittstelle Distributed Relationale Semi-strukt. Semi-strukt. Speicherung JSON-Objekte Entities mit eiund Verarbeinem Schlüssel tung (SQL) Flexibel (Data Lake mit U-SQL) Verteilte, fle- Ablage von Binärdaten xible Speiche- (Dokumente, Bilder, Videos rung großer etc.) Datenmengen (Big Data) Tabelle 2: Gegenüberstellung der Speicheroptionen unter Microsoft Azure Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 17 Alle diese Speichertypen (bis auf das lokale Dateisystem einer VM) legen Daten dreifach auf verteilten Speichermedien ab. Zugriff ist nicht nur über Anwendungen möglich, die auf Microsoft Azure betrieben werden, sondern auch von außerhalb, d.h. beispielsweise von einer lokal ausgeführten Rich-Client-PC-Anwendung oder einer Smartphone App. Es ist möglich, die Inhalte mit Zugriffsschutz zu versehen. Auch eine zeitliche Zugangsbeschränkung ist möglich. 3.1 Relationale Datenspeicherung 3.1.1 Relationale Datenbanksysteme in Virtual Machines Ein in einer Virtual Machine betriebener SQL Server (bzw. ein beliebiges anderes Datenbanksystem) ist eine naheliegende Möglichkeit, relationale Datenspeicherung und -verarbeitung in Microsoft Azure durchzuführen. Konfiguration und Administration des Servers verbleiben dabei beim Nutzer. Er bleibt also in der Verantwortung, den Server zu verwalten, zu konfigurieren, Updates einzuspielen etc. Einflussmöglichkeiten auf den Betrieb des Servers sind somit maximal. Auch die Kompatibilität zu einem lokal ausgeführten System ist gegeben. Die Aufwände zum Betrieb sind allerdings auch vergleichbar mit denen zum Betrieb eines lokalen Systems. 3.1.2 SQL Database - RDBMS-as-a-Service SQL Database bringt relationale Datenbanktechnologie als echten Cloud Dienst in die Microsoft Azure Plattform ein. Dazu gehören eine relationale Datenbank und ein Synchronisierungsdienst, mit dem mehrere Datenbanken inhaltlich abgeglichen werden können. Der Administrationsaufwand beschränkt sich auf ein Minimum, da dieser weitestgehend von Microsoft Azure übernommen wird. Mit SQL Database verfügt Microsoft Azure über eine echte relationale Datenbank, die schnittstellenkompatibel zu SQL Server ist. Durch diese Kompatibilität ist es möglich, SQL Database über bekannte Technologien (z.B. Entity Framework, ADO.NET, JDBC) und Werkzeuge (z.B. SQL Server Management Studio) zuzugreifen. In vielen Fällen reicht es aus, die Adressierung der anzusprechenden Datenbank über den Connection String zu einer entsprechenden Cloud Datenbank vorzunehmen. Funktional bildet SQL Database eine Teilmenge von SQL Server ab. Zur Verfügung stehen die bekannten Datenbankkonstrukte wie Tabellen, Views, Joins, atomare Transaktionen, Datenintegrität bei konkurrierenden Zugriffen etc. Ebenso wird die SQL Sicherheitsarchitektur mit der Möglichkeit unterstützt, Benutzer anzulegen und diesen Berechtigungen zu vergeben. Im Unterschied zu SQL Server (auch einem SQL Server, der in einer Virtual Machine betrieben wird) handelt es sich bei SQL Database um einen echten Cloud Dienst. Das Management der Umgebung (Konfiguration von Hardware und Systemsoftware, Überwachung, Einspielen von 18 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Patches etc.) wird vollständig durch Microsoft Azure übernommen. Das Einrichten eines neuen Datenbankservers mit einer zugehörigen Datenbank ist eine Frage von Sekunden. Entsprechend schnell kann eine Datenbank wieder gelöscht werden. Die Abrechnung erfolgt entsprechend der Bereitstellungsdauer und der Datenbankgröße. SQL Database wird in drei Editionen angeboten: Basic, Standard und Premium. Basic eignet sich als kostengünstige Alternative für geringere Lasten und Datenbankgrößen bis 2 GB, Standard bietet höhere Transaktionsleistungen für Datenbanken bis 250 GB und Premium garantiert höchste Performanz- und Transaktionsleistung bei Datenbanken bis 500 GB. Zwischen den Editionen kann zur Laufzeit einfach gewechselt werden, so dass auf Änderungen in den Lastanforderungen reagiert werden kann. Skalierbarkeit über die Grenzen einer einzelnen SQL Database Instanz hinaus kann mit Elastic Scale für Azure SQL Database erzielt werden. Mit diesem Dienst wird die Skalierbarkeit der Datenschicht in Cloud Anwendungen deutlich vereinfacht. Letztlich handelt es sich um einen Sharding Mechanismus, über den Anwendungen auf einen Pool von Datenbanken, auf den der Datenbestand verteilt ist, zugreifen können. Über einen „Contract“ können Entwickler Strategien zu definieren, die festlegen, welche Daten letztlich in welcher Datenbank gespeichert werden. Diese erlaubt es dem Service automatisch zu bestimmen, welche Datenbank für eine konkrete Transaktion angesprochen werden soll. Abfragen über mehrere Datenbanken hinweg sind ebenfalls möglich. http://azure.microsoft.com/de-de/services/sql-database/ 3.1.3 SQL Server Stretch Database – Erweiterung einer lokalen Datenbank in die Cloud Lokal betriebene Datenbanken sind immer durch den bereitgestellten Datenspeicher begrenzt. Mit SQL Server Stretch Database kann zusätzlich zum lokalen Speicher auch Speicher in Azure verwendet werden. Transaktionsdaten können dynamisch, über Richtlinien gesteuert von SQL Server 2016 nach Azure verschoben werden, wodurch der Datenbank kostengünstiger, quasi unbegrenzter Speicher zur Verfügung steht. Client-Anwendungen, die auf die Daten zugreifen, müssen hierbei nicht geändert werden. Für diese ist nicht erkennbar, ob die zugegriffenen Daten lokal oder in der Cloud gespeichert sind. https://docs.microsoft.com/de-de/azure/sql-server-stretch-database/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 19 3.2 NoSQL-Datenspeicherung Neben relationaler, SQL-basierter Datenspeicherung, bietet Microsoft Azure auch Datendienste, die eine NoSQL-basierte Speicherung ermöglichen: DocumentDB als dokumentenbasierte Datenbank mit nativer Unterstützung für JSON und JavaScript, Table Storage zur Ablage semi-strukturierter Daten in tabellenartig aufgebauten Entity-Sets, Queue Storage3 zum Nachrichtenversand zwischen lose, d.h. asynchron gekoppelten Kommunikationspartnern und Blob Storage zur Ablage und Verarbeitung großer Binärdaten (BLOB = binary large object). In allen Fällen werden die Daten hochverfügbar abgelegt (hierzu werden Daten automatisch 3-fach gespeichert, Geo-Replikation ist möglich) und stehen über RESTful Schnittstellen zur Verfügung. Ein Sonderfall stellen Microsoft Azure Disks dar: sie stellen auf Basis von Blob Storage ein NTFS-Dateisystem mit entsprechender Filesystemschnittelle zur Verfügung. Damit kann in Microsoft Azure Virtual Machines ein persistentes Dateisystem genutzt werden. 3.2.1 JSON-Objektdatenbank DocumentDB DocumentDB ist bezüglich der zu speichernden Daten zwischen SQL Database und Table Storage angesiedelt. Formal eine schemalose NoSQL-Datenbank erlaubt DocumentDB die Speicherung komplexerer JSON-basierter Objekte. Diese werden automatisch von der Datenbank indiziert und können mit einer an SQL angelehnten Abfragesyntax ohne Angabe eines Schemas oder Sekundärindizes zugegriffen werden. Durch die native Unterstützung von JavaScript und JSON eignet sich DocumentDB für die Entwicklung von Anwendungen, die auf diesen Technologien basieren und die entsprechende Objete speichern müssen. http://azure.microsoft.com/de-de/services/documentdb/ 3.2.2 Table Storage Microsoft Azure Table Storage ist eine weitere NoSQL-Datenbank der Microsoft Azure Plattform. Anders, als der Name suggeriert, handelt es sich also nicht um ein tabellenbasiertes, relationales Datenbanksystem, sondern um einen Speicher für die Ablage großer semi-strukturierter Datenbestände in der Cloud, für deren Zugriff ein Primärschlüssel ausreichend ist, und keine aufwändigen relationalen Datenbankoperationen erforderlich sind. Über einen einzigen Schlüssel (bestehend aus den zwei Pflicht-Attributen Partition Key und Row Key) können Entitys ausgelesen werden, die ihrerseits aus frei definierbaren, typisierten Propertys (eine Property besteht dabei aus einem Namen, einem Typen (z.B. String, Integer, ...) und einem Wert) bestehen. 3 Queue Storage wird im Kontext der Anwendungsintegration in Abschnitt 7.2.1 behandelt. 20 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Über die Primärschlüsselwerte kann Microsoft Azure Einträge zu Partitionen zusammenfassen und diese zur Performance-Optimierung automatisch auf verschiedene Speichermedien verteilen. Die Daten werden dabei automatisch 3-fach, hoch-verfügbar abgelegt, und können über RESTful-Schnittstellen zugegriffen werden. Als Alternative für den Zugriff stehen unter anderem für .NET, Java und PHP Klassenbibliotheken zur Verfügung. Wenngleich Table Storage gegenüber SQL Database weniger Funktionalität im Bereich Datenmanagement und komplexen Zugriffsoperationen hat, bietet er eine kostengünstige Ablage semi-strukturierter Daten und ermöglicht einen effizienten, hochperformanten Zugriff auf diese Daten. Dabei werden Datenbestände von bis zu 500 Terabytes pro Storage Account unterstützt. http://azure.microsoft.com/de-de/documentation/articles/ storage-dotnet-how-to-use-tables/ 3.2.3 Blob Storage Microsoft Azure Blob Storage erlaubt die sichere, hoch-verfügbare Speicherung großer, unstrukturierter Binärdaten (BLOB = binary large object) in Microsoft Azure. Ein einzelner Blob kann dabei bis zu 1 Terabyte Größe haben. Inhalte werden automatisch 3-fach gespeichert. Darüber hinaus ist Geo-Replikation sowie die Möglichkeit, Blob-Inhalte über das Content Delivery Network (siehe 6.2) weltweit verteilt zu cachen, optional verfügbar. Es stehen zwei Arten von Blobs zur Verfügung: Block Blobs und Page Blobs. Erstere eignen sich für sequentiellen Datenupload und -download, letztere bieten wahlfreien Zugriff auf Blob-Abschnitte. Blobs werden innerhalb von Containern abgelegt. Sowohl auf Conainer- als auch auf BlobEbene können Zugriffsrechte vergeben werden. Dabei kann das betreffende Element als öffentlich (Zugriff ohne Authentifizierung möglich) oder privat deklariert sein. Über die Erzeugung von Shared Access Signatures können Zugriffe zeitlich begrenzt auf entsprechend berechtigte Nutzer beschränkt werden. http://azure.microsoft.com/de-de/documentation/articles/ storage-dotnet-how-to-use-blobs/ 3.3 Dateisystem-basierte Speicherdienste 3.3.1 SMB-2.1-Fileshares mit File Service Mit Hilfe des File Service können File Shares über das Standard-SMB-2.1-Protokoll bereitgestellt werden. Damit können Azure-basierte Anwendungen bzw. Ausführungs-Instanzen leicht untereinander Daten austauschen. Eine Migration bestehender Anwendungen in die Cloud wird dadurch deutlich vereinfacht, da mit SMB-2.1 ein Protokoll weiterverwendet werden kann, das in lokalen Ausführungsumgebungen häufig zum Einsatz kommt. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 21 3.3.2 Virtuelle Festplatten in Virtual Machines: Disks Mit Microsoft Azure Disks können aus Microsoft Azure Virtual Machines Daten in ein persistentes Dateisystem gespeichert werden. Eine in einem Microsoft Azure Page Blob abgelegte VHD (virtual hard disk) dient dabei als Speichermedium. Dort abgelegte Daten werden – wie bei Page Blobs üblich – 3-fach abgelegt und sind somit ausfallsicher gespeichert. Microsoft Azure Disks können zur Laufzeit an Virtual Machines angehängt bzw. abgelöst werden. 3.4 Caching Anwendungen müssen häufig wiederholt auf Daten in entfernten Quellen (z.B. SQL Database, Microsoft Azure Storage, ...) zugreifen. Zur Performance-Steigerung kann es sinnvoll sein, diese nach dem erstmaligen Auslesen in einem näher gelegenen, performanteren Speicher zwischenzuspeichern, um Folgezugriffe schneller abwickeln zu können. Microsoft Azure stellt zu diesem Zweck vier Mechanismen zur Verfügung: Redis Cache und Managed Cache Service als zentral bereitgestellt Caching Services, In-Role Caching als Möglichkeit, ungenutzte Ressourcen innerhalb der Komponenten oder auch dedizierte Instanzen als Cache zu verwenden und das Content Delivery Network, das Inhalte aus Blob Storage weltweit verteilt zwischenspeichern kann. http://azure.microsoft.com/de-de/services/cache/ 3.4.1 Azure Redis Cache Redis Cache ist ein auf dem Open-Source-basierten Redis Cache Framework setzender, von Microsoft verwalteter und zentral bereitgestellter Caching Service. Dieser kann aus jedem Ausführungsmodell (Websites, Cloud Services, Virtual Machines) heraus angesprochen und genutzt werden und stellt die Empfehlung für alle neu zu entwickelnden Cloud-basierten Anwendungen dar, die Cache-Bedarf haben. http://azure.microsoft.com/de-de/documentation/services/cache/#redis 3.4.2 Managed Cache Service Der Managed Cache Service stellt einen zentral nutzbaren In-Memory-Cache zur Verfügung. Im Gegensatz zum In-Role Cache, der Cloud Services vorbehalten ist, kann der Cache Service wie der Redis Cache aus allen Ausführungsmodellen heraus angesprochen und genutzt werden. Der Managed Cache Service wird nur noch aus Gründen der Kompatibilität zu älteren Anwendungen angeboten. Für neue Projekte sollte Redis-Cache gewählt werden. http://azure.microsoft.com/de-de/documentation/services/cache/#managed 22 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 3.4.3 In-Role Cache Der In-Role Cache verlagert Caching Funktionalität in die Instanzen eines Cloud Service selbst, d.h. die zur Zwischenspeicherung genutzten Speicherressourcen befinden sich in zur Anwendungsausführung genutzten VM-Instanzen (wobei hier prozentuale Ressourcenanteile für das Caching reserviert werden) oder in speziell für Caching-Zwecke eingesetzten VM-Instanzen. Das Caching-Framework stellt sicher, dass sich die Speicherinhalte der Caching-Instanzen untereinander synchronisieren. Durch eine entsprechende Konfiguration der betreffenden Anwendung kann dieser Cache auch zur Zwischenspeicherung einer User-Session verwendet werden. http://azure.microsoft.com/de-de/documentation/services/cache/#in-role 3.5 Hybride Datenablage mit StorSimple StorSimple stellt eine hybride Speicherlösung dar. Eine im eigenen Rechenzentrum betriebene Appliance bietet lokale Datenspeicher an. Die gespeicherten Daten werden (auf Wunsch verschlüsselt) in Microsoft Azure Storage repliziert. Durch die Sicherheitsmechanismen im Azure Storage (3-fach-Speicherung, Geo-Replikation, …) werden die Daten entsprechend sicher aufbewahrt. Die Notwendigkeit zum zusätzlichen Backup entfällt. http://www.microsoft.com/de-de/server-cloud/products/storsimple/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 23 4 Analytics- und IoT Services Azure enthält eine Reihe an Services, die den kompletten IoT-Analytics-Workflow von der Anbindung von IoT-Geräte, der Datensammlung und -speicherung, über die Auswertung der Daten bis hin zur Visualisierung bzw. Weiterleitung an nachgelagerte Systeme unterstützen. Abb. 4-1 skizziert das Zusammenspiel dieser Services. Abb. 4-1 Analytics- und IoT-Services in Microsoft Azure IoT Hub und Event Hubs sind zwei Dienste, die große Mengen an Eingangsdaten entgegennehmen und nachgelagerten Systemen gepuffert zur Verfügung stellen können. Der IoT Hub übernimmt dabei auch die Verwaltung angeschlossener IoT Geräte. Für eine Auswertung stehen Services zur Verarbeitung im Batch Betrieb, zur Analyse bereits während des Eintreffens der Daten (Hot Path Analytics) und zur Ausführung von Business Logic (Hot Path Business Logic) zur Verfügung. 4.1 IoT Hub In IoT Szenarien müssen in der Regel eine Vielzahl an Devices angebunden und verwaltet werden. IoT Hub ermöglicht die Registrierung von Geräten und Sensoren (so dass diese dann nach entsprechender Authentifizierung mit dem IoT Hub kommunizieren können) sowie eine bidirektionale Kommuniktion mit diesen Geräten, d.h. er kann sowohl Nachrichten verarbeiten, die 24 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH von den Geräten gesendet werden (und diese z.B. an Stream Analytics weiterreichen), als auch Nachrichten an die Geräte schicken, dort Wartungsarbeiten veranlassen, Updates einspielen, Operationen aufrufen etc. https://azure.microsoft.com/de-de/services/iot-hub/ 4.2 Event Hubs Im Kontext des „Internets der Dinge“ ist es häufig erforderlich, Datenströme, ausgehend von verschiedenen Quellen wie Webseiten, Apps, Sensoren und sonstigen Geräten in Echtzeit zu verarbeiten. Event Hubs ist eine hochgradig, skalierbare Datendrehscheibe, die Millionen von Ereignissen pro Sekunde verarbeiten kann. Nachrichten werden dabei pro Datenquelle erfasst und in einem partitionierten Speicherbereich zwischengespeichert. Dieser Speicher macht dan die ein- oder mehrmalige Verarbeitung der Daten über parallel geschaltete Empfänger möglich. http://azure.microsoft.com/de-de/services/event-hubs/ 4.3 Stream Analytics Analyse und Auswertung von Daten, die in einem festen Speicher (“in Ruhe“) abgelegt sind, kann beispielsweise über HDInsight erfolgen. Im Bereich von IoT-Szenarien wird allerdings häufig eine Auswertung von Datenströmen, also Daten „in Bewegung“, benötigt. Stream Analytics deckt genau diese Anforderung ab: damit ist eine Analyse von Datenströmen in Echtzeit möglich, d.h. Datenströme können überwacht, Auffälligkeiten der Daten im laufenden Betrieb erkannt und gemeldet werden. Abfragen auf den Datenströmen können in einer SQL-basierten Sprache formuliert werden. Datenbank-Spezialisten finden also eine vertraute Technologie zur Analyse von Datenströmen vor. http://azure.microsoft.com/de-de/services/stream-analytics/ 4.4 Data Factory Datenverarbeitung in Unternehmen ist heutzutage gekennzeichnet von heterogenen Datenspeichern (SQL, NoSQL, unstrukturierte Daten etc.) und –verarbeitungskomponenten (Datenbanken, BigData-Prozessoren etc.). Daten durchlaufen ein Unternehmen häufig komplexe Wege von der Erzeugung bzw. dem Empfang der Daten über verschiedene datenverarbeitende Komponenten bis hin zur Ablage bzw. Verteilung der Daten an unterschiedliche Empfänger. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 25 Mit Data Factory können lokale Daten wie solche aus SQL Server zusammen mit Cloud-bezogene Daten aus Azure SQL Database, Blobs und Tables verarbeitet werden. Diese Datenverarbeitungsströme können über einfache, hochverfügbare Datenpipelines erstellt, verarbeitet und überwacht werden. Es können Datenquellen und Datenempfänger definiert werden und die Bewegung der Daten im Unternehmen nachverfolgt und von zentraler Stelle aus überwacht werden. http://azure.microsoft.com/de-de/services/data-factory/ 4.5 Azure Data Lake Azure Data Lake umfasst drei Services: Azure Data Lake Store, Azure Data Lake Analytics und HDInsight (siehe 4.6). 4.5.1 Azure Data Lake Store Azure Data Lake Store ist ein vollautomatisch verwaltetes Hadoop-Dateisystem (HDFS). Darin können quasi beliebige Mengen an Daten unterschiedlicher Art (unstrukturiert, strukturiert) in ihrem nativen Format abgelegt werden. Azure AD Integration ermöglicht dabei eine detaillierte Kontrolle von Zugriffen. Die Zugriffe selbst sind dabei auf hohen Durchsatz und geringe Latenz optimiert. https://azure.microsoft.com/de-de/services/data-lake-store/ 4.5.2 Azure Data Lake Analytics Azure Data Lake Analytics setzt auf den Azure Data Lake Store auf und ermöglicht es, die dort abgelegten Daten flexibel auszuwerten. Als Abfragesprache steht mit U-SQL eine erweiterbare, an SQL angelehnte Sprache zur Verfügung. Erweiterungen in Form von User Defined Functions können in C# geschrieben werden. Die zur Datenauswertung benötigten Compute Ressourcen werden nur bei Bedarf bereitgestellt und können je nach Analyse-Job unterschiedlich umfangreich ausgestaltet werden. Kosten fallen somit nur dann an, wenn tatsächlich Auswertungen erstellt werden. https://azure.microsoft.com/de-de/services/data-lake-analytics/ 26 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 4.6 HDInsight Neben der reinen Datenspeicherung bietet Microsoft Azure auch Möglichkeiten zur Auswertung und Aufbereitung von Daten, die in Azure abgelegt sind. Durch die flexible, unkomplizierte Bereitstellung auch größerer Rechen- und Speicherressourcen, die nach einer Datenauswertung wieder deaktiviert werden können, ist Azure die ideale Umgebung für derartig weitergehende Datenverarbeitung. HD Insight ermöglicht die Analyse großer Datenbestände mit Hilfe von Hadoop, einem OpenSource-Framework, welches sich zur Berechnung sogenannter „Big Data Probleme“, d.h. Auswertungen auf Datenbeständen, die nicht mehr in einer relationalen Datenbank gespeichert werden können (z.B., weil sie zu groß sind oder weil sie nicht relational strukturiert sind), großer Beliebtheit erfreut. Microsoft Azure ermöglicht in diesem Kontext eine automatische Provisionierung von Hadoop-VMs, die Verteilung von Daten und Berechnungsalgorithmen etc. Neben der effizienten Berechnung von Map Reduce Algorithmen werden auch weitere Konzepte wie Hive4 und Pig5 unterstützt. http://azure.microsoft.com/de-de/services/hdinsight/ 4.7 Machine Learning Mit Machine Learning können auf Basis bestehender Datensätze Vorhersagen für weitere Daten getroffen werden. Hierzu können vorhandene Daten aufgeteilt werden in Trainings- und Kontrolldaten. Aus vorgefertigter oder selbst mittels der Programmiersprache R erstellter Analysealgorithmen können Prognosemodelle erstellt werden. Diese können mit den Trainingsdaten trainiert werden. Die erzielte Prognosegenauigkeit der Modelle kann dann mit den Kontrolldaten überprüft werden. Die Modelle können dann wiederum als Webservice bereitgestellt werden. All dies ist in einer integrierten, grafischen Entwicklungsumgebung möglich, wo per Drag & Drop Datenflussdiagramme aus Daten und Prozesskomponenten erstellt und konfiguriert werden können. http://azure.microsoft.com/de-de/services/machine-learning/ 4 Hive ist eine Data Warehouse Infrastruktur, die Datenaggregation und entsprechende Abfragen unterstützt. 5 Pig ist ein Framework zu Beschreibung und Ausführung paralleler Berechnungen. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 27 4.8 Azure Search Azure Search bietet eine als Service angebotene Such-Engine. Verschiedene Datenquellen können als Basis für die Suche konfiguriert werden. Hierzu können zugrundeliegende Bewertungsmodelle angepasst und damit Suchergebnisse an Geschäftsziele angepasst werden. Der Suchindex wird automatisch erstellt und aktualisiert. http://azure.microsoft.com/de-de/services/search/ 4.9 SQL Data Warehouse Mit SQL Data Warehouse lassen sich flexibel Data Warehouse Lösungen aufbauen, deren Ressourcen sich an den konkreten Datenauswertungsbedarf anpassen lassen. Dabei können Rechen- und Speicherdienste unabhängig voneinander skaliert werden. Somit können bei Beibehaltung der Speichersysteme (für relationale Daten oder nicht-relationalen Blob Storage) die Rechenressourcen erweitert, verringert oder auch angehalten werden. http://azure.microsoft.com/de-de/services/sql-data-warehouse/ 4.10 Azure Data Catalog Der Azure Data Catalog ist ein Verzeichnisdienst, in dem Datenquellen im Unternehmen registriert und auffindbar gemacht werden können. Verschiedene Mitarbeiter können Datenquellen registrieren, beschreiben, mit Metadaten versehen und die Datenquellen aus ihnen vertrauten Datenverarbeitungswerkzeugen via Data Catalog nutzen. http://azure.microsoft.com/de-de/services/data-catalog/ 4.11 Analysis Services Die Analysis Services bieten die Möglichkeit basierend auf den SQL Server Analysis Services tabellarische Modelle in der Cloud zu erstellen und darauf Analysen durchzuführen. Dabei werden DirectQuery, Partitionen, Sicherheit auf Zeilenebene, bidirektionale Beziehungen und Übersetzungen unterstützt. Die gesamte Funktionalität wird als Service bereitgestellt, d.h. es sind keine weiteren administrativen Aktivitäten erforderlich. https://docs.microsoft.com/de-de/azure/analysis-services/ 28 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 4.12 Cognitive Services Für eine effiziente Kommunikation ist in der Regel eine möglichst genaue Kenntnis des Kontexts, in dem die Interaktion stattfindet, entscheidend. Cognitive Services können aus verschiedenen vorliegenden Datenquellen Kontextinformationen extrahieren. Es handelt sich dabei um eine Sammlung von Programmierschnittstellen aus verschiedenen KI Bereichen (Bildanalyse, Spacherkennung etc.). Tabelle 3 listet die einzelnen Services mit einer Kurzbeschreibung auf. API Funktionalität (Erkennung von…) Textanalyse Language Unterstanding Intelligend Service (LUIS) Benutzerbefehle in gesprochener Sprache Text Analytics API Stimmungen (Tonalität) und Themen in Text Web Language Model API Statistische Aussagen zu Textpassagen Bing Spell Check API Rechtschreibung Translator Text API Übersetzung von Textbausteinen Spracherkennung Bing Speech API Text aus gesprochener Sprache Speaker Recognition API Sprecher in einer Spracheingabe Translator Speech API Echtzeit-Übersetzung gesprochener Sprache Bilderkennung Face API Gesichter in Bildeingabe Emotion API Emotionen abgebildeter Personen Computer Vision API Szenen- und Objekterkennung in Bildern Content Moderator Automatisierte Bild-, Text- und Videomoderation Suche Bing Search API Web-Suche mit Bing (Text, Bilder, Videos, Nachrichten) Bing Autosuggest API Vorschläge (“meinten Sie…”) in Web-Suche Wissen Recommendations API Empfehlungen Academic Knowledge API Semantische Suche Tabelle 3: Überblick über die Cognitive Services https://azure.microsoft.com/de-de/services/cognitive-services/ 4.13 Azure Bot Service Der Azure Bot Service stellt eine skalierbare Ausführungsumgebung für eigene Bots, die mit entsprechenden Vorlagen auf Basis des Microsoft Bot Frameworks entwickelt wurden. Damit Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 29 lassen sich interaktive Services erfassen, die – ggf. angereichert mit weiteren Diensten wie den Cognitive Services – eine intuitive Benutzerinteraktion ermöglichen, d.h. Benutzer können beispielsweise mit natürlicher Sprache mit einem Bot interagieren, wobei dieser sich an den Kommunikationskontext (z.B. erkannte Emotionen) anpassen kann. https://azure.microsoft.com/de-de/services/bot-service/ 4.14 Power BI Embedded Power BI Embedded ermöglicht die Einbettung von Daten-Visualisierungscontrols (Tabellen, Diagramme etc.) in eigene Anwendungen. Dies ermöglicht die Erstellung interaktiver Berichte und Dashboards in denen beispielsweise Ergebnisse diverser Datenquellen und Analyse-Jobs angezeigt werden. https://docs.microsoft.com/de-de/azure/power-bi-embedded/ 30 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 5 Sicherheit Azure-basierter Anwendungen Durch die Verlagerung von Daten und Anwendungslogik aus dem eigenen Rechenzentrum in die Cloud entsteht bei allen Beteiligten ein besonderes Sicherheitsbedürfnis. Die in der Cloud betriebenen Systeme müssen vor unberichtigten Zugriffen geschützt werden. Microsoft stellt über das Microsoft Azure Trust Center Informationen über Betrieb, Datenschutz, Sicherheit und Compliance der zugrundeliegenden Infrastruktur zur Verfügung, gibt Hinweise für die Erstellung sicherer, Azure-basierter Anwendungen und bietet mit Microsoft Azure Active Directory zentrale Bausteine für die Absicherung eigener Anwendungen in der Cloud. http://azure.microsoft.com/de-de/services/active-directory/ 5.1 Azure Active Directory Azure Active Directory ist ein im Vergleich zu Windows Server Active Directory von Grund auf neu konzipierter Dienst, der Authentifizierungs-, Verzeichnis und Domain Services speziell für Cloud Szenarien bereitstellt 5.1.1 Azure AD Verzeichnisdienst Der Azure Active Directory Verzeichnisdienst erlaubt die Speicherung von Benutzern und deren organisatorische Zugehörigkeiten. Über den Dienst können sich Benutzer anmelden. Sie erhalten dann ein entsprechendes Security-Token, das sie dann Anwendungen übergeben können, um ihre Benutzeridentität nachzuweisen. Azure erlaubt dabei auch eine Synchronisation von Inhalten mit einem lokal betriebenen Windows Server Active Directory. Das Microsoft Azure Active Directory ist dabei primär für den Einsatz im Rahmen Cloud-basierter Anwendungen (wie z.B. Office 365) konzipiert. Für den Zugriff auf Azure AD steht mit Azure AD Graph eine RESTful API zur Verfügung. Diese ermöglicht es, zu einem Benutzer die organisatorischen Zugehörigkeiten und Verbindungen zu anderen Benutzern – den Social Graph – auszulesen. 5.1.2 Azure AD B2B Azure AD B2B ermöglicht es, Benutzer aus einem fremden Azure AD Verzeichnis im eigenen Verzeichnis als „Gast“ anzulegen. Bei einer Authentifizierung delegiert das eigene AD den Prozess an das AD des Gastes. Dies ermöglicht die Zusammenarbeit mit Partner-Unternehmen, Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 31 die ihre Benutzer selbst im Partner-AD verwalten. Der Import kann direkt für einzelne User erfolgen oder über eine passend formatierte CSV-Datei für eine größere User-Gruppe. Die betreffenden User erhalten eine E-Mail, in der sie die Anlage als Gast bestätigen müssen. 5.1.3 Azure AD B2C Mit Azure AD B2C können externe Identity Provider in eigenen Anwendungen zur Benutzerauthentifizierung genutzt werden. Dieser Service eignet sich also dann, wenn die Benutzer nicht in der Anwendung selbst (z.B. über Microsoft Azure Active Directory) gespeichert werden sollen. Für Anwender hat dies den Vorteil, dass sie sich an einer Anwendung über bereits bestehende Credentials (z.B. Microsoft Account mit zugehörigem Passwort) an der Anwendung anmelden können. Folgende Identity Provider werden unterstützt: Microsoft Account, Google ID, Facebook ID und Amazon Accounts. 5.1.4 Multi-Faktor-Authentifizierung Für Szenarien mit erhöhten Sicherheitsanforderungen kann für User in Azure AD Multi-FaktorAuthentifizierung vorgegeben werden. Die betreffenden User müssen sich nach Anmeldung mit Benutzername und Passwort noch mit einem zweiten Faktor (Telefonanruf, Authentifizierungs-App, SMS) authentifizieren. 5.1.5 Azure AD Domain Services Azure AD Domain Services bieten die Funktionalität eines Domänencontrollers – als Service bereitgestellt. Die Funtionen umfassen unter anderem Domänenbeitritt, Gruppenrichtlinien, LDAP-, NTLM- und Kerberos-Authentifizierung. 5.2 Multi-Factor Authentication Softwareanwendungen bei denen ein hoher Sicherheitsstandard erreicht werden soll, arbeiten bei der Authentifizierung von Benutzern häufig mit sogenannter Multi-Faktor-Authentifizierung. Dabei kommt mehr als ein Mechanismus zur Verifikation eines Benutzers zum Einsatz. Mit Hilfe von Microsoft Azure Active Authentication kann ein solcher Authentifizierungsmechanismus umgesetzt werden. Dabei kann neben einer Passwort-basierten Authentifizierung auch eine mobile App, ein Telefonanruf oder eine SMS herangezogen werden. Sobald dies für einen Benutzer konfiguriert ist, muss dieser bei seiner nächsten Anmeldung im Active Directory entsprechende Mobilfunk-Telefonnummern hinterlegen. http://azure.microsoft.com/de-de/services/multi-factor-authentication/ 32 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 5.3 Key Vault Ein bewährtes Mittel zur Absicherung von Daten in der Cloud ist deren Verschlüsselung. Eine sichere Verwaltung der verwendeten Schlüssel ist dabei essenziell, um Daten in der Cloud wirklich zu schützen. Mit Key Vault können Schlüssel und geheime Schlüssel wie Kennwörter mit Schlüsseln verschlüsselt werden, die in HSMs (Hardware Security Modules) gespeichert sind. Zusätzliche Sicherheit wird gewährleistet, wenn eigne Schlüssel in HSMs importiert oder erzeugt werden, die über die Zertifizierungen FIPS 140-2 Level 2 sowie Common Criteria EAL4+ verfügen. Dadurch wird erreicht, dass die Schlüssel das HSM-System nicht verlassen. Mit Key Vault sind Schlüssel für Microsoft nicht sichtbar und können auch nicht extrahiert werden. http://azure.microsoft.com/de-de/services/key-vault/ 5.4 Azure Security Center Für eine sichere Nutzung von Azure ist es erforderlich einen Überblick über verschiedene Sicherheitseinstellungen, Policys und den Status der genutzten Ressourcen. Das Azure Security Center überwacht automatisch zentral gesetzte Sicherheitsregeln und gibt über ein Dashboard einen schnellen Überblick über die eigene Azure Umgebung. Für Erkannte Bedrohungen können Empfehlungen zur Behebung abgerufen werden. https://docs.microsoft.com/de-de/azure/security-center/ 5.5 Microsoft Azure Trust Center Das Microsoft Azure Trust Center stellt eine Sammlung von Informationen über den sicheren Betrieb von Microsoft Azure sowie den darauf ausgeführten Anwendungen und gespeicherten Daten dar. Hierzu gehören Beschreibungen zu Prozessen und Standards, die Sicherheit und Datenschutz sicherstellen und entsprechenden Zertifikaten, die dies von unabhängiger Seite bestätigen. http://azure.microsoft.com/de-de/support/trust-center/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 33 6 Medienverarbeitung und -verteilung 6.1 Media Services Die flexible und bei Bedarf weltweite Bereitstellung digitaler Inhalte ist eine große Stärke von Microsoft Azure. Dies trägt dem Wunsch Rechnung Audio- und Videoinhalte ablegen, konvertieren und an verschiedene Endgeräte flexibel ausliefern zu können. Microsoft Azure enthält hierzu die Microsoft Azure Media Services, die derartige Aufgaben zentral übernehmen können. Zu bereitgestellten Funktionalitäten gehören: • Upload von Mediendaten (die dann im Blob Storage abgelegt werden) • Codierung und Konvertierung von Videos in verschiedene Video- und Audio-Formate • Zugriffsschutz auf Mediendaten im Sinne von Digital Rights Management (DRM) • Schaltung von Werbung in Videostreams • Streaming von Videos (optimiert für verschiedene Endgeräte), bei Bedarf zeitgesteuert Wie die anderen Azure Services können auch Media Services mit Anwendungskomponenten zusammenarbeiten, die nicht notwendigerweise auch auf Microsoft Azure ausgeführt werden. Sie sind durchweg über RESTful Schnittstellen aufrufbar. Zur optimalen Auslieferung von Videoinhalten können das Microsoft Azure CDN oder Caching Services von Drittanbietern genutzt werden. Dabei ist auch eine Optimierung auf die konsumierenden Endgeräte (z.B. Windows-PC, Macintosh, HTML 5, iOS, Android, Windows Phone, ...) und deren jeweilige Wiedergabemöglichkeiten (Auflösung, Bildschirmgröße etc.) möglich. http://azure.microsoft.com/de-de/services/media-services/ 6.2 Content Delivery Network (CDN) Das Content Delivery Network (CDN) ist ein Verbund von weltweit verteilten Microsoft Azure Rechenzentren. Im CDN können Inhalte aus Microsoft Azure Blob Storage oder Web Apps für einen bestimmten Zeitraum gecached werden und somit eine effiziente Auslieferung von Inhalten des Blob Storage sicherstellen: Ein Anwender erhält beim Zugriff Blob Storage Inhalte aus dem für ihn nächstgelegenen Rechenzentrum zugestellt. Beim erstmaligen Zugriff eines Anwenders prüft Azure, ob die angeforderten Daten bereits im CDN-Standort verfügbar sind. Ist dies der Fall, werden die Daten von dort ausgeliefert. Sind die Daten noch nicht dort, werden 34 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH sie vom Original aus Blob Storage ausgeliefert. Eine Kopie wird im CDN hinterlegt, so dass Folgeaufrufe von dort bedient werden können. http://azure.microsoft.com/de-de/services/cdn/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 35 7 Integration Azure-basierter Anwendungen in die eigene IT In vielen Software-Projekten stellt sich die Frage, wie Cloud-Ressourcen mit der lokalen IT verknüpft werden können. Weder ist es realistisch, dass die IT eines Unternehmens komplett in die Cloud wandert, noch wäre es sinnvoll, auf die Vorteile der Cloud (flexible Bereitstellung von IT, nutzungsabhängige Abrechnung, hohe Skalierbarkeit etc.) zu verzichten. Microsoft Azure stellt verschiedene Möglichkeiten zur Verfügung, Azure-basierte Ressourcen mit lokalen Ressourcen zu koppeln. Auf Anwendungsebene steht der Service Bus zur Verfügung, auf Datenebene kann SQL Azure DataSync verwendet werden und auf Netzwerkebene bieten sich mit Virtual Network eine Option, die durch den Traffic Manager um einen Routing Service ergänzt wird. 7.1 Datenintegration via SQL DataSync Der SQL Azure DataSync Service ist ein Cloud Service in SQL Azure, mit dem es möglich ist, Azure-basierte SQL Datenbanken untereinander, aber auch mit lokal betriebenen SQL Server Datenbanken zu synchronisieren. Die Synchronisation kann über eine grafische Oberfläche eingerichtet und administriert werden. Dabei können Synchronisationsfrequenz, Richtung der Datenübertragung (bidirektional, nur Upload, nur Download), Strategien für die Konfliktauflösung und die zu synchronisierenden Inhalte (Datenbanken, Tabellen, Spalten und Tabellenzeilen (gefiltert durch Feldwerte)) bestimmt werden. Abb. 7-1 skizziert die Funktionsweise. Der Datentransfer zwischen den beteiligten Datenbanken wird über einen sogenannten DataSync Hub abgewickelt. Der DataSync Hub muss eine SQL Azure Datenbank sein. Es ist nicht möglich, eine lokal betriebene Datenbank als Hub zu verwenden. 36 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Abb. 7-1 Microsoft Azure SQL DataSync Ein Einsatzszenario für DataSync kann die Synchronisation von Daten zu Regionalbüros sein. Dabei enthält der DataSync alle Daten und Regional-Offices synchronisieren nur die Daten, die für sie spezifisch sind. http://msdn.microsoft.com/en-us/library/windowsazure/hh456371.aspx 7.2 Anwendungsintegration In verteilten Anwendungen müssen die Komponenten, die miteinander interagieren wollen, auf irgendeinem Weg Nachrichten austauschen. Dieser Austausch muss je nach Art der Verteilung auch über Unternehmens- und Firewall-Grenzen hinweg erfolgen. Dies ist insbesondere in Hybrid-Szenarien ein Anwendungsfall, in denen Azure-basierte Komponenten mit Diensten in einem lokal betriebenen Rechenzentrum (welches ja in der Regel gegen Zugriffe „von außen“ über Firewalls etc. geschützt ist) interagieren sollen. Microsoft Azure stellt Entwicklern Mechanismen zur Verfügung, mit denen sie derartige Nachrichtenaustauschszenarien umsetzen können: den Queue Service und den Service Bus. 7.2.1 Queue Service Mit dem Queue Service offeriert die Microsoft Azure Plattform einen Messaging Dienst, über den Kommunikationspartner asynchron über Nachrichtenaustausch miteinander kommunizieren können. Zugriffe erfolgen grundsätzlich über http/https. Für die wichtigsten Programmiersprachen und Technologien wie .NET, Java, PHP stehen APIs zum komfortablen Zugriff auf Queues und Nachrichten zur Verfügung. http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 37 7.2.2 Service Bus Der Microsoft Azure Service Bus stellt eine Kommunikations- und Integrationsplattform zur Vernetzung verteilter Webservices zur Verfügung. Unabhängig davon, wo die einzelnen Kommunikationspartner (in der Cloud oder im eigenen Rechenzentrum) ausgeführt werden, können einfache und komplexe Nachrichtenströme implementiert werden. Unterstützt werden sowohl Punkt-zu-Punkt-Verbindungen (unidirektional und bidirektional), Queues zum Zwischenspeichern ausgetauschter Nachrichten, aber auch Publish-Subscriber-Pattern über sogenannte Topics, bei denen mehrere Sender an mehrere Empfänger Nachrichten versenden können. http://azure.microsoft.com/de-de/services/service-bus/ 7.2.2.1 Service Bus Relay Ein einfaches Interaktionsszenario ist in Abb. 7-2 zu sehen: Die Azure App, die einen lokal ausgeführten Webservice aufrufen möchte, steht vor der Herausforderung, dass der Webservice durch eine vorgeschaltete Firewall durch Zugriffe von außen geschützt ist. Mit Hilfe des Service Bus kann dennoch eine Kommunikationsbeziehung aufgebaut werden. Hierzu registriert siche der Webservie beim Service Bus (Schritt 1). Dieser richtet dem Webservice einen Endpunkt ein. Die Azure App kann nun diesen Endpunkt anstelle des Webservice aufrufen (2). Der Service Bus prüft den Aufruf und kann diesen auf der Verbindung, die zum Webservice in Schritt 1 etabliert wurde, an den Webservice weiterleiten. Abb. 7-2 Microsoft Azure Service Bus 7.2.2.2 Service Bus Queue Beim Relay ist es erforderlich, dass der registrierte Empfänger auch tatsächlich online ist, d.h Nachrichten empfangen kann. Ist er offline erhält ein Sender sofort eine Fehlermeldung. Ein Nachrichtenversand ist dann nicht möglich. Um für solche Szenarien einen Nachrichtenversand zu erlauben, können Queues definiert werden. Sender können dann in jedem Fall Nachrichten 38 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH verschicken. Ein Empfänger liest diese angesamelten Nachrichten dann aus, sobald er online ist. 7.2.2.3 Service Bus Topic Im Service Bus können sogenannte Topics konfiguriert werden, die einen Endpunkt besitzen, an die Sender ihre Nachrichten schicken können. Für Topics können Subscriptions definiert werden. Für jede Subscription können Filterregeln definiert werden anhand derer bestimmt wird, ob eine an ein Topic geschickte Nachricht in die Queue der betreffenden Subscription kopiert werden soll. Empfänger können dann Nachrichten aus den Subscription-Queues lesen. Abb. 7-3 Microsoft Azure Service Bus Topics und Subscriptions Ein Einsatzszenario hierfür ist die Anwendungsüberwachung. Anstatt Statusmeldungen in ein Logfile zu schreiben, könnten diese Meldungen als Nachricht an ein Service Bus Topic geschickt werden. Abhängig von der Meldungsart könnten dann reine Statusinformationen von einem Empfänger in ein Logfile geschrieben werden, Fehlermeldungen könnten aber in eine gesonderte Subscription gehen, wo sie vom Empfänger direkt verarbeitet werden (z.B. Versand einer SMS an einen Administrator). http://msdn.microsoft.com/en-us/library/windowsazure/ee732537.aspx 7.2.3 BizTalk Services Für komplexere Integrationsszenarien, in denen über den Service Bus bestehende BackendSysteme aus einem lokalen Rechenzentrum eingebunden werden sollen, enthält die Microsoft Azure Plattform die BizTalk Services. Hierüber können zum einen Konnektoren zur Anbindung lokaler IT-Systeme (z.B. SAP, Oracle DB, Oracle EBS, Siebel, SQL DB) zur Interaktion verwendet Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 39 werden, zum anderen können die ausgetauschten Nachrichten gefiltert und in verschiedene Nachrichtenformate konvertiert werden. Dabei können nachrichtengesteuerte Workflows definiert werden. http://azure.microsoft.com/de-de/services/biztalk-services/ 40 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 8 Netzwerkdienste Microsoft Azure bietet eine Reihe von Netzwerkdiensten, die in drei Bereichen zur Vernetzung von Azure Ressourcen eingesetzt werden können: der Vernetzung virtueller Maschinen untereinander sowie deren Anbindungen aus dem Internet bzw. an ein oder mehrere lokale Rechenzentren. Abb. 8-1 zeigt das Zusammenspiel einiger der Netzwerkdienste. Abb. 8-1 Netzwerkdienste in Microsoft Azure Über ein Virtual Network lassen sich Virtual Machines miteinander vernetzen. Dabei können auch Subnetze und zulässiger Netzwerkverkehr definiert werden. Aus dem Internet trifft Netzwerkverkehr zunächst auf den Azure Loadbalancer, der nach verschiedenen Sicherheitsprüfungen den Verkehr entsprechend auf die Azure Ressourcen verteilt. Auch innerhalb eines Virtual Networks lässt sich ein interner Loadbalancer konfigurieren. Über ein Gateway kann ein Virtual Network sicher mit einem oder mehreren lokalen Rechenzentren verbunden werden. Via Express Route kann hierzu auch eine dedizierte Leitung mit garantierter Bandbreite eingesetzt werden. Um Anwendergruppen weltweit optimal zu versorgen, kann ein Azure-basierter Service weltweit verteilt installiert werden. Via Traffic Manager können Aufrufe passend auf die verschiedenen Service-Instanzen verteilt werden. Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 41 8.1 Virtual Network Mit Virtual Network kann Microsoft Azure als Erweiterung einer lokalen Infrastruktur genutzt werden, bei der zusätzliche Ressourcen aus der Cloud flexibel temporär eingesetzt werden können. Es können Netzwerkkonfigurationen erstellt werden, bei denen lokale Rechner oder Netzwerke mit Netzwerkknoten in Microsoft Azure zu einem virtuellen Netzwerk verbunden werden. Es besteht dabei die Möglichkeit die Cloud-Ressourcen mit eigenen Ipv4-Adressen zu versehen und eigene Routing-Tabellen um diese Ressourcen zu erweitern. In Kombination mit den Virtual Machines wird es damit möglich virtuelle Maschinen zwischen dem eigenen Rechenzentrum und Microsoft Azure hin und her zu migrieren, und dies durch entsprechende Konfigurationen auf Netzwerkebene so zu begleiten, dass diese Migration für die anderen Netzwerkelemente völlig transparent geschieht. Letztlich können Anwender Azure-basierte Ressourcen so nutzen, als wären sie im eigenen Rechenzentrum. Auf lokaler Seite kann die Integration über eine dedizierte Windows-Server-Maschine erfolgen, die die Verbindung zu den Cloud-Ressourcen verwaltet. Der Einsatz beschränkt sich aber nicht nur auf Windows-Maschinen. Es kann für die Integration selbst eine dedizierte Netzwerk-Hardware verwendet werden, die von einem Netzwerk-Administrator entsprechend konfiguriert werden muss. Damit können in den betreffenden Netzwerkknoten auch andere Betriebssysteme als Windows eingesetzt werden. Über das Virtual Network können aus Microsoft Azure heraus Verbindungen aus zu einer oder mehreren lokalen Sites (z.B. mehreren Niederlassungen eines Unternehmens) oder auch zwischen virtuellen Netzwerken in Azure eingerichtet werden. http://azure.microsoft.com/de-de/services/virtual-network/ 8.2 ExpressRoute Normalerweise enthält der Verbindungsweg von einem Client zu Microsoft Azure eine gewisse Wegstrecke aus dem öffentlichen Internet. Dies führt dazu, dass Zugriffszeiten auch vom übrigen Internet-Verkehr beeinflusst werden können. Um dies zu vermeiden kann mit ExpressRoute eine private Netzwerkverbindung von Azure Rechenzentren zu eigenen, lokalen Rechenressourcen eingerichtet werden. Dadurch können sich Durchsatz, Stabilität und Verlässlichkeit der Verbindungen zu Azure deutlich erhöht werden. http://azure.microsoft.com/de-de/services/expressroute/ 42 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 8.3 Traffic Manager Der Microsoft Azure Traffic Manager ist ein Service, der Requests, die an einen Azure Service gehen, auf Basis frei definierbarer Policys und Verfügbarkeiten an Service Instanzen weiterleitet, die weltweit verteilt in Azure oder externen Umgebungen installiert sein können. Für die Weiterleitung können drei Arten von Policys definiert werden: Leistung (Performance), Failover und Round Robin. Eine Policy erhält dabei einen DNS Namen. Requests auf diesen Namen werden vom Traffic Manager mit der IP-Adresse der nächsten verfügbaren Service Instanz beantwortet, die diese Policy erfüllt. Abb. 8-2 Microsoft Azure Traffic Manager Grundlage für die Entscheidung, an welche Instanz ein Request geleitet wird, ist also zum einen die Policy, zum anderen die Verfügbarkeit. Damit wird es möglich, die Instanzen eines Service weltweit zu verteilen, Benutzer normalerweise auf die ihnen nächstgelegene Instanz zu leiten und im Fall, dass diese Instanz ausgefallen ist, auf die zweitnächste Instanz usw. zu gehen. Durch die Möglichkeit, auch außerhalb von Azure betriebene Instanzen einzubeziehen, können Failover-Szenarien implementiert werden, bei denen Zugriffe zunächst auf On-premises-Instanzen erfolgen, und im Fehlerfall auf Instanzen in der Cloud zugegriffen wird. http://azure.microsoft.com/de-de/services/traffic-manager/ 8.4 Load Balancer Jeglicher Datenverkehr, der aus dem öffentlichen Internet auf Azure Ressourcen zugreifen möchte, muss den Azure Loadbalancer passieren. Dieser verarbeitet verschiedene Protokolle Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 43 (z.B. http, https, smtp, …) und leitet Aufrufe nach entsprechenden Sicherheitsprüfungen ggf. an die erforderlichen Azure Ressourcen weiter. Der Loadbalancer prüft dabei regelmäßg die Verfügbarkeit der Ressourcen und stellt darüber sicher, dass Aufrufe nur an verfügbare Ressourcen geleitet werden. Für mehrschichtige Anwendungen kann innerhalb eines Virtual Networks auch ein interner Loadbalancer zwischen den einzelnen Schichten konfiguriert werden. http://azure.microsoft.com/de-de/services/load-balancer/ 8.5 DNS Service Über Azure DNS können DNS-Domänen in Azure gehostet werden. Der Dienst nutzt hierzu ein globales Netzwerk von Namensservern, um bei Abfragen eine hohe Performanz bieten zu können. http://azure.microsoft.com/de-de/services/dns/ 8.6 VPN Gateway Zur sicheren Verbindung eines Virtual Networks mit lokalen Ressourcen kann ein VPN Gateway konfiguriert werden. Über dieses ist eine sichere Verbindung zu einem lokalen Rechner (Pointto-Site) oder zu einem oder mehreren lokalen Netzwerken (Site-to-Site) möglich. Im Falle von Site-to-Site-Verbindungen ist auch auf lokaler Seite ein passendes Gateway erforderlich. http://azure.microsoft.com/de-de/services/vpn-gateway/ 8.7 Application Gateway Für Web-Anwendungen kann Das Application Gateway nützliche Routing- und Loadbalancingdienste auf Anwendungsebene bieten. So können über das Gateway leicht Sticky Sessions (Folgen aus Aufrufen eines Clients werden immer auf den gleichen Server geleitet) konfiguriert werden. Über das Gateway kann SSL Offloading umgesetzt werden, d.h. das Gateway übernimmt rechenintensive Aufgaben zur Entschlüsselung von Anfragen und Verschlüsselung von Antworten im Rahmen SSL-basierter Kommunikation, was letztlich den eigentlichen Webserver von diesen Aufgaben entlastet. http://azure.microsoft.com/de-de/services/application-gateway/ 44 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 9 DevOps mit Microsoft Azure 9.1 Services für die Software-Entwicklung 9.1.1 Visual Studio Team Services Visual Studio Team Services (VSTS) bietet Funktionen als Cloud-Dienste, die früher nur auf den Server-Komponenten einer Visual-Studio-basierten Entwicklungsumgebung, d.h. Team Foundation Server, verfügbar waren. Mit VSTS lassen sich Entwicklungsprojekte planen, erstellen und verteiben, ohne dass hierzu Server-Umgebungen konfiguriert werden müssten. VSTS erstellt auf Knopfdruck Teamprojekte in denen Quellcode über einen zentralen Ansatz via Team Foundation Version Control (TFVC) oder einen verteilten Ansatz via Git verwaltet werden kann. Dabei können Arbeitsaufgaben, Funktionen, Bugs etc. über Backlogs verwaltet und über verschiedene Prozessvorlagen (Scrum, Kanban, agile Prozesse) geplant, überwacht und nachverfolgt werden. VSTS kann auch den Build-Prozess, automatisiertes Testen und Bereitstellung übernehmen. https://azure.microsoft.com/de-de/services/visual-studio-team-services/ 9.1.2 Application Insights Mit Application Insights lassen sich entsprechend konfigurierte Anwendungen verschiedener Plattformen zur Laufzeit überwachen und deren Laufzeitverhalten auswerten. Dabei können verschiedene Metriken (Performanz, Fehler etc.) kontrollieren und nachverfolgen. Die von Application Insights gelieferten Telemetriedaten der übwachten Anwendungen können aufbereitet, visualisiert, gefiltert und segmentiert werden, um stets einen Überblick über den Zustand und die Nutzung einer überwachten Anwendung zu erhalten. Es werden Anwendungen verschiedener Sprachen (C#, VB, JavaScript, Java, Ruby, PHP, Python etc.) und Plattformen (ASP.NET, Android, iOS, Cordova, Angular, Node.JS, Joomla, SharePoint etc.) sowie zahlreiche Logging-Frameworks (Log4Net, NLog, Java, Log4J etc.) unterstützt. http://azure.microsoft.com/de-de/services/application-insights/ 9.1.3 DevTest Labs Im Rahmen von Entwicklungs- und Testaktivitäten werden häufig temporär Ausführungsumgebungen benötigt, in denen entsprechende Tätigkeiten ausgeführt werden können. Via DevTest Labs können Anwender eigenstädig Virtual Machines provisionieren. Administratoren können dabei Vorgaben hinsichtlich der möglichen VM-Images und VM-Größen machen. Sie Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 45 können darüber hinaus zeitgesteuert VMs automatisch herunter- bzw. hochfahren. Somit können Kosten dadurch gespart werden, dass VMs nur dann aktiv sind, wenn auch tatsächlich Entwicklungs- und Testarbeiten durchgefürt werden. https://azure.microsoft.com/de-de/services/devtest-lab/ 9.2 Services für den Systembetrieb 9.2.1 Operational Insights Als ein Teil der Microsoft Cloud Management Suite ermöglicht es Operational Insights die Sammlung, Speicherung und Analyse von Logging-Daten quasi beliebiger Windows- und Linux-basierter Server und Dienste im eigenen Rechenzentrum oder in der Cloud. Die gesammelten Maschinendaten können verwaltet, miteinander kombiniert und visualisiert werden, um auf deren Basis Entscheidungen zum Systembetrieb wie Kapazitätsverwaltung, Wartung und Konfiguration von Systemen etc. zu treffen. http://azure.microsoft.com/de-de/services/operational-insights/ 9.2.2 Datentransfer und Datensicherung Die Speichersysteme in Microsoft Azure sind auf Hoch-verfügbarkeit ausgelegt. Redundante Speicherung und (optionale) Replikation in weitere Rechenzentren stellen sicher, dass Datenverlust praktisch nicht auftreten kann. Azure eignet sich demnach hervorragend als BackupMedium auch für normalerweise lokal gehaltene Daten. Backup und Recovery Services erlauben die Sicherung von Serversystemen in Azure. 9.2.2.1 Import/Export Service Die Übertragung größerer Datenmengen über das Internet in Blob Storage kann in Abhängigkeit von der zur Verfügung stehenden Bandbreite zeitaufwändig sein. Bei entsprechend großen Daten ist es effizienter, die Daten auf Festplatten über einen Paketdienst in ein Azure Rechenzentrum zu schicken, wo deren Inhalte dann in einen entsprechenden Storage Account kopiert werden. Über den Azure Import/Export Service können derartige Datentransfers konfiguriert werden. Im Falle eines Datenexports können leere Festplatten in ein Rechenzentrum geschickt werden, wo sie dann mit den Inhalten eines Storage Accounts bespielt werden. Sowohl beim Import als auch beim Export können die Daten der Festplatten verschlüsselt werden. http://azure.microsoft.com/de-de/pricing/details/storage-import-export/ 46 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 9.2.2.2 Backup Service Die Backup-Werkzeuge in Windows Server 2012, Windows Server 2012 Essentials und System Center 2012 Data Protection Manager erlauben im Zusammenspiel mit dem Microsoft Azure Backup Service die Erstellung von (inkrementelle oder volle) Sicherungen lokaler Systeme in Microsoft Azure Storage. Backups können bei Bedarf dann sehr leicht wieder in beliebige Serversysteme eingespielt werden. http://azure.microsoft.com/de-de/services/backup/ 9.2.2.3 Site Recovery Der Hyper-V Recovery Manager ermöglicht eine koordinierte Replikation und das Recovery von Ressourcen einer Private Cloud Umgebung in einer zweiten Umgebung. Mit Hilfe von System Center 2012 Virtual Machine Manager können Private Clouds durch laufende Replikation an einen zweiten Rechenzentrumsstandort gesichert und bei Bedarf (Ausfall des ersten Standorts) aktiviert werden. http://azure.microsoft.com/de-de/services/site-recovery/ 9.2.3 Scheduler Mit dem Scheduler können Aktionen nach beliebigen Zeitplänen ausgeführt werden. So können regelbasiert http/s-Endpunkte aufgerufen oder Nachrichten in eine Storage Queue eingestellt werden, worauf dann entsprechende Anwendungslogik (z.B. in einem Webservice oder in einer Cloud Service Worker Role) reagieren kann. Somit können regelmäßige oder einmalig in der Zukunft stattfindende Aktionen ausgelöst werden. http://azure.microsoft.com/de-de/services/scheduler/ 9.2.4 Automation Automation erleichtert das Management von Azure Ressourcen bedeutend, indem es Aufgaben wie die Erstellung von Ressourcen, deren Deployment, Überwachung und Verwaltung im Rahmen einer Workflow-basierten Engine automatisieren kann. Zusammengehörige Ressourcen (z.B. ein Cloud Service mit zugehörigem Storage Account und Active Directory Setup) können über sogenannte „Runbooks“ erstellt und verwaltet werden. Die einzelnen Ressourcen müssen damit nicht mehr einzeln und getrennt voneinander erstellt werden. http://azure.microsoft.com/de-de/services/automation/ Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 47 10 Erste Schritte mit Microsoft Azure 10.1 Blogs und Webseiten Zugang zu Microsoft Azure • Kostenloser Demo-Account: https://azure.microsoft.com/de-de/free/ • Zugang zu Microsoft Azure über ein MSDN Abonnement: http://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/ • Zugang zu Microsoft Azure über BizSpark: http://azure.microsoft.com/en-us/offers/ms-azr-0064p/ Werkzeuge und Software Development Kits (SDKs) • Software Development Kits (SDKs) für .NET, Node.js, PHP, Java, Python, Ruby: http://azure.microsoft.com/de-de/downloads/ • Windows Azure Powershell: http://go.microsoft.com/?linkid=9811175&clcid=0x407 • Virtual Machine Assessment Tool: http://azure.microsoft.com/de-de/downloads/vm-readiness-assessment/ • Assistant für die Migration von Websites zu Web Apps: http://go.microsoft.com/?linkid=9863189&clcid=0x407 Dokumentation (Whitepapers, Videos etc.) • Microsoft Azure Developer Center: http://azure.microsoft.com/en-us/develop/net/ • Technische Dokumentation von Microsoft Azure auf MSDN: https://msdn.microsoft.com/en-us/library/azure/dn578280.aspx • Offizieller Microsoft Azure Blog: http://azure.microsoft.com/en-us/blog/ • Azure InfoHub (Referenzen auf Videos, Doku, MVA-Kurse, etc. zu allen Azure Services) http://aka.ms/azureinfohub 48 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Automatisiert Cluster und Orchestrator automatisiert Flexibel Management Manuell Flexibel Jede VM ist persistent 8-10 Minuten Windows Server, Linux Windows Server 2016, Windows Server Linux Architektur Persistenz Provisionierung Systemplattform Paketierung und Publish Microsoft OS-Images (Web Roles und Worker Roles) Erstellung und Upload Container-Deployvon VHDs oder Ausment wahl aus einer Gallery Microsoft oder eigene DC/OS, Swarm, OS Images Kubernetes Gallery 8-10 Minuten App: < 1 Minute Cluster: ca. 10 Min. Deployment Stateful: Persistenz der Services/Actors Keine Persistenz der VMs (persistente Drives möglich) Cluster-VMs sind persistent App Persistenz im Container geregelt Automatisiert Azure Fuctions spezifisch < 20 Sekunden Persistenz auf VMEbene Web Deploy, FTP, Git, Visual Studio Online Diverse Vorlagen mit verschiedenen Triggern Azure Functions spezifisch Functions Runtime (WebJobs) < 20 Sekunden Keine Persistenz (muss außerhalb der Function geregelt werden) 2-Schicht IIS Websites Microservices Automatisiert Vollständig portabel Web App Function Code Arte(z.B. ASP.NET Website) fakt Microsoft oder eigene Web Frameworks (z.B. OS Images Wordpress, PHP, …) Paketierung und Publish Functions PaaS mit der Porta-bi- PaaS lität von IaaS Web Apps Windows Server, Linux Windows Server / IIS App: < 20 Sekunden Cluster: ca. 10 Min. Stateless: Persistenz extern (DB, Blob, …) Flexibel (Microservices) Flexibel Automatisiert Apps Service Fabricspezifisch, Runtime portabel Entwurf oder Anpassung für die Cloud Vollständig portabel Vollständig portabel Portabilität PaaS Service Fabric App Package (Paket aus Services und Actors) Container Virtuelle Maschine Verwaltetes Artefakt PaaS Cloud Services Cloud Service IaaS IaaS Container Service Ebene (PaaS/IaaS) Virtual Machines Anhang A: Azure Ausführungsmodelle 49 Anhang B: Azure Services im Überblick Azure Service (englischer Titel) Azure Service (deutscher Titel) Beschreibung Kapitel Azure Compute: Ausführung eigener Anwendungslogik App Service App-Dienst 2.1 Web Apps Web-Apps Hosting von Web-Anwendungen 2.1.1 Mobile Apps Mobile Apps Backend-Dienste für mobile Apps 2.1.2 Logic Apps Logic Apps API-basierte Workflows 2.1.3 API Apps API Apps Hosting Web-basierter Schnittstellen 2.1.4 Functions Functions Serverlose Code-Ausführung 2.1.5 Cloud Services Cloud Services Hosting mehrschichtiger Apps (PaaS) 2.2 Service Fabric Service Fabric Microservices-basierte Anwendungen 2.3 Container Service Container Service Cluster für Container-Deployments 2.4 Container Registry Containerregistrierung Speicher für Container-Imgages 2.4 Virtual Machines Virtuelle Computer Hosting virtueller Maschinen 2.5 Batch Batch Ausführung von Batch-Prozessen 2.6 Mobile Engagement Mobile Engagement Steuerung und Analysen mobile Apps 2.7 Notification Hubs Benachrichtigungs Hub Push-Benachrichtigungen an viele Clients 2.8 API Management API Management Vertrieb und Management von APIs 2.9 3.1.2 Azure Data Services: Speicherung von Daten SQL Database SQL Datenbank Relationale Datenbank als Service SQL Server Stretch DB SQL Server Stretch DB Cloud-Erweiterung lokaler SQL Server DocumentDB DocumentDB Speicherung JSON-basierter Objekte 3.2.1 Storage Speicher Tables Tables NoSQL-Datenbank (Key-Entity) 3.2.2 Blobs Blobs Speicherung großer Binärdaten 3.2.3 Files Files SMB Shares für VMs und Cloud Services 3.3.1 Disks Disks Persistentes Dateisystem für VMs 3.3.2 Redis Cache Redis Cache Zentraler Cache auf Basis von Redis 3.4.1 Managed Cache Verwalteter Cache Zentral bereitgestellter Cache 3.4.2 In-Role Cache Rollen-bezogener Cache Cache innerhalb von Cloud Service VMs 3.4.3 StorSimple StorSimple Hybride, sichere Datenspeicherung 3.5 Analytics- und Big Data Services IoT Hub IoT Hub Device-Management und -Interaktion 4.1 Event Hubs Event Hubs Verarbeitung von Ereignismeldungen 4.2 Stream Analytics Stream Analytics Auswertung von Datenströmen 4.3 50 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Azure Service (englischer Titel) Azure Service (deutscher Titel) Beschreibung Kapitel Data Factory Data Factory Verwalten von Datenpipelines 4.4 Azure Data Lake Azure Data Lake Big Data Storage und Analytics 4.5 HDInsight HDInsight Hadoop-as-a-Service 4.6 Machine Learning Machine Learning Erstellung von Prognosemodellen 4.7 Azure Search Azure Search Suchengine-as-a-Service 4.8 SQL Data Warehouse SQL Data Warehouse Elastischer Data-Warehouse-as-a-Service 4.9 Azure Data Catalog Azure Data Catalog Katalog für Datenquellen im Unternehmen 4.10 Analysis Services Analysis Services Analytics Engine für SQL Workloads 4.11 Cognitive Services Cognitive Services Kontext-Erkennung 4.12 Azure Bot Service Azure Bot Service Bereitstellung eigener Bots 4.13 Power BI Embedded Power BI Embedded Visualisierung von Daten in eigenen Apps 4.14 Sicherheit Azure-basierter Anwendungen Azure Active Directory Azure Active Directory Identity Store und Token Service 5.1 Multi-Factor Auth Multi-Faktor Auth Multi-Faktor Authentifizierung 5.2 Key Vault Key Vault Sichere Verwaltung von Schlüsseln 5.3 Security Center Security Center Überblick über den Sicherheitsstatus 5.4 Anwendungsdienste für eigene Anwendungen Media Services Media Services Medien-Workflows in der Cloud 6.1 Content Delivery Network Content Delivery Network Globales Caching statischer Inhalte 6.2 Integration Azure-basierter Anwendungen in die eigene IT SQL DataSync SQL DataSync Synchronisation von SQL DBs 7.1 Queues Warteschlangen Nachrichtenversand 7.2.1 Service Bus Service Bus Internet Service Bus 7.2.2 BizTalk Services BizTalk Services Integration von Backend-Systemen 7.2.3 Virtual Network Virtual Network Netzwerk-zu-Netzwerk VPN 8.1 Express Route Express Route Exklusive Netzwerkverbindungen 8.2 Traffic Manager Traffic Manager Globales Routing von Service-Zugriffen 8.3 Load Balancer Load Balancer Loadbalancer für Gruppen von VMs 8.4 DNS Service DNS Service Hosting einer DNS-Domäne 8.5 VPN Gateway VPN Gateway Standortübergreifende Verbindungen 8.6 Application Gateway Application Gateway Web-Routing- und Loadbalancing-Dienste 8.7 Netzwerkdienste DevOps mit Microsoft Azure Visual Studio Online Visual Studio Online Verwaltung von Entwicklungsprojekten 9.1.1 Application Insights Application Insights Informationen zum App-Laufzeitverhalten 9.1.2 DevTest Labs DevTest Labs Bereitstellung von Dev/Test-Umgebungen 9.1.3 Operational Insights Operational Insights Informationen zum Systembetrieb 9.2.1 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 51 Azure Service (englischer Titel) Azure Service (deutscher Titel) Beschreibung Kapitel Import/Export Import/Export Datentransfer in Blobs via Festplatten 9.2.2.1 Backup Backup Sicherung virtueller Maschinen 9.2.2.2 Site Recovery Site Recovery Wiederherstellung virtueller Maschinen 9.2.2.3 Scheduler Scheduler Zeitgesteuerte Ausführung von Skripten 9.2.3 Automation Automatisierung Automatisiertes Management 9.2.4 52 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Anhang C: Aufbau der Plattform Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH 53 Index .NET ........................................................................................... 5 Active Directory ................................................................... 14 ADO.NET ................................................................................ 18 Analysis Services..................................................................28 Android ........................................................................... 10, 34 API Apps.................................................................................10 API Management ................................................................16 App Service ............................................................................. 8 Application Gateway ..........................................................44 Application Insights............................................................45 ASP.NET.................................................................................... 8 Automation ...........................................................................47 Auto-Scaling .................................................................... 9, 12 Azure Active Directory.................................................. 9, 31 Azure Bot Service ................................................................29 Azure Data Catalog ............................................................28 Azure Data Lake...................................................................26 Azure Data Lake Analytics ................................................26 Azure Data Lake Store .......................................................26 Azure Search .........................................................................28 Backup Service .....................................................................47 BizTalk Server ....................................................................... 14 BizTalk Services ....................................................................39 Blob Storage ............................................. 14, 17, 20, 21, 34 Block Blob .............................................................................. 21 Caching ..................................................................................22 Cassandra .............................................................................. 17 CDN ................................ siehe Content Delivery Network Cloud Computing ................................................................. 1 Cloud Service ........................................................................11 Cognitive Services ...............................................................29 Container Service ................................................................13 Data Factory..........................................................................25 Datenschutz .......................................................................... 33 DC/OS ..................................................................................... 13 DevOps .............................................................................. 6, 45 DevTest Labs.........................................................................45 Disks ..........................................................................17, 20, 22 DNS Service ..........................................................................44 Docker .................................................................................... 13 DocumentDB ................................................................. 17, 20 Drupal ....................................................................................... 9 Eclipse ................................................................................ 5, 12 Elastic Scale ........................................................................... 19 Entity Framework ................................................................ 18 Event Hubs ............................................................................25 ExpressRoute ........................................................................42 File Service.............................................................................21 Geo-Replikation................................................................... 20 Git........................................................................................... 5, 9 Hadoop ........................................................................... 26, 27 54 HDFS ....................................................................................... 26 HDInsight............................................................................... 27 Hyper-V .................................................................................. 14 Hyper-V Recovery Manager ............................................ 47 IaaS ................................ siehe Infrastructure-as-a-Service Import/Export Service........................................................ 46 Infrastructure-as-a-Service ..................................... 4, 7, 13 In-Role Cache ....................................................................... 23 iOS .................................................................................... 10, 34 IoT Hub................................................................................... 24 Java ................................................................................. 5, 8, 14 JavaScript ............................................................................... 20 JDBC ........................................................................................ 18 Joomla ...................................................................................... 8 JSON........................................................................................ 20 Key Vault ................................................................................ 33 Kubernetes ............................................................................ 13 Linux ........................................................................................ 14 Load Balancer ....................................................................... 43 Loadbalancer ........................................................................ 12 Logic Apps ............................................................................ 10 Machine Learning ............................................................... 27 Managed Cache Service ................................................... 22 Map Reduce.......................................................................... 27 Media Services ..................................................................... 34 Microsoft Azure ..................................................................... 4 Microsoft Azure Pack ........................................................... 4 Mobile Apps ........................................................................... 9 Mobile Engagement .......................................................... 15 MongoDB .............................................................................. 17 Multi-Factor Authentication ............................................ 32 MySql ........................................................................................ 9 Node.js ................................................................................. 5, 8 Notification Hubs ................................................................ 15 Operational Insights........................................................... 46 Oracle............................................................................... 14, 39 PaaS .........................................siehe Platform-as-a-Service Page Blob .............................................................................. 21 PHP ........................................................................................ 5, 8 Platform-as-a-Service ............................................... 4, 8, 12 Power BI Embedded........................................................... 30 Public Cloud............................................................................ 1 Publish-Subscriber.............................................................. 38 Push Notifications............................................................... 15 Python ...................................................................................... 5 Redis Cache .......................................................................... 22 Rollen ...................................................................................... 11 Ruby .......................................................................................... 5 SAP .......................................................................................... 39 Scheduler .......................................................................... 9, 47 Service Bus ............................................................................ 38 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Service Bus Queue ............................................................. 38 Service Bus Relay ................................................................ 38 Service Bus Topic................................................................ 39 Service Fabric....................................................................... 12 SharePoint Server................................................................ 14 Siebel....................................................................................... 39 Site Recovery ........................................................................ 47 SMB ......................................................................................... 21 SQL Data Warehouse ........................................................ 28 SQL Database ........................................................... 9, 17, 18 SQL Server ............................................................... 14, 17, 18 SQL Server Stretch Database.......................................... 19 SSL............................................................................................ 44 Staging-Umgebung.............................................................. 9 StorSimple ............................................................................ 23 Stream Analytics ................................................................. 25 Table Storage ................................................................ 17, 20 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH Team Foundation Service ................................................... 5 Traffic Manager ...................................................................43 U-SQL...................................................................................... 26 VHD ......................................................................................... 13 Virtual Machine............................................................. 13, 17 Virtual Network............................................................. 14, 42 Visual Studio.................................................................... 5, 12 Visual Studio Online...........................................................45 VM Gallery ............................................................................. 14 VPN Gateway........................................................................44 VSO ............................................ Siehe Visual Studio Online Web App .................................................................................. 8 WebDeploy ............................................................................. 9 Webjobs ................................................................................... 9 WebLogic............................................................................... 14 Windows Server................................................................... 14 Wordpress ............................................................................... 9 55 Über den Autor Holger Sirtl ist seit 2006 als Cloud Solution Architect bei Microsoft in München tätig und berät in dieser Rolle Unternehmen im Aufbau Cloud-basierter Anwendungsarchitekturen. Schwerpunktthemen seiner Arbeit sind Cloud Computing und die Microsoft Azure Plattform. Zuvor war er bei Microsoft als Senior Technical Evangelist tätig. Vor seinem Einstieg bei Microsoft arbeitete Holger Sirtl sechs Jahre lang als Technologieberater für eine international führende Unternehmensberatung sowie zwei Jahre lang als Senior-IT-Projektmanager für einen großen deutschen Energieversorger. Anschrift Dr. Holger Sirtl Microsoft Deutschland GmbH Walter-Gropius-Straße 5 80807 München Online Blog: http://blogs.msdn.com/hsirtl Twitter: @hsirtl Xing: https://www.xing.com/profile/Holger_Sirtl LinkedIn: http://de.linkedin.com/in/hsirtl Azure Infohub: https://aka.ms/azureinfohub 56 Überblick über Microsoft Azure © 2017, Microsoft Deutschland GmbH