(0) exportieren Drucken
Alle erweitern

Überlegung zur Entwicklung für Azure Cloud Services

Letzte Aktualisierung: Juni 2014

Autoren: Selcin Turkarslan

Bearbeiter: Tim Wieman, Valery Mizonov, Avilay Parekh, Paolo Salvatori, Steve Howard

Bevor Sie Ihre Anwendungen zu den Microsoft Azure Cloud Services migrieren, sollten Sie die Details des Dienstes studieren. Der Artikel "Einführung in Azure" enthält Informationen zu den folgenden Punkten:

  • Azure-Komponenten

  • Ausführungsmodelle

  • Datenverwaltung

  • Netzwerk

  • Unterstützte Programmiersoftware-Entwicklungskits (SDKs) usw.

Das Ziel dieses Artikels ist, eine Einführung in das Implementieren von Microsoft Azure-Anwendungen mithilfe der Microsoft Azure Cloud Services zu geben. Die Anzahl der möglichen Migrationsszenarien ist nahezu unendlich. Wir empfehlen Entwicklern daher, die am besten geeigneten Techniken und Lösungen für ihre Anwendungen und Benutzer zu wählen.

Die Migration einer bestehenden Anwendung zu Azure umfasst:

  • Die Entscheidung für das Serverausführungsmodell, das am besten zu der Anwendung passt (z. B. Cloud Services, Websites, virtuelle Computer (VM) usw.). Lesen Sie "Einführung in Azure: Ausführungsmodelle".

  • Hinzufügen einer Azure-spezifischen Konfiguration und benutzerdefinierten Codes

  • Speichern und Verwalten Ihrer Daten in Azure.

  • Erneutes Packen der bestehenden Anwendung als Azure-Anwendung

  • Bereitstellen der Anwendung in Azure

Eine in Microsoft Azure Cloud Services bereitgestellte Anwendung enthält Ihren Anwendungscode, die Datenverwaltung und ihre Konfigurationseinstellungen. Beim Entwickeln von Anwendungen für die Cloud gelten die allgemeinen Architekturregeln nach wie vor. Beispielsweise müssen Entwickler ihre Anwendungen so auslegen, dass sie Verfügbarkeit, Skalierbarkeit, Zuverlässigkeit und Sicherheit in einer verteilten Umgebung bieten können. Darüber hinaus müssen die Entwickler folgende Punkte berücksichtigen:

  • SLA (Vereinbarung zum Servicelevel)

  • Kapazitätsplanung

  • Kundenabrechnung

  • Überwachung

  • Anwendungsüberwachung

  • Verkehrsanalyse

  • Kostenmanagement

  • Skalierung – wann und wie sollen die Cloudanwendungen zentral hoch- oder herunterskaliert und wann und wie horizontal hoch- oder herunterskaliert werden.

In einer herkömmlichen privaten Rechenzentrumsumgebung sind Sie dafür verantwortlich, die Hardware zur Ausführung der Dienste zu beschaffen, einzurichten und zu verwalten. Mit Azure können Sie Anwendungen entwerfen und erstellen, die Sie durch Zuteilung virtualisierter Ressourcen bei Bedarf skalieren können. Einige lokale Anwendungen können mit nur minimalen oder gar keinen Änderungen in Azure ausgeführt werden. Die meisten Anwendungen können jedoch von einer eigenen Architektur und einem eigenen Entwurf für die Cloud deutlich profitieren. Um die Vorteile von Azure in vollem Umfang zu nutzen, wird empfohlen, die Anwendung vor der Migration zu Azure auf die Verwendung mehrerer Rollen umzustellen.

Beispielsweise vereinen Webdienste und Anwendungen in älteren Rechenzentrum häufig mehrere Funktionen in einer einzigen Anwendung. Das ist für die Skalierung manchmal von Nachteil. Viele Webanwendungen speichern darüber hinaus den Anwendungsstatus permanent auf einer lokalen Festplatte, was in der Azure Cloud Services-Umgebung nicht funktioniert. Beim Migrieren von einer vorhandenen Webanwendung zu Azure haben Sie zwei Optionen, um die Skalierbarkeit und Elastizität von Cloud Computing in vollem Umfang zu nutzen:

