Freigeben über


Dieser Artikel wurde maschinell übersetzt.

Cloud Computing

Muster für die hohe Verfügbarkeit, Skalierbarkeit und Leistungsfähigkeit mit Windows-Azure Computing

Joshy Joseph

Codedownload von der MSDN-Code-Katalog
Den Code Online durchsuchen

Dieser Artikel basiert auf einer Vorabversion von Windows-Azure. Details sind vorbehalten.

In diesem Artikel werden die folgenden Themen behandelt:

  • Cloud-IT-Architektur
  • Windows-Azure
  • Wolke Mustern und best practices
In diesem Artikel werden folgende Technologien verwendet:
Windows-Azure

Inhalt

Cloud Computing
Windows Azure-Implementierung
Wolke Anwendung Typen und Muster
Ein Realität-Beispiel
Anwendung Entwurf und Entwicklung
Den Dienst bereitstellen
Verwaltung
Schlussbemerkung

während der letzten Jahrzehnt , war die Entkopplung der Schnittstellen von Implementierung, skalierbare hosten Modelle, Dienstorientierung, Abonnements basieren computing und verbesserte soziale Zusammenarbeit die Ziele von verteilten Systemen. Nun Internet-gehostete Anwendungen mit der Konnektivität auf interne Anwendungen verteilt – häufig als Software + Services (S + S) bezeichnet, werden den Beliebtheit. Unternehmen sind von Drittanbietern zu Bedenken hinsichtlich der hardware, software, Zuverlässigkeit und Skalierbarkeit zu verringern gehosteten Datenzentren nutzen. Dies sind nur einige der neuen Architektur trends, mit deren Hilfe interoperable Anwendungen, die Skalierung, großes Ausgaben reduzieren und die Zuverlässigkeit erstellen. Cloud Computerumgebung bietet viele diese Vorteile.

Eine Wolke Computerplattform kann Anwendungen in einer Internet-Zugriff auf virtuelle Umgebung gehostet werden, die stellt die erforderlichen hardware, software, Netzwerk und Speicher-Kapazität und bietet für Sicherheit und Zuverlässigkeit, entfernen ein Großteil der Last erwerben und Verwalten von hardware und software interne. In der Wolke können Sie Entwickeln, Bereitstellen und Verwalten von Anwendungen wie Sie in der Vergangenheit haben und diese Dienste unter der Voraussetzung Anwendungen integrieren. Sie Zahlen nur für die Zeit, Ressourcen und muss von Kapazität können Sie beim Skalieren ändern Unternehmen gerecht zu werden.

In diesem Artikel wird es der typischen Wolke Plattformarchitektur und die einige gängige Architektur Muster, zusammen mit Ihrer Implementierung auf der Windows-Azure von Microsoft anbieten untersuchen.

Cloud Computing

Abbildung 1 zeigt die typische Wolke Plattformarchitektur computing.

fig01.gif

Abbildung 1- Mehrschicht-Architektur der Wolke Plattform (klicken Sie auf das Bild, um es zu vergrößern.)

In diesem Modell abstrahiert jede Ebene die Ebene darunter Offenlegen von Schnittstellen, denen auf Schichten oben aufbauen. Ist keine Festplatte Abhängigkeit zwischen den Ebenen und jede Ebene enthält zusammensetzbares oder Plug & Play-Funktion Architektur mit Diensten, anderen Ebenen. Jede Ebene bietet horizontale Skalierbarkeit, wie erforderlich.

Wie Sie sehen können, besteht eine Wolke-Plattform für eine Anzahl von Subsysteme. Sehen wir uns jeweils nächsten.

Eine hosting Plattform das hosting-Plattform bietet die physische, virtuelle und die Softwareressourcen. Diese Ressourcen umfassen physischen Computern, Betriebssystemen, Netzwerksysteme, Speichersysteme, Energieverwaltung und virtualization software. Leere Metall und andere betrieblichen Ressourcen sind als virtuelle Ressourcen den oben aufgeführten Schichten abstrahiert.

Cloud Infrastrukturdienste, die meisten wichtige Funktion von dieser Ebene ist werden kann, die Ressourcen, die basierend auf Skalierbarkeit und Verfügbarkeit Anforderungen zu abstrahieren, die Host-Plattform als eine Reihe von virtuelle Ressourcen und zu verwalten. Grundsätzlich diese Ebene bietet drei Arten von abstrakte Ressourcen: berechnen, Speicher und Netzwerk und stellt eine Reihe von APIs, um auf zuzugreifen und diese Ressource Abstraktionen verwalten zur Verfügung. Daher Sie Zugriff auf die zugrunde liegenden physischen Ressourcen ohne Kenntnis der details der zugrunde liegenden hardware und software und können diese Systeme effizient durch Konfiguration steuern. Vom dieses subsystem angebotenen Dienste werden häufig als Infrastruktur as a Service (IaaS) bezeichnet.

Cloud-Plattform Dienste, Entwicklung und Verwaltung von software für die Wolke computing ist sehr komplex. Es wird die zu einem komplexen wirklich Bereich, wenn Sie unter der Voraussetzung software mit gehosteten Diensten integrieren. Können Plattformdienste enthalten Funktionen wie Webdienste verfügbar gemacht, die bei solchen integration helfen. Beispielsweise kann im Azure-Services-Plattform Microsoft .NET Service-Bus mit Ermittlung und Zugriff während der Access-Steuerungsdienst von Microsoft .NET und Regel rollenbasierte Anspruchstransformation und Zuordnung kann. Verfügbarkeit von Diensten für die Plattform kann ein Wolken-Anbieter voneinander unterscheiden. Von diesem layer bereitgestellten Dienste werden als Plattform as a Service (PaaS) bezeichnet.

Wolke Anwendungen, die diese Schicht Anwendungen, die erstellt werden enthält, für cloud computing. Diese Anwendungen verfügbar machen, Web-Schnittstellen und Webdienste für Endbenutzer multitenant hosting Modelle aktivieren. Einige Funktionen sind auf, Verbinden unterschiedlicher Systeme und Wolke Speicherinfrastruktur zum Speichern von Dokumenten zu nutzen. Diese Dienste liegen unter die Palette der Software as a Service (SaaS).

