Dieser Artikel wurde maschinell übersetzt.

Prognose: Bewölkt

Erforschen der Cloud-Architektur

Joseph Fultz

 

Joseph FultzIch beschloss eine Weile zurück, dass mindestens einer meiner Spalten allgemeine Architekturunterschieden umfassen würde und einige hochrangige Entwürfe für die Erstellung von Cloud-basierten Lösungen basieren. Ich weiß aus alle Sitzungen, die ich vorgestellt habe oder besuchte, dass wenn eine technische Publikum nicht mit Code zu spielen, die Sitzungen nicht in der Regel gut. Aber ich hoffe, dass dieser Artikel Leute zumindest helfen, frame und geben einige grundlegende Ziele für ihr Denken über Architektur der Lösung profitieren werden.

Ich wirst sein benutze Plattform as a Service (PaaS) — vor allem Windows-Azure — wie die kontextbezogene Pinnwand, die Ideen und Überlegungen, aber die Ideen hängen möchte ich vermitteln, auch für Infrastruktur as a Service (IaaS) und Software as a Service (SaaS) mit wenig Übersetzung gelten sollte. Ich werde zeigen sich einige der wichtigsten Entwurfsüberlegungen beim Erstellen einer Cloud-Lösung, kategorisieren die Plattform-Tools, die Windows-Azure bietet, veranschaulichen einige Basis-Designs und bieten eine Entscheidungsmatrix für Auswahl Ihren Stil.

Wolke Überlegungen

Erfahrene Entwickler und Architekten könnte in eine Gewohnheit einige Merkmale Problem identifizieren, mit eine Muster übereinstimmen und eine Design auszusprechen. I 'm going to Markieren Sie einige typische Entwürfe für Cloud-Lösungen, aber ich hoch empfehlen ein aktiven Ansatzes zur Lösung von Problemen im Vergleich nur mit einem Ausstecher aus vorherigen Stapel von Lösungen, die sich gebacken wurden. Der beste Ansatz ist die Konzeption einer Lösung, die ideal ist und dann starten Sie überlagern, die die Cloud fügt Geschäftsbedingungen des Ökosystems Unternehmen. Fügen sie eine zu einem Zeitpunkt und alle damit verbundenen Probleme lösen, da genau wie Mathe oder richtige Debuggen, wenn Sie zu viele Variablen, hinzufügen Sie ll Fehlern, deren Quelle nicht leicht feststellbar.

Was bedeutet es, eine "Wolke Lösung?" Ich möchte zunächst, dass eine starke Betonung, dass eine Web-Rolle queuing um eine Worker-Rolle und dann das Ergebnis abholen eine Rückkehr Warteschlange deaktiviert die definierenden Stil Wolke ist nicht. In der Tat könnte in viele Grüße, mit solchen Architektur als Basis, um eine Design zu starten in der Tat den Gesamtnutzen einer Wolke-Implementierung reduzieren. Private Cloud-Infrastruktur verfügbar wird, verwischt die Linie zwischen Wolke und nicht-Cloud, weil der trennenden Faktor Lage ist nicht. So dass der Schwerpunkt der Differenzierung auf, was es muss tut als was es ist oder wo es ist.

Hier sind die Dinge, die mit Windows-Azure als Mittel zu meinen Web-host oder service Anwendungen für mich tut:

  • Befreit mich von Infrastruktur Erwerb, Einrichtung oder Verwaltung
  • Befreit mich von eingeschränkte Kapazität; Datenverarbeitung und Speicherkapazität sind auf Anfrage erhältlich
  • Befreit mich von steilen Kapitalkosten und befreit mich Kosten basierend auf Verbrauch anpassen

