Eigene Anwendungen auf Microsoft Azure



Ähnliche Dokumente
Datenschutzerklärung. Published: Author: 42media services GmbH

Office 365 Partner-Features

Microsoft Azure: Ein Überblick für Entwickler. Malte Lantin Technical Evangelist, Developer Experience & Evangelism (DX) Microsoft Deutschland GmbH

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

Application Virtualization 5.0 SP2

Private Cloud Management in der Praxis

Windows 8 bereitstellen das Microsoft Deployment Toolkit. Heike Ritter

Windows PowerShell 3.0 für Einsteiger 1

Installationsanleitung dateiagent Pro

Dipl.-Inform. Harald Zinnen Senior Solution Specialist Datacenter Microsoft Deutschland GmbH

Perceptive Document Composition

AER Programm: Anleitung zur Zertifizierung

Business Intelligence. Bereit für bessere Entscheidungen

Windows Server 2012 R2 Essentials & Hyper-V

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Innovative Geräteverwaltung mit Windows Intune

Einfache Koexistenz von lokaler Exchange Server-Umgebung mit Exchange Online. Christoph Bollig, Technologieberater Office 365

-Migration ganz einfach von POP3/IMAP4 zu Exchange Online. Christoph Bollig, Technologieberater Office 365

Lokale Installation von DotNetNuke 4 ohne IIS

Windows Azure für Java Architekten. Holger Sirtl Microsoft Deutschland GmbH

Was ist Windows Azure? (Stand Juni 2012)

Galileo Desktop Benutzerhandbuch Version 1.02

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Lizenzierung von SharePoint Server 2013

Microsoft Azure für Java Entwickler

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Microsoft Azure Fundamentals MOC 10979

Step by Step Webserver unter Windows Server von Christian Bartl

Remotely Anywhere Verwendung von Zertifikaten Schritt für Schritt Anleitung zur Implementation von Zertifikaten in Remotely Anywhere

TeamViewer App für Outlook Dokumentation

Lizenzierung von Windows Server 2012

Virtual Desktop Infrasstructure - VDI

Windows 8 Lizenzierung in Szenarien

Vorwort Azure Cloud Computing mit Microsoft Danksagungen Kontakt zum Autor... 13

RDS und Azure RemoteApp

Ein mobiler Electronic Program Guide

ALM & DevOps Day. 24. September 2015, Zürich Oerlikon. 07. November, Zürich-Oerlikon

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Formular»Fragenkatalog BIM-Server«

Lizenzierung von System Center 2012

Integration in die Office-Plattform. machen eigene Erweiterungen Sinn?

3 System Center Virtual Machine Manager 2012

WINDOWS 8 WINDOWS SERVER 2012

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Mail encryption Gateway

Titel. App-V 5 Single Server Anleitung zur Installation

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

3 System Center Virtual Machine Manager 2012

EIDAMO Webshop-Lösung - White Paper

Kontakt zu Kunden. Kontakt durch Vertrieb, Marketing, Service und andere Aktivitäten.

Private Cloud. Hammer-Business Private Cloud. Ansgar Heinen. Oliver Kirsch. Datacenter Sales Specialist. Strategic Channel Development Private Cloud

OP-LOG

System-Update Addendum

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Speicher in der Cloud

SANDBOXIE konfigurieren

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Daten fu r Navigator Mobile (ipad)

Lizenzierung von Windows Server 2012 R2. Lizenzierung von Windows Server 2012 R2

Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.

BI und Data Warehouse

AXIGEN Mail Server. s per Smarthost versenden s per Pop3 empfangen. Produkt Version: Dokument Version: 1.2

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

MailUtilities: Remote Deployment - Einführung

Lizenzierung von SharePoint Server 2013

Benutzer- und Referenzhandbuch

Das Ausführen von Befehlen über das Netzwerk

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?

Appery.io Mobile Apps schnell und einfach entwickeln

Installation der SAS Foundation Software auf Windows

Erste Schritte mit Desktop Subscription

bizsoft Rechner (Server) Wechsel

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Task: Nmap Skripte ausführen

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Mit jedem Client, der das Exchange Protokoll beherrscht (z.b. Mozilla Thunderbird mit Plug- In ExQulla, Apple Mail, Evolution,...)

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Installation SQL- Server 2012 Single Node