Sicherheitsdienste Security services sicher token Bereitstellung Identitätsverbunds und Anspruchstransformation. Diese Dienste basieren auf den offenen standards, WS-Security, WS-Trust, WS-Federation, SAML-Protokolle und OpenID, für die größere Interoperabilität.

Management services Management Schnittstellen, die über alle Ebenen, die oben beschriebenen Ausschneiden. Die Host-Plattform nutzt Verwaltungsschnittstellen und agents für die automatisierte Skalierbarkeit und Verfügbarkeit Verwaltung. Obwohl der Wolke gehostet und in einem Datenzentrum verwaltet, müssen Kunden Funktionen, die problemlos steuern Ihre Anwendung und Buchen von Bereitstellung Konfigurationen, Analysen zu Serviceverbrauch abrufen, und verbinden die enterprise-Verwaltungssystemen zulassen.

Tools für die Tools können Sie die Erstellen, Testen und Bereitstellen von Anwendungen in der Wolke. Diese tools möglicherweise Erweiterungen zu vorhandenen tools (Visual Studio Tools for Windows-Azure, z. B.) oder tools von einem bestimmten Wolke Anbieter gehostet.

Benutzer und Anbieter von computing, es gibt drei Feldkategorien für Benutzer in Wolke cloud computing: Wolke Plattform Anbietern, Wolke Verbraucher und Endbenutzer. Wolke Plattform Anbieter wird die hosting Plattform- und Wolke Infrastruktur-Dienste anbieten. Wolke Verbraucher die Wolke-Plattform nutzen, und entwickeln Anwendungen und Dienste aus, und von Benutzern genutzt werden sollen. Cloud-Verbraucher konfigurieren Sie Anwendungen für Skalierbarkeit, Verfügbarkeit und Sicherheit-Anforderungen. Endbenutzer nutzen die Dienste von Wolke Verbraucher angeboten. Diese Benutzer konnte Person, Organisation oder Computer und können eine beliebige Stelle gehostet werden.

In diesem Kontext bietet Azure eine Wolke-Plattform, während der Wolke Verbraucher (oder unabhängige Softwarehersteller integrierte Wolke Lösungen oder Unternehmen erstellen) diese Plattform Erstellen von Anwendungen nutzen. Die Live-Mesh-Synchronisierung-Datenplattform beispielsweise nutzt werden soll, die Azure Services-Plattform und die Windows-Azure zum Entwickeln und Host S+S-Dienste für Endbenutzer.

Abbildung 2 wird die Azure-Service-Plattform der Schichtenarchitektur in Abbildung 1 zugeordnet. Diese Plattform bietet eine Reihe von Diensten für Anwendungsentwickler. Diese Dienste können sowohl von Anwendungen, die in der Wolke ausgeführt und von Anwendungen auf lokalen Systemen verwendet werden. Windows-Azure, Betriebssystem für die Wolke, bildet die Grundlage der Wolke des Microsoft-Plattform anbieten. Wie in Abbildung 2 dargestellt, bietet Azure Services-Plattform eine Reihe von gemeinsamen Diensten: SQL Data Services, .NET Services und Live-Services, die einzeln oder zusammen verwendet werden kann. Darüber hinaus bietet Microsoft verschiedene fertig Wolke-Anwendungen einschließlich Exchange online, SharePoint-online und CRM online. Hier werde jedoch ich MICH auf nur Windows-Azure-Betriebssystem und zugehörige Muster konzentrieren.

Abbildung 2 Azure zu Mehrschicht-Architektur zugeordneten Services-Plattform

Windows Azure-Implementierung

Windows-Azure bietet von on-demand-compute und Speicher-Funktionen auf Host, Skalierung, und und Verwalten von Webanwendungen Dienste auf dem Internet in Datenzentren von Microsoft gehostet.

Windows-Azure umfasst Funktionen, die Verbraucher der Wolke Dienste benötigen wird. Beispielsweise sind physischen Hardwareressourcen abstrahiert eingelagert und verfügbar gemacht, wie das Berechnen von Ressourcen bereit, die von der Wolke Anwendungen genutzt werden sollen. Physische Speicher abstrahiert, Speicherressourcen und über wohldefinierte Speicher Schnittstellen verfügbar gemacht. Eine allgemeine Windows-Struktur abstrahiert die physische hardware und software-Plattform und macht die virtualisierte compute und Speicher-Ressourcen verfügbar. Darüber hinaus wird jede Instanz der Anwendung für Verfügbarkeit und Skalierbarkeit überwacht, und automatisch verwaltet. Z. B. wenn eine Anwendung in einer Instanz ausfällt, der Fabric-controller (siehe Abbildung 3 ) werden Sie benachrichtigt und eine andere Instanz auf einem anderen virtuellen Computer (VM) wird mit eingeschränkten Auswirkungen für Endbenutzer instanziiert werden. Aufgrund der Virtualisierung, wenn den code schreiben müssen Sie sicherstellen, dass Sie alle Annahmen über den Status der Computer Ihrer Anwendung hosten treffen nicht. In Windows-Azure konnte Ihr Dienst einfach um einen neuen virtuellen Computer verschoben werden. Windows-Azure folgt ein modellgesteuerte service management-design mit Azure Fabric-Controller für das Zuordnen von deklarativen service-Spezifikationen zu verfügbaren Ressourcen und Verwalten von des Lebenszyklus von den Diensten zuständig ist.

Abbildung 3 Windows Azure und Rollen

Standardmäßig können die meisten Anwendungen in .NET entwickelt in Azure mit einigen bestimmten Einschränkungen auf Modelle mit teilweiser Vertrauenswürdigkeit, Datenspeicherung/Zugriff und inter-application Kommunikation gehostet werden. Ein Rich-Entwickler-SDK und Programmiertools können Sie die auf dieser Plattform ausgerichtet zu erhalten.