Ich bedeute nicht, es zu verharmlosen, aber das ist es; keine Notwendigkeit, es zu erschweren. In der Tat, es gibt eine Menge von nicht-triviale Funktionen innerhalb der Wolke-Plattform, aber die sind nicht was eine traditionellere gehostete Lösung die Wolke unterscheiden. Einzelne Features (queuing, Speicher, strukturierter Speicher und So weiter), die für eine Plattform wie Windows Azure hinzugefügt werden — Weile für die Plattform neue — sind nicht grundsätzlich neue Software-Funktionen, die nicht verfügbar waren. Die Herausforderungen, die direkt mit der Wolke Schicht angesprochen sind Compute und Speicher-Elastizität und Kapitalaufwand, zusammen mit laufender Pflege und Fütterung der Hardwareinfrastruktur. Dies ist eine gute Nachricht für diejenigen Software zu entwerfen, weil es bedeutet, dass die Designs und Muster meist bleiben die gleichen, mit ein wenig zusätzlicher Schwerpunkt auf zwei Überlegungen: Kosten und Wartezeiten. Sicherlich waren diese zwei Anliegen wichtig vor, aber die Cloud ändert die Gleichung genug hinsichtlich besonderer Aufmerksamkeit bedürfen.

Der Kostenfaktor

Wie viele von Ihnen bereits gewürzt von Wolke Implementierungen wissen Sie, es ist nicht immer billiger. Glücklicherweise gleichzusetzen nicht zu billig oder sogar kostenlos Kosteneffizienz. Sie können bestimmen, dass die Kosten effizient sein, wenn die Gleichung nicht geändert werden kann, um Kosten zu senken, ohne dabei auch die Dienste oder Funktionen — d. h., es gibt keine Kosten darüber hinaus was unbedingt verbraucht wird. Es besteht kein Zweifel, dass es Kosten Optimierungen zu haben für ein Unternehmen der Wechsel von einer privaten Datacenter auf Cloud-basierte Lösung, aber diese Leistung wirklich zu sehen sind, muss es eine Affinität in Richtung Leitprinzipien: eine Verschiebung in Richtung Wolke-erste Lösungen und Design zur Kostenoptimierung.

Muss es eine Verlagerung hin zu Cloud computing und Weg von der private hosting-Szenario. Es ist schwer zu erkennen, die Kosten-Nutzen in der Cloud Hosting, zwar gibt es nicht oder wenig Infrastruktur zur Verfügung, die verbrauchen bereits erworben hat und vorhanden ist. So, wie Systeme Alter oder neuer Software an Bord kommt, sollten Sie in die Cloud zunächst überprüfen statt Kauf mehr Infrastruktur Bandbreite. Es gibt Zeiten, wenn das Datencenter besitzen in der Tat billiger ist, aber für die meisten Unternehmen, die nicht der Realität. Vertrag und Bulk Preise beiseite, in der Regel die näher erhalten Sie Verbrauchsgesteuerte Kosten, je näher man zu einem effizienten Kostenmodell.

Mit dem ersten Schritt genommen ist der nächste Schritt, um sicherzustellen, dass Sie keine Wolke Nimmersatt sind. Jede Anwendung muss so gestaltet werden, um die Kosten für die Optimierung. Während der erste Punkt oft schwierig aus betriebswirtschaftlicher Sicht ist, kann der zweite Punkt eine schmerzhafte Pille in ein technisches Design. Das ist, weil es kann vorkommen, wenn Gestaltung zur Optimierung der Kosten bedeutet, dass es vor der Leistung oder Eleganz. Normalerweise finde ich, dass Gleichgewicht zwischen Leistung und Eleganz erstellen wo ich ein gutes Stück von meinem bemühen zu verbringen, aber werfen Kostenoptimierung in das Bild und es wird weitere kompliziert ist durch Drehen meine 2D Problem in ein 3D ein.

Optimierung Kosten bedeutet, akribisch beachten Sie Folgendes:

  • Ingress- und Egress, sowohl an den Endverbraucher das Unternehmensbackbone
  • Beibehaltungsrichtlinie für Daten im Speicher nicht verwenden, um nicht benötigte Speicherplatz
  • Wie verantwortungsvoll scale-up und verkleinere Compute-Ressourcen

Wenn eine Design diese drei Überlegungen berücksichtigt, dann ist es auf jeden Fall in die richtige Richtung bewegt.

Die Latenz-Faktor