Getting Started Guide CRM Online, 2013 & 2015 xrm1 Verpflegungspauschalen

Umstieg auf Microsoft Exchange in der Fakultät 02

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

Lizenzen auschecken. Was ist zu tun?

Step by Step VPN unter Windows Server von Christian Bartl

14.2 Einrichten der Druckserverfunktionen

Verwendung des Terminalservers der MUG

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Teamschool Installation/ Konvertierungsanleitung

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Internet Explorer Version 6

R-BACKUP MANAGER v5.5. Installation

Azure und die Cloud. Proseminar Objektorientiertes Programmieren mit.net und C# Simon Pigat. Institut für Informatik Software & Systems Engineering

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Transkript:

Eigene Anwendungen auf Microsoft Azure Autor: Holger Sirtl Version: 1.0.0 Azure SDK: 2.4 Stand: 17.11.2014 2014 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 IM- PLIED, 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. 2014 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. 2014, Microsoft Deutschland GmbH i

ii 2014, Microsoft Deutschland GmbH

Inhaltsverzeichnis 1 Überblick 6 2 Virtual Machines 9 2.1 Konzept der Virtual Machines... 9 2.2 Fazit zu Virtual Machines...12 2.3 Weitere Informationen zu Virtual Machines...12 3 Cloud Services 13 3.1 Konzept der Cloud Services...13 3.2 Entwicklung von Cloud Services...14 3.3 Fazit zu Cloud Services...15 3.4 Weitere Informationen zu Cloud Services...16 4 Websites 17 4.1 Konzept der Websites...17 4.2 Entwicklung von Websites...19 4.3 Fazit zu Websites...19 4.4 Weitere Informationen zu Websites...20 5 Mobile Services 21 5.1 Konzept der Mobile Services...21 5.2 Entwicklung von Mobile Services...23 5.3 Fazit zu Mobile Services...23 5.4 Weitere Informationen zu Mobile Services...23 6 Auswahl des besten Ausführungsmodells 24 6.1 Vergleich der wichtigsten Funktionalitäten...24 6.2 Fazit...25 7 Wechsel des Ausführungsmodells 27 7.1 Einzelne Migrationsszenarien...27 7.2 Fazit...28 7.3 Weitere Informationen zu den Ausführungsmodellen...29 8 Erste Schritte mit Microsoft Azure 30 Index 31 2014, Microsoft Deutschland GmbH iii

Abbildungsverzeichnis Abbildung 1: Virtual Machines... 9 Abbildung 2: Virtual Machine Gallery...11 Abbildung 3: Cloud Services...14 Abbildung 4: Websites...17 Abbildung 5: Mobile Services...21 2014, Microsoft Deutschland GmbH v

1 Überblick Die meisten Anwender, die sich für das Thema Cloud Computing interessieren, haben zunächst ein Szenario im Blick: die Ausführung einer eigenen Anwendung in der Cloud. Ob nun eine bestehende oder eine neu zu entwickelnde Anwendung: in beiden Fällen kommt man recht schnell an den Punkt an dem auffällt, dass es hierzu in Microsoft Azure anders als bei einem klassischen Hoster oder vielen anderen Cloud-Anbietern mehrere Optionen gibt. Virtual Machines Cloud Services Websites Mobile Services Microsoft Azure bietet also nicht nur das Hosting klassischer virtueller Maschinen im Sinne eines Infrastructure-as-a-Service-Ansatzes, sondern auch speziellere Hosting Varianten, die optimiert sind auf die schnelle Bereitstellung von Web-Anwendungen oder die flexible Skalierung mehrschichtiger Anwendungen und damit eher dem Platform-as-a-Service Bereich zugeordnet werden können. Dieses Dokument beschäftigt sich nun mit der Auswahl des für ein bestimmtes Szenario bestgeeigneten Ausführungsmodells. Dies klingt zunächst verwirrend, letztlich lässt sich die Frage nach der besten Alternative aber recht schnell beantworten. Hinzu kommt die Möglichkeit, diese Optionen miteinander zu kombinieren. D.h. es ist durchaus möglich, dass Teile einer Anwendung als Website (PaaS) betrieben werden und andere Teile (z.b. die Datenbank) nutzen, die in einer Virtual Machine (IaaS) ausgeführt werden. Darüber hinaus ist ein Wechsel zwischen den Optionen möglich, d.h. man verbaut sich nichts, wenn man mit einer Option (z.b. Websites) beginnt und später auf eine andere Option (z.b. Cloud Services) wechseln möchte. Die vier Alternativen unterscheiden sich primär dadurch, wie viele Aspekte der Umgebung durch das Ausführungsmodell vorgegeben und damit von Azure automatisiert verwaltet werden (Einspielen von Patches, Updates, Failover-Management etc.) und welche Aspekte durch den Nutzer bestimmt werden können. Je mehr Aspekte bestimmt werden können, desto weniger Aspekte werden von Azure verwaltet. Umgekehrt gilt entsprechend: je mehr von Azure automatisiert verwaltet wird, desto weniger Einfluss auf die Umgebung ist durch den Nutzer möglich. Höchste Automatisierung (dafür geringste Möglichkeiten, die Umgebung zu kontrollieren) bieten Mobile Services. Bei Virtual Machines ist auf der anderen Seite die Möglichkeit, Einfluss auf die Umgebung zu nehmen, am größten. Dafür ist dort der Automatisierungsgrad 6 2014, Microsoft Deutschland GmbH