Nach rechts, nun Sie .NET Anwendungen, ASP.NET-Anwendungen und WCF-basierte Webdienste erstellen können mit tools in Visual Studio unterstützt.

Windows-Azure bietet derzeit zwei Verarbeitung-Methoden, Web-Rolle und der Arbeitsprozess-Funktion, (siehe Abbildung 3 ). Jede Rolle auf einem separaten virtuellen Computer führt aus und kommuniziert mit Azure Fabric über einen agent. Der agent sammelt Ressource-Analysen und Knoten Metriken einschließlich virtuellen Computer Verwendung, Anwendungsstatus, Protokolle, Ressourcenverwendung, Ausnahmen und Fehler Bedingungen. Beachten Sie, dass jede VM auf einen einzelnen physischen Host oder eine Windows-2008 hypervisor virtuellen Computer ausgeführt werden kann. Bestimmte Laufzeitkonfiguration Host von Windows-Azure, abhängig von der Ebene-Servicevereinbarung vorgegeben ist, und andere Unternehmen/technische müssen. Eine Web-Rolle hosts von interaktive Webanwendungen und bietet in gebundenen und out-bound-Verbindungen (Anforderung / Antwort-Muster). In-Grenze Aufrufe werden über Azure-bereitgestellten Laden balancers zur Gewährleistung hohen Verfügbarkeit weitergeleitet. Wie Sie bemerkt haben, erzwingt diese an, dass jede Web Rolle Instanz statusfreie sein, sodass Stoff die Anforderungen für alle Web-Rolle in dem cluster weiterleiten kann.

Die Rolle Arbeitsprozess ist es sich um eine spezielle Anwendung eine .NET-Anwendung wird im Hintergrund ausgeführt.. Diese Anwendungen müssen nicht gebunden Konnektivität von externen Anwendungen. Jedoch können Sie Nachrichten mit externen Diensten senden. Beim Arbeiten mit Web Rollen, Übermittlung Worker-Funktionen Nachrichten mithilfe der Windows-Azure der Speicherdienst. Eine andere interessanter Aspekt ist die dezentral-Funktion, der Rollen. Administrator Bereitstellung Anwendung kann angeben, wie viele Instanzen der jede Rolle in der Konfiguration möglicherweise notwendig sind, und der Fabric wird entscheiden, zum Ausführen von diesen Fällen je nach den system dezentral Anforderungen. Kurz gesagt, bietet Windows-Azure, always-on, on-demand Bereitstellung und die Behandlung des Fehlers.

Bisher habe ich allgemeine Konzepte Wolke Plattformen und bestimmte features von Windows-Azure behandelt. Es wird als Nächstes einführen, einige Kern Wolke Anwendungstypen, Architektur Mustern und best practices, dass Sie vertraut beim Entwickeln von Anwendungen für Wolke Plattformen sein sollten.

Wolke Anwendung Typen und Muster

Es gibt eine Reihe von Architektur und design und die bewährte Methoden, mit deren Hilfe Wählen eine Wolke-Plattform und Implementierung Wolke Dienste- und Anwendungen. Im Allgemeinen diese Muster fallen, in vier Kategorien: compute, Speicher, Kommunikation und Verwaltung.

Compute-Muster, sobald Sie wissen, welche Anwendung, die Sie eingeben werden im Zusammenhang mit, wählen Sie das entsprechende compute-Muster aus. Wie bereits erwähnt, ist die Web-Funktion zum Erstellen von interaktiven Anwendungen Muster, während die Arbeitsprozess-Rolle für die Erstellung von Hintergrund und Planer Aufgaben geeignet ist verwendet. In einigen Fällen müssen Sie beide Funktionen. Ein wichtiger Aspekt beim Planen von compute Aufgaben ist die Beachten Sie, um diese Aufgaben derart, vermeiden Sie große Datenmengen um verschieben durchzuführen.

Speicher Muster Wolke Speicher stellt remote Speicher und das Speichermedium weg von den Benutzern abstrahiert. Das design ist ausreichend flexibel, um eine Vielzahl von Anwendungsanforderungen der zu unterstützen. Azure behandelt zwei Muster der Wolke Speicherung: Tabelle speichern und blob-Speicher. Das Tabelle Speicher Muster kann die Anwendungen speichern Schlüssel-Wert-Paare nach eine Tabellenstruktur, zwar das blob Speicher Muster verwendet werden kann, um alle Daten zu speichern.

Kommunikation Muster diese Muster Adresse Nachrichtenaustausch. Azure-Technologie nutzt Windows Communication Foundation (WCF) und REST-APIs für die Web service-Kommunikation. Sie müssen teilweiser Vertrauenswürdigkeit Modelle und die statusfreie Art der Anwendung beim Implementieren von Kommunikationsmuster berücksichtigt werden.

Verwaltung Muster Verwaltung Muster unterscheiden die zwei wichtigsten Aspekte bei der service management: Dienst Bereitstellung und der Dienst-Ebene-Verwaltung. Bereitstellung Muster Anordnen von Dienstdefinition, Konfiguration und Überwachung, während andere Muster Servicelevel-management und operative Wartungsarbeiten in regelmäßigen Adresse.

Jetzt sehen wir uns Wolke Anwendungstypen im detail. Es wird Wolke Anwendungstypen klassifizieren, in drei Kategorien, die basierend auf den Arten von Szenarios, die einzelnen Adressen. Die erste Kategorie enthält es sich um Webanwendungen. Herkömmliche gehostete Webanwendungen, Beispiele aufkommenden zusammengesetzt Anwendungen, die zwei oder mehr Datenquellen und Dienste nutzen können. Diese Anwendungen benötigen automatische dezentrales Skalieren und Skalierung-down-Funktionen. Eine Anwendung wie Facebook ist ein gutes Beispiel. In solchen Fällen kann die Organisation einen Start sein, der wenig großer Infrastruktur zu verbringen, beim Erhöhen Bedarf verarbeiten können möchte.