Wartezeit wird traditionell ein Problem, wenn die Informationen, die für den Endbenutzer bereitgestellt werden, muss in einem oder mehreren dieser Staaten vorhanden ist:

  • Es ist in einem älteren oder anderweitig eingeschränkten system
  • Es existiert in Systemen und muss zuerst aggregiert werden
  • Es erfordert eine oder mehrere Transformationen vor die Benutzeroberfläche übergeben wird
  • Es existiert außerhalb des Unternehmens und muss aus der Ferne abgerufen werden

Für eine Cloud-basierte Lösung alle diese Elemente mag richtig sein, aber es ist das letzte Element, das gilt ohne Ausnahme zum Entwerfen von Enterprise-Lösungen für die Cloud. Die anderen Elemente werden sicherlich wahrscheinlich Faktoren auch, aber eine universelle Wahrheit für Unternehmen heute ist, dass Daten zwischen den Cloud-Lösungen und die Unternehmensdaten Geschäften im Hause Datencenter irgendwie synchronisiert werden.

Ich werde ein paar Möglichkeiten Deckung der Integration der Daten in der Basis-Designs ich hier her, aber es kommt wirklich unten zu beiden primären Strategien: Datensynchronisation und Echtzeit Serviceabrufe nach Hause.

High-Level-Design

Nachdenken über die Generalisierung von Design for Enterprise-Lösungen, kann man in der Regel jede der großen Zahnräder in eine dieser Kategorien Klumpen:

  • Berechnen
  • Speicher-
  • Integration

Dies ist, wie werde ich-Funktionen die Windows Azure Plattform in diesem Zusammenhang zu kategorisieren. Das Raster in Abbildung 1 zeigt eine Teilmenge der Funktionen der Windows Azure-Plattform.

Abbildung 1 Plattform Toolboxkategorien

Windows-Azure Berechnen Speicher- Integration & Dienstleistungen
Berechnen Webrollen    
  Worker-Funktionen    
  VM-Rolle    
Speicher-   BLOB-Speicher Warteschlangenspeicher
    Tabelle Speicher  
Früher – AppFabric     Service Bus
      Connect
      Zutrittskontrolle
      Zwischenspeichern
SQL Azure   Datenbank  
  Berichte    
      SQL Azure Daten synchronisieren

Konzentration auf die großen Steine von Compute, Speicher und Integration, Sie können leicht zusammen einige Basis-Designs aus dem Starten und erweitern oder sogar zusammenzusetzen, wie in Abbildung 2.

Basic High-Level Designs
Abbildung 2 grundlegende allgemeine Designs

Während die Designs angezeigt, Abbildung 2 sind nicht repräsentativ sind alle möglichen Permutationen, größere Blöcke von Design, die ihren Zweck haben:

  • Direkter Datenzugriff: Dies ist in der Regel die grundlegende Implementierung wo das Front-End-Web-Interface nicht nur greift direkt auf Daten sondern auch trägt die Beweislast für die Arbeit.
  • Dienstleistungen-Dereferenzierung: Dies ist eine Service-orientierte Architektur (SOA) Design, das die nächste Ebene der Dereferenzierung und Lastausgleich, Verschieben von Daten und Business Logik aus der Rollen dienen der Benutzeroberflächenautomatisierungs. Ein gutes SOA-Design kann nicht nur verringern die Anfälligkeit der Lösung aber auch verringern Sie die Last auf den Back-End und optimieren die Daten-Antworten an den Client.
  • Warteschlange Dereferenzierung: Arbeit ist an Hintergrund Arbeitnehmer über Windows Azure Storage Warteschlangen übergeben. Dies ist ein erster Schritt zur Optimierung der Arbeitsauslastung aber generell geeignet ist, wenn das Ergebnis der abgeladene Arbeit als nicht eine zeitnahe Antwort an den Client akzeptiert wird.
  • Service Bus Integration: Die Services-Infrastruktur in einem Pub/Sub hinzufügen kann wirklich eine SOA-Design erweitern, indem Sie die Schicht der Dereferenzierung Weg von den Endpunkten und Bewegung in Richtung Themen von Interesse werden. Dieses Design kann die flexibelste Implementierung bereitstellen.