am kleinsten. Die beiden anderen Alternativen, Cloud Services und Websites, liegen dazwischen. Folgende Tabelle gibt einen Überblick auf die Alternativen und deren Automatisierungsgrad bzw. die Möglichkeiten, Einfluss auf die Umgebung zu nehmen. Virtual Machines Cloud Services Websites Mobile Services Automatisierungsgrad Einflussmöglichkeiten Abstraktionsklasse IaaS PaaS PaaS PaaS Tabelle 1: Automatisierungsgrad und Einflussmöglichkeiten der Optionen Die Tabelle gibt schon den wichtigsten Hinweis: wann immer möglich, sollten Anwendungen als Mobile Service bzw. Websites ausgeführt werden. Dort sind der Automatisierungsgrad und damit die Einsparungen im administrativen Bereich im Vergleich zu einem Eigenbetrieb oder dem Betrieb in einer virtuellen Maschine am höchsten. Nur wenn die Anforderungen bestimmte Konfigurationen der Umgebung erfordern, d.h. die Umgebung stark angepasst werden muss, sollten Virtual Machines zum Einsatz kommen. Für einige Szenarien können recht einfach erste Empfehlungen für die Ausführungsoption genannt werden: Szenario Hosting einer ASP.NET- oder PHPbasierten Webseite Betrieb einer bestehenden Linuxbasierten LOB-App Bereitstellung eines REST-Backends für mobile Anwendungen Cloud-Anwendung, die auf Ressourcen im lokalen Unternehmensnetzwerk zugreifen soll Naheliegende Ausführungsoption Website Virtual Machine Mobile Service Website, Cloud Service oder Virtual Machine Grund Websites bieten den höchsten Grad an Automatisierung, und die bereitgestellte Umgebung eignet sich sehr gut zur Ausführung von skalierbaren Web-Anwendungen. Virtual Machines bieten als einzige Ausführungsoption den Betrieb einer Linux-basierten Umgebung. Diese kann dann individuell konfiguriert werden. Der Nutzer kann sich hierzu als Admin anmelden. Mit Mobile Services lassen sich in kürzester Zeit Backends für mobile Anwendungen bereitstellen. Die Dienste können dabei leicht mit Funktionen zur Benutzerauthentifizierung, Push Notifications, Datenspeicherung versehen werden. Diese drei Optionen bieten die Möglichkeit, über ein virtuelles Netzwerk Verbindungen zu einem lokalen Rechenzentrum herzustellen. Tabelle 2: Ausgewählte Szenarien und deren jeweils naheliegende Ausführungsoption 2014, Microsoft Deutschland GmbH 7

Diese Tabelle gibt nur einen ersten Hinweis auf eine geeignete Alternative. Vor einer konkreten Umsetzung sollte diese noch genauer betrachtet werden. 8 2014, Microsoft Deutschland GmbH