Als Nächstes es gibt die analytischen Anwendungen, deren Hauptfunktion ist, prozessorintensiv Vorgänge und Daten mining, häufig über dieselben Daten oft ausgeführt, und daher Sie benötigen Zugriff auf dabei produzierte Menge an Speicher Kapazität und der Prozessor die Verfügbarkeit auf einmal. Damit Wolke Dienste ansprechend sind ist nicht erforderlich für solche großer Kapazität 24-Stunden täglich aus und sieben Tage eine Woche, jedoch bezahlen.

Es gibt schließlich die parallel computing-Anwendungen, die mehrere Vorgänge parallel durchführen, damit ein großes Projekt in einem kurzen Zeitraum ausgeführt werden kann. Und für die 1 time--nur Kapazität, die Datenverarbeitung cloud bereitstellen kann ist noch einmal, eine kostengünstige Lösung.

Nicht alle Anwendungen eignen sich zum Ausführen auf der Wolke-Plattform. Die offensichtlichen einschränkenden Faktoren gehören die Datensicherheit, potenzielle Sperre-in mit einer Wolke Anbieter offene Schnittstellen für die Kommunikation, Vertrauensstellung Modell Einschränkungen, Effizienz der Verschieben von Daten über die Wolke, integration mit vorhandenen Dienste außerhalb der Wolke-Plattform und Legal/Datenschutz bedenken. Abbildung 4 Listet einige Szenarios, die für die Wolke computing geeignet sind und Abbildung 5 zeigt werden, geeigneten Muster, Szenarien und features.

Abbildung 4 Anwendung Typen geeigneter für cloud Computing
Cloud-Application-Typ Kontext Szenario-Beispiel
Webanwendungen Webanwendungen der Host herkömmlichen und interaktive Anwendungen, die zwei oder mehr Datenquellen und-Diensten zu bilden. Ein Start-Unternehmen Erstellen einer Web Zusammenarbeit Anwendung wenig großer Infrastruktur aufwenden erwartet.
Parallel Computing Umfangreiche parallele Ausführung von compute-Vorgängen. Diese Aufgaben werden normalerweise für einen kurzen Zeitraum verwenden mehr und Speicherung von compute-Ressourcen ausführen. Ein Zeitung entscheidet auf digitization von Berichten für eine bessere Web-Verbrauch.
Analytischen Anwendungen Analytical processing führt verschiedene analytische und data mining-Algorithmen über dieselben Daten wieder. Ein finanzielle Unternehmen Ausführen von Monte-Carlo-Simulationen auf Finanzdaten um Risiko in regelmäßigen Abständen zu bewerten.
Abbildung 5 Muster, Features und die entsprechende-Szenarios
System-Überlegungen Muster-Kategorien Kontext Feature von Windows-Azure Szenario-Beispiel
Berechnen On-demand-Application-Instanz Anwendungen, die dezentrales Skalieren und die Dezimalstellen-down-Funktionen benötigen. Automatisierte Verwaltung von- und Worker-Funktionen Lassen Sie die im Einzelhandel Informationsspeicher Websites während besondere Ereignisse verfügbar sein.
  Arbeitsprozess Parallele Stapelverarbeitungen oder Hintergrund Anwendungen ausgeführt. Nutzen mehrere Instanzen von Worker-Funktionen zum Hintergrundaufgaben ausführen Verwenden von Planer für Analyse, die Verarbeitung durch das Ausführen von Hintergrund ausgeführten Aufgaben in parallel.
Speicherplatz BLOB-Speicher Speichern umfangreiche unstrukturierte Daten. Nutzen die Azure-BLOB-Speicher Unternehmen Speichern von Berichten der gesetzlichen Bestimmungen in sichern Speicher.
  Strukturierte Speicherung Speichern von Daten in einer Tabellenstruktur beim anspruchsvolle nicht vollständig relationale-Semantik. Azure-Tabelle-Speicher Ein strukturierter Speicher um eine Webanwendung state—i.e zu verwalten. speichern die Bestellung oder einkaufen Einkaufskorb Informationen.
Kommunikation Dienst-Schnittstelle (Web und Web-API-Dienst) Offenlegen Anwendung Funktionen über die BENUTZEROBERFLÄCHE und Webdienste. Azure Unterstützung für das Erstellen von Anwendungen mithilfe von ASP.NET, Silverlight, WCF-Webdienste Firma Erstellung digital asset management-Lösung APIs mit anderen Diensten auszusetzen.
  Service-orientierten-integration Aufrufen von externe Webdiensten über Internet-standard-Protokolle. Azure-Plattform unterstützt die WCF-clients und der REST-APIs Webanwendungen, die Microsoft-gehosteten live Besprechung-Dienste für Zusammenarbeit zu nutzen.
  Messaging Freigeben von Nachrichten zwischen Anwendungen auf eine skalierbare, zuverlässige und asynchrone Weise. Nutzen die Azure der Speicherdienst für Web auf Arbeitsprozess Rolle Kommunikation Webanwendung ein Planer informiert, eine bestimmte Aufgabe auszuführen.
Verwaltung Cloud-Bereitstellung Bereitstellen von Anwendungen mit den gewünschten Konfigurationen wie z. B. dezentrales Skalieren und hohe Verfügbarkeit. Trennung von Dienstdefinition, Konfiguration Dienste und Packen von Anwendungen zum entsprechende Rollen Eine Verkaufsversion speichern konfigurieren Web portal in automatisch Skala-out Wenn Verwendung Schwellenwert überschreitet und die Dezimalstellen-nach Bedarf.
  Design für Vorgänge Wie meine Anwendung Operationen-sofort durch die Bereitstellung von Zustand und Protokollierung. Verwenden die Windows-Azure-RoleManger.WriteToLog-API und überschreiben RoleEntrypoint.GetHealthStatus() in die Worker-Funktion Entwickler Entwerfen cloud Anwendungen Vorgänge durch die Instrumentierung angezeigten werden.
  Service-Instanz-Management Starten Sie, beenden Sie und halten Sie der Wolke Anwendungen an. Verwalten von service-Konfigurationen. Automatische Verarbeitung von dynamischen Konfigurationsänderungen und Fehler Bedingungen Eine Anwendung Webadministrator mit das Azure portal Anwendungszustand verwalten.
  Verwaltung von Warnungen Senden Sofortnachrichten, e-mail oder Benachrichtigungen über Ressourcen- und Abrechnung Informationen. Durch integration von Live bereitgestellten Aktivieren von Anwendungen für Sofortnachrichten zu senden. Standard-Benachrichtigung zur Ressourcenverwendung der.
  Service Level Management Anzeigen von Informationen zu Anwendung Ressourcenverbrauch wie Prozessorzeit, Bandbreite. Automatisierte service-management über basierendes Modell Ansatz ISV suchen Abrechnungs- und Ressource Verwendung Informationen über die Anwendung bereitgestellt.