In Azure Cloud Services wird jede Anwendung in Form einer oder mehrerer Rollen implementiert. Jede Rolle enthält den Code und die Konfigurationsinformationen, die zum Ausführen eines Funktionsbereichs der Anwendung erforderlich sind. Front-End-Dienste und Code, die direkt mit Webbrowsern oder anderen HTTP-Clients interagieren, sind Webrollen. Webrollen werden in IIS (Internetinformationsdienste, Internet Information Services), dem Webserver von Microsoft, ausgeführt. Eine Workerrolle führt Hintergrundverarbeitung und unterstützende Aufgaben aus. Dienste der mittleren Ebene sind normalerweise Workerrollen.

Jede Rolle kann über mehrere Instanzen verfügen. Jede Instanz führt den gleichen Code aus, der für die Rolle geschrieben wurde. Jede Instanz einer Rolle wird jedoch auf einem separaten virtuellen Computer im Azure-Datencenter ausgeführt. Für jede Rolle können Sie die gewünschte VM-Größe angeben, die von Instanzen dieser Rolle verwendet werden soll. Weitere Informationen finden Sie unter "Konfigurieren von Größen für Cloud-Dienste".

Zusätzlich zu den funktionalen Unterschieden zwischen den Rollen dient jede Rolle als Skalierungseinheit für die Anwendung. Beispielsweise können Sie 20 Instanzen Ihrer Webrolle ausführen, um mehr Verkehr bewältigen zu können. Damit können Sie z. B. nur 5 Instanzen Ihrer Workerrolle betreiben, um Anforderungen von der Webrolle asynchron zu verarbeiten. Wenn Sie eine einfache ASP.NET-, PHP- oder Node.js-Anwendung bzw. einen Webdienst erstellen möchten, reicht eine Webrolle möglicherweise schon aus. Wir empfehlen die Ausführung detaillierter Funktions- und Leistungstests für den Cloud-Dienst. Diese Tests helfen Ihnen, die optimale Anzahl der Rolleninstanzen und die Größen der VMs zu bestimmen, bevor Sie Ihre Anwendung produktiv bereitstellen. Weitere grundlegende Informationen zu Cloud-Diensten finden Sie im Azure Developer Center und im Azure Documentation Center.

Erwägen Sie, die in Azure verfügbaren Speicheroptionen für sich nutzbar zu machen. Dies hilft Ihnen, die Anwendungslogik zu vereinfachen und die Leistung des Cloud-Diensts zu verbessern. Es ist sehr wichtig, dass Ihnen beim Planen der Anwendungsmigration die Einschränkungen der einzelnen Optionen für die Datenspeicherung bewusst sind. Ferner müssen Sie wissen, wie Sie die passende Datenspeicherungsoptionen für Ihren Cloud-Dienst ermitteln. Weitere Informationen zu verfügbaren Speicheroptionen in Azure finden Sie unter "Übersicht der Datenverwaltungsdienste in Azure".

Möglicherweise möchten Sie zusätzlich den Azure-Cachedienst verwenden, um einen speicherbasierten Hochgeschwindigkeitsspeicher für Azure-Anwendungen bereitzustellen. Mithilfe des Cachediensts kann die Leistung verbessert werden, indem Informationen aus Back-End-Quellen temporär gespeichert werden. Caching kann helfen, die Kosten für den Zugriff auf Datenbankspeicher in der Cloud zu verringern. Zum Erzielen einer optimalen Leistung stellen Sie Ihre Anwendung auf Datencentern bereit, die diesen zwei Kriterien genügen:

  • So nah wie möglich an der Mehrzahl Ihrer Clients.

  • So nah wie möglich am Datencenter, auf dem Ihr Speicherkonto oder Ihre Azure SQL-Datenbankinstanzen ausgeführt werden.

Allerdings können Rechtslage und Rechtsprechung Anlass von Sorgen wegen Ihrer Daten und deren Speicherort sein. Wählen Sie in dem Fall ein Datencenter, das entweder näher an Ihrer Firma oder näher an Ihren Daten gelegen ist. Weitere Informationen finden Sie unter "Leistungsüberlegungen zu Azure SQL-Datenbanken".