2 Virtual Machines 2.1 Konzept der Virtual Machines Virtual Machines sind die Ausführungsoption, die wohl die meisten Personen vor Augen haben, die über die Ausführung Ihrer Anwendung in der Cloud nachdenken. Wenn von Azure IaaS die Rede ist, sind in der Regel die Virtual Machines gemeint. Sie stellen das Infrastructure-as-a- Service-Angebot (IaaS) auf Microsoft Azure dar. Abbildung 1: Virtual Machines Virtual Machines erlauben den Betrieb selbst in einer lokalen Hyper-V-Umgebung erstellter oder von Microsoft als Vorlage bereitgestellter virtueller Maschinen auf Microsoft Azure. Diese werden minutengenau abgerechnet. Zur Bereitstellung einer Virtual Machine ist letztlich nur die Festlegung eines VM-Image (hier werden Standard-Hyper-V-Images eingesetzt), auf deren 2014, Microsoft Deutschland GmbH 9

Basis der Bootvorgang ablaufen soll, sowie ein paar wenige Konfigurationsparameter erforderlich: Instanz-Größe Administrator-Kennung DNS-Name Azure Subscription Die Region des Rechenzentrums, in dem die VM ausgeführt werden soll Auf die dann in Azure ausgeführten Virtual Machines haben Nutzer vollen Adminstrator-Zugang. Sie können sich z.b. per Remote Desktop auf eine VM einwählen und die Maschine ihren Wünschen entsprechend konfigurieren. Die in den virtuellen Maschinen eingesetzten Festplattenlaufwerke werden im Blob Storage persistiert. Virtual Machines eignen sich deshalb ideal für eine schnelle Migration einer bestehenden On-premise-Anwendung in die Cloud. Prinzipiell können die VMs der lokalen Umgebung in die Cloud übertragen oder letzlich 1:1 in der Cloud nachgebaut werden. Durch die Persistierung der VM-Disks im Blob Storage bleiben im Gegensatz zu den nichtpersistenten Images in Web und Worker Roles der Cloud Services alle Inhalte erhalten, sollte eine virtuelle Maschine einem Re-Image 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, als auch der umgekehrte Weg beschritten werden: VHDs können 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 Images in einer lokalen Hyper-V-Umgebung zu erzeugen, nach Windwos Azure zu laden und von den Images neue Virtual Machines zu booten. Daneben können auch bereits vorgefertigte mit entsprechender Serversoftware bestückte Images aus einer Gallery (siehe Abbildung 2) ausgewählt und gestartet werden. Diese werden dann in den Blob Storage kopiert und von dort aus gebootet. Änderungen können zur Laufzeit in den Storage zurückgeschrieben werden und bleiben so auch erhalten, wenn die VM neu aufgesetzt werden muss. 10 2014, Microsoft Deutschland GmbH

Abbildung 2: Virtual Machine Gallery 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 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. Besonders interessant ist die Kombination mit dem Virtual Network: Durch die Möglichkeit, ein lokale und Cloud-basierte VMs 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. Die hohe Flexibilität der Virtual Machines kommt allerdings zu dem Preis, dass ein signifikanter Teil der Infrastruktur im Verantwortungsbereich des Nutzers verbleibt, d.h. er muss sich um das Setup und die Wartung der VM-Images kümmern (Patches und Upgrades im Betriebssystem der VMs einspielen). Gründe für die Wahl von Virtual Machines als Ausführungsumgebung können deshalb sein: Linux wird als Gast-OS für die eigene Anwendung benötigt 2014, Microsoft Deutschland GmbH 11

Es werden administrativer Zugriff und entsprechende Konfigurationsmöglichkeiten benötigt Gründe für die Wahl einer der anderen Ausführungsoptionen (Cloud Services, Websites oder Mobile Services) können entsprechend sein: Das Management der Infrastruktur soll vollständig von Azure übernommen werden. Maßnahmen für Failover und High-Availability sollen von Azure automatisiert durchgeführt werden. 2.2 Fazit zu Virtual Machines Als Fazit kann für den Einsatz von Virtual Machines gezogen werden: Virtual Machines sollten nur dann verwendet werden, wenn es entscheidende Gründe hierfür gibt (es wird ein Feature benötigt, das nur Virtual Machines bieten, z.b. Linux als Gast-OS) Wann immer möglich, sollten die anderen Ausführungsoptionen validiert und ggf. verwendet werden. Sie bieten deutliche (Kosten-)Vorteile durch automatisiertes Management der Umgebung. 2.3 Weitere Informationen zu Virtual Machines Offizielle Dokumentation zu Virtual Machines http://azure.microsoft.com/en-us/documentation/services/virtual-machines/ Technische Dokumentation zu Virtual Machines http://msdn.microsoft.com/library/azure/jj156143.aspx 12 2014, Microsoft Deutschland GmbH