In Windows-Azure sind die Web-Rollen geeignet, zum Ausführen von interaktiver Webanwendungen während Worker-Funktionen für die Hintergrund-Anwendungen geeignet sind. Daten werden in Azure-blob und Tabelle Speicher Diensten gespeichert. Inter-Role-Kommunikation ist über eine Warteschlange-Dienst aktiviert, enthält einen asynchronen Nachrichtenaustausch. Die Plattform unterstützt WCF-basierte-Webdiensten und -clients mit Basic HTTP- und WS * Bindung. Speicher-Dienste werden über REST-Formatvorlage Schnittstellen für einfacher Verbrauch von anderen Anwendungen und der Wolke Anbieter verfügbar gemacht.

Wie Sie wissen, bieten Muster flexible Lösungen für häufige Probleme, die in der Softwareentwicklung. Als Nächstes wird es allgemeinen Muster Kategorien, die gemäß der obigen Arten der Anwendung identifiziert.

Ich werde anstatt jedes einzelne Muster ausführlich beschreiben möchten, auf das umfassende Problembereiche und zugeordneten Muster Kategorien konzentrieren und anzeigen, wie diese Muster im Kontext des Azure Entwicklung implementiert werden.

Ein Realität-Beispiel

Lassen Sie mich ein Szenarios vorgestellt, das unterstützen einige diese Konzepte zu veranschaulichen. Fabrikam, ein ISV, möchte eine gehosteten digital asset-management-Anwendung zu erstellen. Diese Anwendung kann Endbenutzer Speichern von digitale Bildern in der Wolke. Benutzer müssen möglicherweise eine Vorschau der Bilder gesendet, markieren Sie und kommentieren Sie mit den Speicherort von Informationen. Die Anwendung muss Benutzern eigene desktop-Anwendungen zu verwenden, um diese Bilder direkt aus dem Remotespeicher zu zuzugreifen ermöglichen. Abbildung 6 stellt eine allgemeine Architektur Ansicht der Dienste von Fabrikam zur Verfügung gestellt werden dar. Wie in dem Diagramm dargestellt, macht beim Fabrikam der eine Webanwendung und die Webdienst an den Endbenutzer für die Verwaltung Ihrer digitalen Anlagen verfügbar. Diese Dienste Speichern und Abrufen von digitale Anlagen aus der Anlage-Speicher auf der Windows-Azure-blob-Dienste implementiert. Fabrikam implementiert einen Hintergrund Prozessor zum Ausführen von Aufgaben wie Tags, Miniaturansichten Generierung und usw..

Abbildung 6 Fabrikam gehostete in Windows-Azure

Wir erfahren, wie Entwerfen, Entwickeln und diese eine Anwendung die Azure Services-Plattform bereitzustellen. Die Diskussionen, die Folgen veranschaulichen die grundlegenden Konzepte und Funktionen in Windows-Azure. Sie können den code und Dokumentation, wie das gesamte Szenario implementiert ist, und im Windows-Azure gehostet, downloaden.

Anwendung Entwurf und Entwicklung

Das erste Schritt darin, nach verstehen, die Anwendungen Szenarios entsprechende Muster, Empfehlungen und Programmiermodelle auswählen. Während dieses Prozesses werden Sie den Typ des der Anwendung und die Arbeitsauslastung, die für Windows-Azure identifizieren. Darüber hinaus werden Sie die inter-application Messaging- und Daten Speicher Muster herausfinden. Hier werde ich angenommen, dass Fabrikam eine interaktive Webanwendung mit dezentral-Anforderungen und einem processer Hintergrund, Metadaten aus digitalen Anlagen zu generieren erstellen ist. Das oben dargestellte Szenario benötigt Azure-Websites und Arbeitsprozess Rollen, bzw.. Darüber hinaus benötigt Fabrikam BLOB-Speicher zum Speichern von digitalen Anlagen und Metadaten, Dienstschnittstellen, um Anlagen und messaging Muster für die Kommunikation verfügbar zu machen.

Um Entwicklung zu vereinfachen, enthält das Windows-Azure-SDK einer Entwicklungsumgebung, die Windows-Azure auf dem lokalen Computer, simuliert dadurch aktivieren offline Entwicklung und Debuggen. Das SDK unterstützt die Web- und Arbeitsprozess Rollen Speicher Visual Studio-Vorlagen, tools, für die Verpackung, Anzeigen und Verwalten von Rolle Instanzen sowie ein Visual Studio-add-in, das die F5-Taste Erfahrung ermöglicht. Sie können das SDK von Microsoft Download center downloaden.

Verwenden Sie die Windows-Azure-Tools für Microsoft Visual Studio um ein neues Projekt mit die Wolke Service Projekt-Vorlagen zu erstellen, um zu beginnen. Sie können erforderlichen Benutzeroberfläche, Anwendungslogik und Eingabe verarbeiten, auf die Webanwendung hinzufügen. Alternativ können Sie aus einer vorhandenen ASP.NET Web-Anwendung starten. Da die Anwendung unter teilweiser Vertrauenswürdigkeit ausgeführt wird, vermeiden Sie die aufrufen-APIs, die diese Einschränkung verletzen. Weitere Informationen über diese Einschränkung finden Sie Geben Sie unter derWindows-Azure-SDK vertrauen Referenz für Gruppenrichtlinien.