Corporate-Backplane-Design

Die Basis-Designs speziell nicht die Firmen Backplane. Zwei der wichtigsten Stücke einer Windows Azure-Lösung sind, wie es zu den Unternehmenssystemen verbindet, die proprietäre Geschäftslogik enthalten und wie es Daten zugreift. Es gibt einige grundlegende Entwürfe für die Rückwand des Unternehmens, die allein oder in Kombination, ähnlich wie die früheren Entwürfen verwendet werden wie in Abbildung 3.

Corporate Backplane Basic Designs
Abbildung 3 Firmen Backplane Basic-Designs

Eine grundlegende Möglichkeit, Ihre Cloud-Lösungen für Ihr Unternehmen Ökosystem verbinden ist einfach Windows Azure Connect verwenden wie von Anna Skobodzinski, einer meiner Kollegen aus der Microsoft Technology Center (MTC), um bit.ly/wnyqj9. Dies wird dargestellt in der VPN-Style-Design in Abbildung 3. Das System kann dann verwendet werden, wie, aber mit einer Steuer von etwa einer Sekunde. Darüber hinaus wird es sich lohnen einige Arbeit vor der Zeit um sicherzustellen, dass die Systeme der Wolke Anwendungen ausgesetzt sind bereit für die zusätzliche Belastung. Wenn Sie es eilig benötigen, ist die Wolke eine große Lösung; Wenn Sie es eilig und Integration mit vorhandenen Schnittstellen hat, möglicherweise VPN-Stil Integration der schnellste und einfachste Weg zur Minimierung von Risiken für den Zeitplan.

Die häufigste Art der Integration, die ich stoßen ist der Typ unter Data Integration Stil dargestellt. Dies erfordert eine Möglichkeit zum Synchronisieren von Daten in eine oder beide Richtungen. Es gibt zahlreiche Möglichkeiten dazu, jede mit ihren eigenen vor-und Nachteile. Mit eine extrahieren, transformieren und laden (ETL) ist Tool wie SQL Server Integration Services (SSIS) wahrscheinlich die niedrigsten Barriere-Eintrag für die meisten. SSIS als Mittel zum Synchronisieren von Daten hat auch eine sehr reife Ökosystem für Überwachung und Verwaltung. Der weiter-einfachste Mechanismus ist SQL Azure Daten synchronisieren, die derzeit als eine Vorschau verfügbar ist (bit.ly/p14qC6). Es basiert auf Sync Framework-Technologie, die ich in meinem Januar 2011 behandelt (msdn.microsoft.com/magazine/gg535668) und Februar 2011 (msdn.microsoft.com/magazine/gg598920) Spalten. Dies erfordert einige Änderungen an den Tabellen, die synchronisiert werden. In SSIS sowohl die Sync Framework-Methoden ist es eine gute Idee, achten Sie darauf, nur die Datenfelder zu verschieben, die zwischen Wolke und Unternehmens notwendig sind. Durch Verschieben der Daten nicht unnötig, kann eindringen, Ausstieg und Wolke Speicher Gesamtverbrauch niedrig gehalten werden.

Voran die Nadel ein wenig und nehmen etwas von der Arbeit weg von der Datenbank-Back-End ist die direkte Dienstleistungen-Stil angezeigt, Abbildung 3, wo Daten von Unternehmenssystemen erforderlich über eine Reihe von verfügbar gemachten Dienste abgerufen werden. Die zwei großen Oberseiten hier sind, dass die Kosten für den Datentransport entfernt wird und die Daten immer aktuell ist. Es ist weniger positiv vorzustellen-Latenzzeit und setzen zusätzliche Belastung auf Systeme, die möglicherweise nicht bereit, in eine Wolke-Lösung integriert werden. Es bedeutet auch, dass die meisten die Intelligenz hat in Unternehmen Systeme und Dienstleistungen, zu leben, wie es den Großteil der Daten analysieren muss.