3 Cloud Services 3.1 Konzept der Cloud Services Auf den ersten Blick sind Cloud Services die komplexeste Ausführungsoption. Um zu verstehen, was Cloud Services ausmacht denn tatsächlich sind sie wohl auch die leistungsfähigste Option, lohnt ein Blick auf die Historie von Azure. Cloud Services waren die erste und seinerzeit einzige Ausführungsoption für eigene Anwendungen. Idee war und ist es, dass bestimmte Paradigmen für skalierbare Cloud-basierte Anwendungen durch die Azure Plattform vorgegeben sind: Ein Cloud Service ist ein technischer Container für eine oder mehrere VM-Instanzengruppen, genannt Rollen. Es gibt zwei Arten von Rollen: Web Rollen (für Web-Frondend-Funktionalität) und Worker Rollen (für Hintergrundprozesse). Eine Rolle wird in einer oder mehreren identisch konfigurierten (gleicher Inhalt, gleiche Größe etc.) VM-Instanzen ausgeführt. Die verwendeten VM-Instanzen sind nicht persistent, ein zustandsloses Design der Anwendung wird vorausgesetzt. Sämtliche Konfigurationspakete und -einstellungen müssen in einem speziellen Anwendungspaket enthalten sein. Zugriff auf den Cloud Service ist ausschließlich über einen vorgeschalteten Azure Loadbalancer möglich. Der Loadbalancer verteilt eingehende Requests gleichmäßig auf die zum Empfang konfigurierten Rolleninstanzen. Web Rollen sind per Voreinstellung für den Empfang auf Port 80 (http) konfiguriert. Web Rollen können für Hintergrundverarbeitung Aufträge (z.b. via Azure Queues) an Worker Rollen verteilen. Abbildung 3 zeigt den schematischen Aufbau einer Cloud- Service-basierten Anwendung. Diese Vorgaben ermöglichen eine flexible Skalierbarkeit und erlauben der Azure Plattform, bei Bedarf neue Instanzen zu provisionieren oder ausgefallene Instanzen automatisch zu ersetzen. Entsprechend liegt bei Cloud Services der Fokus auf hoch-verfügbaren, hoch-skalierenden Multi-Tier-Web-Anwendungen, die maximal von der flexiblen Ressourcenbereitstellung der Public Cloud profitieren können. Die einzelnen Rollen können unabhängig voneinander skaliert werden. Microsoft Azure übernimmt dabei das Management der zur Ausführung der Rollen benötigten virtuellen Maschinen. Dies schließt Upgrades der Gast-Betriebssysteme, 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 2014, Microsoft Deutschland GmbH 13

auch Remote Desktop Verbindungen zur Administration unterstützt. Rollen können unabhängig voneinander skaliert werden (Hinzuschalten bzw. Entfernen von Instanzen); mit der Autoscaling-Funktion kann dieser Vorgang auch (in Abhängigkeit von verschiedenen Lastparametern) automatisiert werden. Abbildung 3: Cloud Services 3.2 Entwicklung von Cloud Services 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 Websites. 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, 14 2014, Microsoft Deutschland GmbH

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 AutoScale- Funktion) 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 Minute 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 Basis- Image 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. 3.3 Fazit zu Cloud Services Cloud Services sollten dann verwendet werden, wenn folgende Voraussetzungen gegeben sind: Die Vorteile einer automatisch verwalteten Umgebung im Sinne eines PaaS-Ansatzes sollen genutzt werden sollen. Gleichzeitig wird die Flexibilität eines direkten Zugriffs auf die virtualisierte Umgebung (d.h. administrativer Zugriff auf einzelne Instanzen) benötigt. Skalierung ggf. auch nur in einzelnen Rollen erfolgen soll. Virtuelle Maschinen sollten Cloud Services vorgezogen werden, wenn Linux als Gast-OS benötigt wird (nur Virtuelle Maschinen unterstützen Linux) persistente VM-Instanzen benötigt werden (weil z.b. eine Datenspeicherung im Dateisystem erfolgt) eine Paketierung der Anwendung (weil z.b. bestimmte Frameworks und Konfigurationseinstellungen benötigt werden) zu aufwändig wäre Websites bzw. Mobile Services sollten Cloud Services vorgezogen werden, wenn 2014, Microsoft Deutschland GmbH 15