Anschließend importieren Sie die Microsoft.ServiceHosting.ServiceRuntime-assembly, und verwenden Sie die entsprechenden APIs, damit Sie die Protokollierung, lesen die Konfiguration der lokalen Umgebung und Lesen Anwendung Konfigurationsabschnitte der der Dienst Definitionsdatei, wie unten dargestellt.

 // Writing log information
 RoleManager.WriteLog ("Information", "message to show in the log file"); 
 // Getting service configuration information 
 RoleManager.GetConfigurationSetting("MyConfigSection"); 

// Getting local environment; code snippet below shows getting a pointer
//to a local file 
ILocalResource resource = RoleManager.GetLocalResource(    "ComputeLocalStorage")

Übrigens ist Programmierung bewährte um die oben genannten Protokollierung zu ersetzen, und access Ressourcencode mit wieder verwendbaren Anwendung blockiert (Protokollierung und Konfiguration Blöcke) wie z. B. Microsoft Enterprise Library-Anwendungsblöcke. Sie können bestimmten Anbieter für Windows-Azure-Protokollierung und Konfigurationsverwaltung zu implementieren und in die Laufzeit eingesteckt. Diese Empfehlungen decouple Anwendungen von plattformspezifischen-APIs und erhöhte Wiederverwendbarkeit zwischen unter der Voraussetzung und Wolke Umgebung helfen.

Speicheranforderungen für Ihre Anwendung müssen geschrieben werden, um unterstützt Azure Speicher Muster nutzen. Es wird diese kurz behandeln.

Als Nächstes fügen Sie einen Arbeitsprozess Rolle Projekt hinzu, in das Projekt, und öffnen Sie WorkRole.cs. Diese Datei enthält eine Klasse namens WorkerRole, die von der RoleEntryPoint-Klasse abgeleitet wird. Diese Klasse stellt Methoden zum Verwalten von der Initialisierung, Starten und Beenden eines Dienstes Worker-Funktion sowie zum Überwachen des Zustand des Dienstes.

In diesem Schritt überschreiben Sie normalerweise zwei Methoden, wie in dargestellt Abbildung 7 .

Abbildung 7-WorkerRole

public class WorkerRole : RoleEntryPoint
{
  public override void Start()
  {
      RoleManager.WriteToLog("Information", "Generating metadata from digital assets");

      while (true)
      { 
            RoleManager.WriteToLog("Information", "background task is executing thumbnail extraction");
            Thread.Sleep (1000);  
      }
  }

  public override RoleStatus GetHealthStatus()
  {
            return RoleStatus.Healthy;
  }
}

Führen Sie nun die Anwendung in der lokalen Entwicklung Struktur aufleuchtet, müssen Sie das F5-Taste. Protokolle, die in die Konsole-Instanzen Web- und Worker-Funktionen geschrieben wird angezeigt.

Jetzt wir einen blob-Informationsspeicher zu konfigurieren und darauf aus der Rolle Web zugreifen.

Zuerst müssen Sie Sie das blob Speicher Konto information.You müssen die folgenden Parameter angeben:

AccountName: Geben Sie den Namen des der Windows-Azure-Kontos.

AccountSharedKey: Geben Sie dem key verwendet, um eine Anforderung für Windows-Azure-Speicher zu authentifizieren. Um eine Anforderung zu authentifizieren, müssen Sie die Anforderung mit dem Schlüssel für das Konto signieren, die die anfordert.

BlobStorageEndpoint: Gibt den Basis-URI des der Speicherdienst blob.

ContainerName: Gibt den Namen des Containers blob verwendet, um Bilder für diese Anwendung zu speichern an.

Beispielsweise sehen Sie sich die folgenden Konfigurationseinstellungen:

  <ConfigurationSettings>
   <Setting name="AccountName" value="fabrikamAccount" />
   <Setting name="AccountSharedKey" value="Eby111M02xNOcqFlqUwJPLlmEtlCD
   XJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBekso45Gw==" />
   <Setting name="BlobStorageEndpoint" value="http://127.0.0.1:10000"/>
   <Setting name="ContainerName" value="fabrikamImagegallery"/>
  </ConfigurationSettings>

Die REST-API für BLOB-Speicher stellt zwei Ressourcen: Container und blobs. Ein container eines blobs; alle blob muss auf einen container gehören. BLOBs wurden mithilfe der PUT-Vorgänge definiert durch die REST-API. Verwenden diese APIs, die Sie einen hierarchischen namespace zum Organisieren von Ressourcen wie z. B. fabrikamImagegallery/Bilder und fabrikamImagegallery/Dokumente erstellen können, wobei sich fabrikamImagegallery auf der name von container und Bildern ist verweist, auf die blob. Beachten Sie, dass jede blob von Codeblöcken maximal MB Größe für die effiziente Verwaltung konstruiert werden konnte.

Arbeiten mit der REST-API ist eher mühsam und daher im SDK Lieferumfang eine Beispiel-Bibliothek, abstrahiert die REST-Aufrufe und macht Muster von well known Zugriff über die Klassen BlobContainer und StorageAccountInfo.

Abbildung 8 Zeigt, wie mit BLOB-Speicher arbeiten.

Abbildung 8 Verwenden von BLOB-Speicher

BlobStorage blobStorage = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration());

BlobContainer newContainer = blobStorage.GetBlobContainer("ContainerName");

newContainer.CreateContainer(null, ContainerAccessControl.Public);

this.container.ListBlobs(String.Empty, false);

BlobProperties properties = new 
 BlobProperties(string.Format(CultureInfo.InvariantCulture, "image_{0}", "idenitifier1"));

NameValueCollection metadata = new NameValueCollection();
metadata["Id"] = id;
metadata["Filename"] = "filename";
metadata["Tags"] = "Image";

properties.Metadata = metadata;

this.container.CreateBlob(properties, imageBlob, true);