Bevor Sie mit der Implementierung des Azure-Cloud-Diensts beginnen, müssen Sie ein Microsoft Azure-Abonnement erwerben. Weitere Informationen finden Sie auf der Microsoft Azure-Website. Anschließend müssen Sie die Entwicklungsumgebung vorbereiten. Microsoft stellt derzeit spezifische SDKs für die Programmiersprachen .NET, Java, PHP, Node.js, Python und Ruby bereit. Die aktuellsten Informationen zu den unterstützten Programmiersprachen und Plattformen finden Sie im Microsoft Azure Documentation Center. Darüber hinaus können Sie über Azure SDK- und Tools-Download auf alle Azure-Clientbibliotheken, SDKs und Befehlszeilentools zugreifen.

Microsoft Azure stellt ferner den Azure-Websites-Dienst zum Hosten von Websites und Webanwendungen bereit. Azure-Websites ist ein vollständig verwaltetes PaaS-Angebot (Platform-as-a-Service), das Ihnen das Bereitstellen und Skalieren von Web Apps in Sekunden ermöglicht. Weitere Informationen finden Sie unter Azure-Websites.

Um Clientanwendungen, die auf verschiedenen Plattformen ausgeführt werden, die Verbindung mit relationalen Datenquellen zu ermöglichen, hat sich Microsoft für ODBC entschieden. Dies ist die standardmäßige Clientverbindungs-API für systemeigene Clientanwendungen, die Verbindungen mit Azure SQL-Datenbanken (SQL-Datenbank) herstellen. Der SQL Server Native Client für OLE DB-Anbieter wird letztmalig in SQL Server 2012 zur Verfügung gestellt. Er wird in der SQL-Datenbank nicht unterstützt.

Verwenden Sie beim Erstellen von Anwendungen auf Windows oder Azure den .NET-Datenanbieter für SQL Server. Alternativ können Sie den SQL Server Native Client-ODBC-Treiber verwenden, der in SQL Server 2008 R2 oder höher enthalten ist. Es wird empfohlen, bei die Entwicklung neuer und zukünftiger Anwendungsversionen ODBC zu integrieren. Für vorhandene Anwendungen, die auf OLE DB basieren, wird empfohlen, diese in Zukunft zu ODBC zu migrieren. Weitere Informationen zum Konvertieren einer OLE DB-Anwendung in eine ODBC-Anwendung finden Sie unter "Konvertierung von SQL Server-Anwendungen von OLE DB zu ODBC". Informationen des ADO.NET-Teams zur Einstellung der OLE DB-Unterstützung finden Sie in der "Microsoft SQL Server OLEDB-Anbieter – Ankündigung zur Einstellung".

Wie bei jedem anderen Anwendungsprojekt müssen Sie die Anwendung so konzipieren, dass sie Verfügbarkeit, Notfallwiederherstellung und Sicherheit in einer mehrinstanzenfähigen, verteilten Cloudumgebung unterstützt. Weitere Informationen finden Sie in den "Überlegungen zu hoher Verfügbarkeit und Notfallwiederherstellung bei Azure SQL-Datenbanken" und den Sicherheitshinweisen zu Azure. Er wird empfohlen, die Sicherheitsanforderungen zu Beginn der Softwareentwicklung zu überdenken, bevor eine Anwendung auf Azure bereitgestellt wird.

Weitere Informationen zur Anwendungsentwicklung in Azure finden Sie unter "Entwickeln von Azure-Anwendungen" und "Failsafe: Leitfaden zu robusten Cloud-Architekturen".

Azure ist eine mehrmandantenfähige, dynamische, skalierbare Plattform in der Cloud. Daher müssen Sie beim Entwerfen Ihrer Anwendung cloudspezifische Überwachungs- und Diagnosetechniken vorsehen. Es wird empfohlen, Überwachung und Diagnose zu Beginn des Lebenszyklus der Softwareentwicklung zu integrieren. Beurteilen Sie Ihre vorhandenen Überwachungs- und Diagnosetechniken, um zu bestimmen, ob sie nach dem Bereitstellen der Anwendung in der Cloud adäquate Dienste leisten werden. Eine Anwendung, die beispielsweise große Protokolldateien generiert, erfordert u. U. eine Optimierung der Diagnose- und Protokolleinstellungen. Die Optimierung ermöglicht die Erstellung kleinerer Protokolldateien, die schnell untersucht oder zur weiteren Analyse in die lokale Umgebung heruntergeladen werden können.