die von Websites vorgegebene Umgebung (z.b. ASP.NET) bereits die Anforderungen erfüllt die Web-Anwendung nicht weiter in Rollen unterteilt werden muss und die Skalierung immer die Gesamt-Anwendung betrifft Letztlich gilt aber auch für Cloud Services die Kombinierbarkeit mit weiteren Ausführungsoptionen, d.h. es ist durchaus möglich, von einer Cloud-Service-Web-Role zur Datenspeicherung auf einen in einer Virtual Machine betriebenen SQL Server zuzugreifen. 3.4 Weitere Informationen zu Cloud Services Offizielle Dokumentation zu Cloud Services http://azure.microsoft.com/en-us/documentation/services/cloud-services/ Technische Dokumentation zu Cloud Services http://msdn.microsoft.com/en-us/library/azure/jj155995.aspx 16 2014, Microsoft Deutschland GmbH

4 Websites 4.1 Konzept der Websites Microsoft Azure Websites stellen eine kostengünstige, aber trotzdem gut skalierbare Hosting- Variante für Web-Anwendungen bereit. Im Grunde sind Websites das Pendant einer virtuellen Serverumgebung eines Hosting-Anbieters. Über das Microsoft Azure Portal können sehr schnell und einfach Umgebungen eingerichtet, mit zahlreichen Web Frameworks (ASP.NET, Java, PHP, Node.js,...) und Anwendungen (Joomla, Wordpress, Drupal,...) vorkonfiguriert und von verschiedenen Entwicklungsplattformen aus mit Webanwendungen bestückt werden. Hierbei werden als Deployment-Optionen unter anderem Git, FTP, WebDeploy und TFS Deploy unterstützt. Das Portal bietet hierzu verschiedene Deployment-Skripte an, die in eigene Entwicklungsumgebungen importiert werden können. Abbildung 4: Websites 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, TF Service, Dropbox, 2014, Microsoft Deutschland GmbH 17

) 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. Das Websites-Modell richtet sich dabei nicht nur an Entwickler, die ihren Code in eine Hostingumgebung transferieren und dort ausführen wollen. Auch Endanwender finden in einer Website Gallery (siehe Abbildung 5) Web-basierte Anwendungen (z.b. Blogs, CMS-Systeme, Foren), die in einer neuen Website vorinstalliert und nach ein paar Konfigurationsschritten sofort einsetzbar sind. Ein Wordpress-Blog, kann so beispielsweise innerhalb weniger Minuten aufgesetzt und in Betrieb genommen werden. Abbildung 5: Websites Gallery Zur Ausführung der Websites 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 -Modell bietet darüber hinaus noch Backup und Restore, Auto-Scaling, WebJobs, Scheduler Unterstützung und das stufenweise Publishing über eine oder mehrere 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 18 2014, Microsoft Deutschland GmbH

ändernde Last möglich. Dies kann im Standard -Modell mit der AutoScale-Funktion auch (in Abhängigkeit von der CPU-Last) automatisiert werden. Konfiguration und Verwaltung der zur Ausführung von Websites 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 Websites heraus können natürlich auch die weiteren Dienste der Microsoft Azure Plattform genutzt werden. So kann eine Website Authentifizierung von Benutzern über das Azure Active Directory durchführen oder einen in einer Virtual Machine betriebenen SQL Server aufrufen. 4.2 Entwicklung von Websites Die Entwicklung einer Website unterscheidet sich nicht von der Entwicklung einer klassischen Web-Anwendung, die lokal in einem Internet Information Server oder bei einem Hoster betrieben werden soll. Entwickler, die sich in den unterstützten Technologien (ASP.NET, PHP, Java, ) auskennen, können unmittelbar für Azure Websites entwickeln. Im Falle von ASP.NET können Web-Anwendungen direkt aus Visual Studio via Publish-Befehl in eine Website installiert werden. Alternativ können auch diverse Quellcode-Verwaltungssysteme (TFS, Git, GitHub, etc.) so konfiguriert werden, dass sie nach Übertragung von Änderungen aus der Entwicklungsumgebung automatisch ein Deployment auf die konfigurierte Website anstoßen. Der Aufwand für den Entwickler ist somit minimal. Innerhalb von Minuten kann eine Web-Anwendung über eine Website in der Cloud bereitgestellt werden. Entsprechende Automatismen existieren in Eclipse für Java, PHP etc. Die Umgebung einer Website, d.h. das zugrundeliegende Betriebssystem, die Skalierungseinstellungen, Backups, Failover werden automatisiert von Azure verwaltet. Der Entwickler kann sich vollständig auf die Anwendungslogik konzentrieren und muss sich nicht mit dem Infrastruktur-Setup auseinandersetzen. Auf der anderen Seite sind die Einflussmöglichkeiten auf die Umgebung (z.b. Öffnen von Ports, Konfiguration via Remote Desktop, ) auch stark begrenzt. Hier muss der Anwender also abwägen zwischen schneller, flexibler Bereitstellung und individuellen Einflussmöglichkeiten auf die Umgebung. 4.3 Fazit zu Websites Websites stellen die einfachste (aber dennoch sehr leistungsfähige) Ausführungsoption für eigene Web-Anwendungen dar. Die Entwicklung für Websites unterscheidet sich nicht von der Entwicklung einer nicht auf Azure betriebenen Web-Anwendung. Der Einlernaufwand für die 2014, Microsoft Deutschland GmbH 19