Nun, einen Warteschlange-Speicher-Dienst, um Nachricht aus einer Rolle Web an eine Rolle Arbeitsprozess zu senden wir erstellen. Der Azure-der Windows-Dienst bietet zuverlässige, permanente messaging innerhalb und zwischen den Diensten. Die REST-API für die Warteschlange-Dienst stellt zwei Ressourcen: Warteschlangen und Nachrichten. Es ist möglich, erstellen Sie eine unbegrenzte Anzahl von Warteschlangen jedes über einen eindeutigen Namen identifiziert. Die maximale Größe der Nachricht ist auf 8KB beschränkt. Sie sind für die Nachricht nach dem Einlesen löschen verantwortlich, andernfalls die Nachricht wird bleiben in der Warteschlange für die angegebene Zeit.

Abbildung 9: Zeigt, wie Warteschlangen-Speicherplatz und Nachrichten in einer Worker-Rolle zugreifen.

Abbildung 9 die Queue Storage-Vorgänge

public class WorkerRole : RoleEntryPoint
{
        public override void Start()
        {
            Uri baseUri = new               
                 Uri(RoleManager.GetConfigurationSetting("QueueEndpoint"));
            string accountName = RoleManager.GetConfigurationSetting("AccountName");
            string accountKey =  
                RoleManager.GetConfigurationSetting("AccountSharedKey");

           StorageAccountInfo account = new StorageAccountInfo(
           baseUri,
                null,
                accountName,
                accountKey);

            QueueStorage service = QueueStorage.Create(account);
            MessageQueue queue = service.GetQueue("fabrikamimageprocessingqueue");

            while (true)
            {
                Thread.Sleep(10000);
                if (queue.DoesQueueExist())
                {
                   Message msg = queue.GetMessage();
                   if (msg != null)
                   {

                      queue.DeleteMessage(msg);
                   }
                }
            }
        }
….
}

Jetzt können Sie zum Testen dieser Anwendung in der lokalen Entwicklung Struktur aufleuchtet, müssen Sie das F5-Taste. Von Rollen-empfangen-Eingaben und Senden von Nachrichten zu Worker-Funktionen über Warteschlangen wird angezeigt. Mittlerweile Sie ausgefüllt haben alle erforderlichen Entwicklung Aktivitäten, die erforderlich sind und die Anwendung auf Azure veröffentlichen.

Den Dienst bereitstellen

Bereitstellen von Diensten in Windows-Azure ist relativ einfach. Jedoch müssen Sie zunächst entscheiden, welche Informationen in der service-Definitionsdatei (Anwendung Konfiguration Informationen) und Dienstkonfiguration enthalten, Datei (Umgebung Anforderungen), zum Verpacken von der Anwendung, ob Sie nutzen können vorhandenen tools zum Erstellen und Hochladen von Paketen und zum Speichern von Paketen in der Wolke-Speicher und später zu Azure bereitstellen.

Hier sehen Sie wie ich diese Anforderungen für die Beispielanwendung Adresse wird.

Fabrikam ISV hat Entwickler, Bereitstellung und operativen Rollen verwalten Sie die Anwendungen, die Wolke. Entwickler erstellen Sie eine service-definition-Datei, die Informationen über die Anwendung enthält. Die Dienst-Definitionsdatei (.csdef) definiert die verfügbaren Rollen an einen Dienst, gibt die Dienstendpunkte und Konfigurationsparameter für den Dienst herstellt. Die Dienst definition-Einstellungen können nicht geändert werden, nachdem ein Dienst bereitgestellt wurde. Diese Datei wird Teil der Paketdatei-Dienst während der Verpackung.

Entwickler erstellen Sie eine Dienst-Konfigurationsdatei (zur Angabe der Anzahl von Instanzen erforderlich sind und die Azure Kontoinformationen) auch für lokales Debuggen und Bereitstellen von Bereitstellung Azure. Die Dienst-Konfigurationsdatei (.cscfg) Gibt Werte für die Konfigurationseinstellungen für eine oder mehrere Rolle Instanzen innerhalb der ausgeführten Dienst an. Operative Mitarbeiter können dynamisch dieser Dienst-Konfigurationseinstellungen ändern, ohne dass Sie den Dienst erneut bereitgestellt. Die Dienst-Konfigurationsdatei ist nicht mit dem Dienst verpackt allerdings auf der Windows-Azure-Fabric als separate Datei hochgeladen wird.

Das Bereitstellung-Personal aktualisiert die services-Konfigurationsdatei vor Produktion Bereitstellung mit Azure-spezifische Kontoinformationen und betriebliche Anforderungen (Anzahl der Produktions-Instanzen erforderlich sind).

Entwickler oder die Bereitstellung Mitarbeiter erstellen, Azure Bereitstellung-Pakete mithilfe von Visual Studio-tools oder die CSPack-tool, das mit dem Azure-SDK geliefert wird.

Es ist möglich, Speichern von Bereitstellung Pakete in der Azure-blob-Speicher und Abrufen von beim Bereitstellen von für die Azure Wolke-Plattform

Die Dienst-Paketdatei (.cspkg) ist eine ZIP-Datei, die Rollen- und alle enthält Rolle verknüpft Dateien (Binärdateien, Bilder und config in ein Artefakt verpackt). Sie können diese Pakete generieren, mithilfe von Visual Studio, oder verwenden Sie das CSPack-tool. Wenn Sie Visual Studio verwenden, um auf die Entwicklung Stoff das Paket erstellt auszuführen, müssen eine .csx-Erweiterung. Jedoch wenn Sie das feature "Veröffentlichen" verwenden, erstellt es eine .cspkg-Datei, d., die h. eine ZIP- und verschlüsselte version der Datei .csx wird. Dies verschlüsselt, und ZIP-version mit der Erweiterung der .cspkg wird in der Wolke hochgeladen aus.

Jetzt können Sie die Dienst-Konfigurationsdatei (.cscfg) und eine Paketdatei (.cspkg) auf Windows-Azure hochladen. Dafür müssen Sie zuerst um Konten des Windows-Azure compute und Speicherung von im Azure Services-Entwicklerportal zu erhalten. Nach Erhalt diese Konten können Sie dem Paket auf der Wolke jedoch das Azure Entwickler-portal bereitstellen. Nachdem die Dateien hochgeladen werden, müssen Sie mit einer internen staging URL bereitgestellt werden, dass Sie zum Testen von Ihrem Diensts in der Windows-Azure-Fabric verwenden können. Wenn Sie in der Produktionsumgebung verschieben erhalten Sie die Produktion-URL.