Die letzte der vier Muster in Abbildung 3 veranschaulicht die Verwendung des Service Bus, die Wolke und die Unternehmenssysteme zu integrieren. Dieser Service Bus Stil würde dazu führen, dass die laufenden Wolke Rollen und den Unternehmenssystemen veröffentlichen und abonnieren, Daten und Ereignisse, die für jeden von ihnen relevant sind. Dies verfügt über die gleichen Vorteile und Nachteile als direkte Dienstleistungen Stil der Architektur, mit dem zusätzlichen Vorteil der maximalen Flexibilität für neue Verlage und Konsumenten von Informationen erstellen.

Die Entscheidungsmatrix ist ein Werkzeug, um potenzielle Problembereiche zu identifizieren, bei der die Verwendung einer grundlegenden Design Formatvorlagen über eine andere Prüfung zu helfen. Die Entscheidungsmatrix in Abbildung 4 ist kein absolutes, aber eher spiegelt meine Erfahrung im Umgang mit Leuten auf Cloud-Architektur. Es ist nicht unbedingt ein klarer Sieger, und in vielen Fällen wird eine echte Design eine Mischung dieser Elemente integrieren. Beispielsweise könnte man eine neue Webanwendung bereitstellen, die hat eine Reihe von REST-Dienste arbeiten gegen eine Back-End-Datenbank, die über ein ETL führen Sie zweimal pro Tag synchronisiert ist. Abbildung 5 zeigt ein Beispiel für eine solche kombinierte Design.

Abbildung 4 Entscheidungsmatrix

 
           
           
           
           
           
           
           
           
           
           

Example Combined Design
Abbildung 5 Beispiel für kombiniert Design

Darüber hinaus gibt es eine Reihe von Datei-basierte Ressourcen in Windows-Azure-Speicher, die von der Website verwendet wird und wird durch eine benutzerdefinierte Implementierung von Sync Framework synchronisiert gehalten. Diese High-Level Design ist das Endergebnis der Informationssammlung und machen einige Vermutungen informiert, aber es ist nur der Anfang der Arbeit. Es enthält das Ziel für End-Design und Umsetzung lässt aber viele Details (z. B. Zwischenspeicherung, Zugriffssteuerung und So weiter) entschieden werden.

Design und Wirtschaftlichkeit

Ich habe versucht, heraus zu necken und Identifizieren der wichtigsten Überlegungen beim Entwerfen einer Cloud-Lösung – in bestimmten, ein in einem bestehenden Unternehmen integriert werden. Ich hoffe, durch Kochen aus der Fülle von Funktionen und Fähigkeiten ein bisschen, hilft es, den Pfad für das Design klar. Der wirkliche Trick zu entwerfen eine Cloud-Lösung ist eine ideale Lösung und machen die Gestaltung effizienter während noch einschließlich der Kosteneffizienz. Da die Wolke Bewegung auf Unternehmensebene Datenverarbeitung innerhalb der Reichweite des jemand bereit setzt, lean über und drehen Sie den Schalter, wird die Eleganz im Design Verbrauch Kosten ausmachen.

Ich berührte auf einem base Webdesign und Design Basis Unternehmen Integration, aber liess Alle Details für eine Zukunft Drilldown; Es wäre einfach zu viel Platz auf einmal decken nehmen. Denn dies ist die einzige Spalte, die ich geschrieben habe, die sich ausschließlich auf Design konzentriert und hat keine Implementierung zugeordnet, hoffe ich, dass es nützlich sein wird. Wenn Sie mich um einen Drilldown auf einige Detail Design Stücke möchten, Bitte kommentieren zu diesem Artikel MSDN.Microsoft.com/Magazin.

Joseph Fultz ist Softwarearchitekt bei Hewlett-Packard Co. und Mitglied der HP.com Global IT-Gruppe. Zuvor war er Softwarearchitekt bei Microsoft und arbeitete gemeinsam mit dessen wichtigsten Unternehmens- und ISV-Kunden an der Definition von Architekturen und dem Entwurf von Lösungen.

Unser Dank gilt dem folgenden technischen Experten für die Durchsicht dieses Artikels: George Huey