In der folgende Liste werden einige der in Azure verfügbaren Problembehandlungstools und -verfahren vorgestellt:

  • Azure-Diagnose (WAD): Sie sammelt Betriebs- und Diagnosedaten von Ihrem Azure-Dienst. Die Azure-Diagnose protokolliert Diagnosedaten aus verschiedenen Datenquellen, wie etwa:

      • IIS-Protokollen

      • Infrastrukturprotokollen der Windows-Diagnose

      • Windows-Ereignisprotokollen

      • Leistungsindikatoren

      • Absturzabbildern

      • Benutzerdefinierten Fehlerprotokollen

      Die Protokollierungsintervalle der Azure-Diagnose sind konfigurierbar. Die gesammelten Informationen werden dauerhaft zur Analyse in Azure-Tabellen- und BLOB-Speicher aufbewahrt. Weitere Informationen finden Sie unter "Sammeln von Protokollierungsdaten mit der Azure-Diagnose".

  • System Center Azure Management Pack (MP): Das Azure Monitoring Management Pack ermöglicht es Ihnen, die Verfügbarkeit und die Leistung der unter Azure ausgeführten Anwendungen zu überwachen. Weitere Informationen finden Sie unter "Handbuch zum Überwachungspaket für Azure-Anwendungen". Es wird empfohlen, die Azure-Diagnose und das System Center Azure Management Pack zu verwenden. Weitere Informationen können Sie dem Video auf der System Center 2012: Verwalten von Anwendungen in privaten und öffentlichen Clouds-Webseite entnehmen.

  • Azure-Speicheranalyse: Sie führt die Protokollierung aus und stellt Metrikdaten für ein Azure-Speicherkonto bereit. Mit diesen Daten können Sie Anforderungen verfolgen, Verwendungstrends analysieren und Probleme mit dem Speicherkonto diagnostizieren. Weitere Informationen finden Sie unter "Speicheranalyse".

  • Verbindungsverwaltung in SQL-Datenbanken: Sie verarbeitet Fehlercodes durch Implementieren einer Logik für Wiederholungsversuche in der Anwendung. Weitere Informationen finden Sie unter "Ressourcenverwaltung in Azure SQL-Datenbanken".

  • Azure PowerShell-Cmdlets: Sie ermöglichen Ihnen, Azure Cloud- und Datenverwaltungsdienste direkt über PowerShell zu durchsuchen, zu konfigurieren und zu verwalten. Diese Tools können bei der Entwicklung und beim Testen von Anwendungen, die auf Azure Services basieren, hilfreich sein. Weitere Informationen finden Sie in der "Azure-Cmdlet-Referenz".

  • Grundlagen von Cloud-Diensten-Referenzlösung: Diese Anwendung zeigt, wie Azure-Dienste auf der Grundlage von Datenbanken erstellt werden. Diese Demo basiert auf Erkenntnissen, die das Microsoft Azure-CAT-Team (Customer Advisory Team) beim Arbeiten mit Kunden aus dem Geschäftsleben gewonnen hat. Lernen Sie die grundsätzlichen Bausteine für horizontal hochskalierbare Azure-Anwendungen kennen, einschließlich des Sammelns und Verwendens von Telemetriedaten in der Anwendung. Diese Referenzlösung finden Sie auf der Webseite Grundlagen von Clouddiensten in Microsoft Azure. Die Anweisungen schließen ein TechNet-Wiki (Cloud-Dienst-Grundlagen – Wiki) mit ausführlichen Artikeln ein.

Wie jede andere Anwendung benötigt auch Ihr Azure Cloud Service ausführliche Tests vor dem Hochladen in die Produktionsumgebung. Sie sollten auf Funktionalität, End-to-End-Ausführung, Leistung, Skalierbarkeit, Sicherheit usw. testen.