Verwaltung

Funktionen für Verwaltung behandeln die Verwaltung, Corporate governance und operative Aspekte der Anwendungen in einer Wolke-Umgebung bereitgestellt. Geht davon nutzen die Wolke Plattformen für das Hosten von Anwendungen aus, dass die Dienste bereitgestellt in einer kontrollierten Umgebung mit entsprechenden Servicelevel-management, Ressourcenverwaltung, Dienst bereitstellen, Sicherheitsmodellen/Vertrauensstellung, und überwachen entsprechen. Sie sollten mit der Schlüssel funktionalen Funktionen für service management erforderlichen vertraut sein. Dazu gehören:

  • Entwickeln Dienste mit Empfehlungen für Vorgänge-Anzeigenamen Implementierung erforderlichen instrumentation aufnehmen.
  • Überwachen der Zustand und die Verfügbarkeit der Wolke Anwendungen und Dienste.
  • Erfassen von Metriken, Serviceverbrauch, Leistung, Berichterstattung und Abrechnung.
  • Aktivierung automatisiert die Bereitstellung von Diensten und Aktualisieren von Dienst-Konfigurationen.

In Windows-Azure-agents überwacht jede VM-Instanz für Fehler Bedingungen und Metriken Bezug auf Fehler, Leistung measures und Verwendung Metriken sammeln.

Azure Fabric automatisiert die Bereitstellung und Verwaltung Aspekt mit eingeschränkten menschlichen Eingabe. Personen und Prozess sind Fehler fehleranfällig aus. Diese Automatisierung unterstützt menschlicher Fehler zu vermeiden. In Windows-Azure Anwendungen, die in einer teilweise vertrauenswürdigen sandbox ausgeführt, Anforderungen werden Lastenausgleich und Fehler Bedingungen automatisch verwaltet.

Als Entwickler sollten Sie mit der operativen Verhalten des Dienstes vertraut sein. Diese Verhaltensweisen sind als Teil der Dienst definition und Konfiguration Modelle dokumentiert und kommuniziert, auf die Wolke-Plattform, um die Automatisierung zu erleichtern.

Darüber hinaus folgen Sie den folgenden Empfehlungen:

Hinzufügen von Protokollieren von Informationen in den code

RoleManager.WriteLog ("Information", "message to show in the log file"); 
  • Overiding-GetHeatlthStatus-Methode
public override RoleStatus GetHealthStatus()
{
      // return the health status of worker role.
      return RoleStatus.Healthy;
 }
  • Abrufen von Protokolldateien für die Analyse Anwendungszustände

Azure-Dienst Windows-Verwaltung

In Windows-Azure wird service management einen modellgesteuerte Ansatz, werden Modelle zur gewünschten Konfigurationsinformationen von Entwicklern und deployers zu sammeln. Azure Fabric verwendet diese Modelle, um den Dienst Lebenszyklus, einschließlich updates für die dynamische Konfiguration, automatisierte Fehler Verarbeitung und Dienstüberwachung zu verwalten. Windows-Azure vermeidet Einzelpunkt-Fehler (hardware oder software), durch die Einführung Fehlertoleranz Domänen, in dem jede Rolle beschränkt ist, über mehrere compute-Knoten oder Maschine Regale. In Ferner gewährleistet Windows-Azure Dienste betriebsbereit sind, während der Aktualisierung (parallelen vorwärts oder rückwärts eine Teilmenge der Dienst) durch Anfordern Aktualisierung Domänen jedoch Konfigurationen.

Sollte die option konfigurieren" und "Kopieren log" option können im Azure portal Sie um die protokollierten Nachrichten in den Speicher-blob zu kopieren.

Nach Abschluss die Kopie konnten Sie die Protokolle von blob-Speicher mit das oben beschriebene Programmiermodell zugreifen.

In der Zukunft wird Windows-Azure Verwaltungsschnittstellen zu den Zugriff und die Steuerelement-Verwaltungs- und die operative Aktivitäten angezeigt. Dadurch wird auf dem Gelände Dienstverwaltungsprogramme Überwachen und Verwalten von Wolke Anwendungen.

Schlussbemerkung

Informationen zum Verständnis der Wolke computing Architektur Modelle, finden entsprechende Muster, Entscheidung über das Programmiermodell und automatisierte Verwaltung sind für den Erfolg der Wolke computing Entwicklung. Windows-Azure dient mit Entwicklern, beachten Sie durch Aktivieren von Entwicklern schnell und einfach zu erstellen, Bereitstellen, Verwalten und Verteilen von Webanwendungen und -Diensten.

Als Entwickler sollten Sie eine Kern-Reihe von Mustern ansammeln, mit denen Sie optimalen Wolke-Anwendungen zu entwickeln. Darüber hinaus sollten Sie bedenken, zum Erfassen und Freigeben von wiederkehrende Lösungen für Probleme und andere neue Muster, unsere Lösungen und Produkten besser out-of-the-box für zentrale Wolke computing Muster unterstützen können.

Ich möchte Herr Masters Marx, Jason Hogg, David Hill, August Chong, Eugenio Pace und Nataraja Koduru für Ihre wertvolle Rückmeldungen für diesen Artikel danken.

joshy Joseph ist ein principal Architekt mit Microsoft Services verwaltete Lösungen Group. Seinen primären Fähigkeiten und die Fachkenntnisse umfassen verteilten Datenverarbeitung, Raster computing und Webdienste. Er ist Autor des Buchs Grid Computing (Prentice Hall, 2004) und eine prolific Erfinder dieser Programmiersprache mit mehr als 35 Patente auf Datei. Darüber hinaus hat er zahlreiche technische Artikel zu verteilten Datenverarbeitung und Prozess-Entwicklung Unternehmen geschrieben. Joshy kann unter erreichenjojoseph@Microsoft.com.