Entwickler ist minimal, d.h. wenn es keinen entscheidenden Grund dagegen gibt, sollten Websites als Ausführungsoption gewählt werden. Cloud Services oder Virtual Machines sollten nur dann verwendet werden, wenn z.b. einer der folgenden Anforderungen gegeben ist Es wird direkter Zugriff auf Services-Instanzen via Remote Desktop benötigt Linux als Umgebung wird benötigt (wird derzeit nur von Virtual Machines unterstützt) Spezielle Umgebungs- und Netzwerk-Konfigurationen werden benötigt (spezielle Ports, Virtual Network etc.) 4.4 Weitere Informationen zu Websites Offizielle Dokumentation zu Websites http://azure.microsoft.com/en-us/services/websites/ Technische Dokumentation zu Websites http://msdn.microsoft.com/en-us/library/dn166981.aspx 20 2014, Microsoft Deutschland GmbH

5 Mobile Services 5.1 Konzept der Mobile Services Mobile Services bauen auf der Website Plattform auf. Während Websites auf ganz allgemeine Web-Anwendungen abzielen, gehen Mobile Services eine Abstraktionsebene höher: Mobile Services sind spezielle Websites, die für den Einsatz als Backend für Mobile Anwendungen optimiert sind und damit eine sehr schnelle Umsetzung ermöglichen. Mitunter werden Mobile Services aufgrund dieser Eigenschaft der Servicekategorie BaaS (= Backend-as-a-Service) zugeordnet. Mobile Anwendungen, 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 durch etc. Abbildung 6: Mobile Services 2014, Microsoft Deutschland GmbH 21

Microsoft Azure Mobile Services bieten eine Sammlung genau solcher, häufig benötigter Dienste, zugreifbar über RESTful-Schnittstellen, auf Microsoft Azure an. Zu diesen Diensten gehören unter anderem folgende Funktionen: Benutzerauthentifizierung (via Microsoft Account, Facebook ID, Twitter ID und Google ID) mit entsprechender Zugriffskontrolle bei Service-Aufrufen Speicherung von Daten in Blob, Table, Queue Service oder SQL Database Kommunikation via Service Bus Versand von Push Notifications an verschiedene Mobile Plattformen 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 mit in.net oder JavaScript implementierter Funktionalität implementieren. Die vorkonfigurierten Microsoft Azure Mobile Services können ohne größeren Programmieraufwand sehr einfach als Backend-Dienste für verschiedene Client-Umgebungen eingesetzt werden. Folgende Tabelle gibt einen Überblick über die derzeit unterstützten Client-Umgebungen und darüber, mit welcher Backend-Variante (.NET und/oder JavaScript) diese eingesetzt werden können. Client-Umgebung Mobile Service in JavaScript Mobile Service in.net Windows Phone Windows Store C# Windows Store JavaScript ios Xamarin ios Xamarin Android Android HTML PhoneGap Sencha Appcelerator Tabelle 3: Client-Umgebungen, die für Mobile Services unterstützt 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, 22 2014, Microsoft Deutschland GmbH