Einen ausführlichen normativen Leitfaden finden Sie unter "Bewährte Methoden zur Problembehandlung bei der Entwicklung von Azure-Anwendungen". Ergänzende Informationen finden Sie unter "Sammeln von Protokollierungsdaten mit der Azure-Diagnose" und "Testen, Verwalten, Überwachen und Optimieren von Azure-Anwendungen".

Azure bietet eine Reihe von Netzwerkfunktionen, um die Einbindung bestehender Anwendungen in die Cloud und die Verwaltung des Netzwerkdatenverkehrs zu vereinfachen. Die primären Netzwerk- und Konnektivitätskomponenten in Azure sind:

  • Azure-Speicherwarteschlangen: Azure-Speicherwarteschlangen können zum Speichern von Nachrichten verwendet werden, auf die Clients später möglicherweise zugreifen, und stellen eine zuverlässige Messagingstruktur zwischen den Rolleninstanzen bereit. Weitere Informationen finden Sie unter "Verwenden des Warteschlangenspeichers von .NET" und "Speicher".

  • Azure Service Bus: Wir empfehlen die Verwendung von Azure Service Bus für die gesamte Kommunikation zwischen Diensten in Azure. Verwenden Sie außerdem den Azure Service Bus, um die Integration von lokalen Servern und Azure aufrecht zu erhalten. Der Servicebus bietet sichere Messaging- und Relayfunktionen in der Anwendungsschicht. Azure Service Bus stellt eine cloudbasierte Kommunikationsinfrastruktur bereit, die einen allgemeinen, sicheren Messagingdienst in einem öffentlichen Netzwerk unterstützt. Er stellt einen einfachen einheitlichen Namespace, wie etwa https://meinhostname.servicebus.windows.net, bereit. Der Servicebus unterstützt die folgenden Programmiermodelle: .NET API, REST API und WCF. Weitere Informationen finden Sie auf der Webseite Servicebus-Dokumentation und "Azure-Warteschlangen und Service Bus-Warteschlangen – Vergleich und Gegenüberstellung".

  • Azure Active Directory: Wir empfehlen die Verwendung von Azure Active Directory (AD), um horizontal hochskalierte, anspruchsbasierte Zugriffssteuerung für in der Cloud gehostete Webdienst- und Endbenutzeranwendungen bereitzustellen. Azure Active Directory ist eine umfassende Cloud-Lösung für die Identitäts- und Zugriffsverwaltung. Sie kombiniert Verzeichniskerndienste, erweitere Identitätssteuerung und Verwaltung des Anwendungszugriffs. Azure AD stellt außerdem Entwicklern eine Plattform zur Identitätsverwaltung bereit, mit der sie Zugriffssteuerung für ihre Anwendungen auf der Grundlage zentraler Richtlinien und Regeln implementieren können. Der Dienst ermöglicht darüber hinaus die Integration in Windows Identity Foundation (WIF). Weitere Informationen finden Sie unter "Authentifizieren von Webbenutzern mit der Azure Active Directory-Zugriffsteuerung" und auf der Webseite Azure Active Directory-Dokumentation.

  • Azure Traffic Manager: Der Traffic Manager ermöglicht Ihnen den Lastenausgleich des eingehenden Datenverkehrs auf mehrere gehostete Azure-Dienste. Sie können Lastenausgleich für Dienste ausführen, die im gleichen Datencenter ausgeführt werden oder in verschiedenen Datencentern an beliebigen Standorten weltweit. Durch effektive Verwaltung des Datenverkehrs können Sie hohe Leistungsfähigkeit, Verfügbarkeit und Flexibilität von Anwendungen sicherstellen. Weitere Informationen finden Sie auf der Webseite Traffic Manager-Dokumentation.

  • Azure-CDN (Content Delivery Network): Das Azure-CDN (Content Delivery Network) bietet Entwicklern eine globale Lösung für das Caching von Inhalten. Sie können Inhalte an Standorten zwischenspeichern, die besonders nah an den Standorten Ihrer Kunden liegen, um für Ihre Anwendung eine optimale Benutzererfahrung zu erreichen. Das CDN sorgt für das Caching von Azure-BLOBS und der Ausgabe von statischen Inhalten von Serverinstanzen an strategisch platzierten Standorten. Auf diese Weise stellt das CDN maximale Bandbreite für die Übermittlung von Inhalten an Benutzer zur Verfügung. Sie können die CDN-Übermittlung für Inhaltsanbieter im Azure Platform-Verwaltungsportal aktivieren. Weitere Informationen finden Sie auf der Webseite Azure CDN-Dokumentation.

  • Virtuelles Netzwerk in Azure: Das virtuelle Azure-Netzwerk ermöglicht Ihnen, in Azure einen logisch isolierten Abschnitt zu erstellen. Anschließend können Sie es auf sichere Weise über eine IPsec-Verbindung mit Ihrem lokalen Datencenter oder einem einzelnen Clientcomputer verbinden. Das virtuelle Netzwerk mach die Nutzung der skalierbaren, bei Bedarf abrufbaren Infrastruktur von Azure einfach. Es bietet darüber hinaus Konnektivität zu den lokalen Daten und Anwendungen, und das für Systeme mit Windows Server, für Mainframes und UNIX-Systeme. Weitere Informationen finden Sie auf der Webseite Virtuelles Netzwerk – Dokumentation.

  • Azure ExpressRoute: Azure ExpressRoute ermöglicht das Erstellen privater Verbindungen zwischen Azure-Datencentern und Infrastruktur, die lokal ist oder sich in einer Kollokationsumgebung befindet. ExpressRoute-Verbindungen durchlaufen nicht das öffentliche Internet. Sie bieten höhere Zuverlässigkeit, schnellere Geschwindigkeiten, geringere Wartezeiten und größere Sicherheit als normale Verbindungen über das Internet. Mit ExpressRoute können Sie Verbindungen mit Azure an ExpressRoute-Standorten (Exchange-Anbieterfunktion) herstellen. Alternativ können Sie direkte Verbindungen mit Azure aus Ihrem bestehenden WAN-Netzwerk (wie etwa einem MPLS-VPN) herstellen. Weitere Informationen finden Sie auf den Webseiten ExpressRoute-Übersicht und ExpressRoute-Dokumentation.

Weitere Informationen finden Sie auf der Webseite Netzwerkdienste.

Nachdem Sie die Entwicklung des Clouddiensts oder der Anwendung abgeschlossen haben, folgen Paketierung, Upload und Bereitstellung in Azure. Es gibt vier verschiedene Bereitstellungsszenarien:

  • Neue Bereitstellung

  • Konfigurationsänderung

  • Inkrementelles Codeupgrade

  • Größeres Upgrade

Weitere Informationen finden Sie unter "Verwalten von Cloud-Diensten", "Verwalten von Bereitstellungen in Azure" und "Verwalten von Diensten".

Sie können mehrere Bereitstellungen unter Verwendung eines Azure-Abonnements konfigurieren, um Entwicklung, Testen, QA, Staging usw. zu unterstützen. Azure ermöglicht außerdem Das Konfigurieren eines Azure-Kontos für den Zugriff auf mehrere Abonnements. Auf diese Weise können Sie separate Entwicklungs- und Testumgebungen mit eigenen Abonnements für Ihre Azure-Anwendung erstellen. In diesem Fall sollten Sie den Dienst zuerst unter einem Testabonnement und dann unter einem Produktionsabonnement bereitstellen. Sobald der Dienst online geschaltet werden kann, verlagern Sie ihn in die Produktionsumgebung. Nachdem Sie den Clouddienst unter einem produktiven Abonnement bereitgestellt haben, können Sie die Stagingumgebung für fortlaufende Tests verwenden.

Azure ermöglicht Ihnen, für die Anwendung automatisches zentrales Hoch- und Herunterskalieren zu konfigureiren, um dem aktuellen Bedarf gerecht zu werden und die Kosten zu minimieren. Verwenden Sie die Regeln und Zeitpläne für die automatische Skalierung, um dieses Feature zu aktivieren. Weitere Informationen finden Sie unter "Skalieren einer Anwendung".

Siehe auch

Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft