Share via


Erstellen Real-World Cloud-Apps mit Azure

von Rick Anderson, Tom Dykstra

Download Fix It Project oder E-Book herunterladen

Dieses E-Book führt Sie durch einen musterbasierten Ansatz zum Erstellen realer Cloudlösungen. Die Muster gelten sowohl für den Entwicklungsprozess als auch für Architektur- und Codierungsmethoden.

Der Inhalt basiert auf einer von Scott Guthrie entwickelten Und von ihm auf der Norwegian Developers Conference (NDC) im Juni 2013 (Teil 1, Teil 2) und bei Microsoft Tech Ed Australia im September 2013 gehalten. Viele andere haben den Inhalt aktualisiert und erweitert, während er von der Video- in die schriftliche Form überstieg.

Zielgruppe

Entwickler, die neugierig auf die Entwicklung für die Cloud sind, einen Wechsel in die Cloud in Betracht ziehen oder neu in der Cloudentwicklung sind, finden hier eine kurze Übersicht über die wichtigsten Konzepte und Methoden, die sie kennen müssen. Die Konzepte werden mit konkreten Beispielen veranschaulicht, und jedes Kapitel enthält Links zu anderen Ressourcen, um ausführlichere Informationen zu erhalten. Die Beispiele und die Links zu zusätzlichen Ressourcen gelten für Microsoft-Frameworks und -Dienste, aber die dargestellten Prinzipien gelten auch für andere Webentwicklungsframeworks und Cloudumgebungen.

Entwickler, die bereits für die Cloud entwickeln, finden hier möglicherweise Ideen, die sie erfolgreicher machen. Jedes Kapitel der Reihe kann unabhängig gelesen werden, sodass Sie Themen auswählen können, die Sie interessieren.

Jeder, der scott Guthries Präsentation Building Real World Cloud Apps with Azure gesehen hat und weitere Details und aktualisierte Informationen möchte, wird dies hier finden.

Cloudentwicklungsmuster

In diesem E-Book werden dreizehn empfohlene Muster für die Cloudentwicklung erläutert. "Muster" wird hier im weitesten Sinne verwendet, um eine empfohlene Vorgehensweise zu bedeuten: Wie Man Cloud-Apps am besten entwickeln, entwerfen und programmieren kann. Dies sind Schlüsselmuster, die Ihnen helfen, "in die Grube des Erfolgs zu fallen", wenn Sie sie befolgen.

  • Automatisieren Sie alles.

    • Verwenden Sie Skripts, um die Effizienz zu maximieren und Fehler in sich wiederholenden Prozessen zu minimieren.
    • Demo: Azure-Verwaltungsskripts.
  • Quellcodeverwaltung.

    • Richten Sie die Verzweigungsstruktur in der Quellcodeverwaltung ein, um den DevOps-Workflow zu erleichtern.
    • Demo: Hinzufügen von Skripts zur Quellcodeverwaltung.
    • Demo: Vertrauliche Daten aus der Quellcodeverwaltung heraushalten.
    • Demo: Verwenden Sie Git in Visual Studio.
  • Continuous Integration und Bereitstellung.

    • Automatisieren Sie build and deployment with each source control check-in.
  • Bewährte Methoden für die Webentwicklung.

    • Halten Sie die Webebene zustandslos.
    • Demo: Skalierung und automatische Skalierung in Web-Apps in Azure App Service.
    • Vermeiden Sie den Sitzungszustand.
    • Verwenden Sie ein CDN mit einem Fallback, wenn das CDN nicht verfügbar ist.
    • Verwenden Sie ein asynchrones Programmiermodell.
    • Demo: asynchron in ASP.NET MVC und Entity Framework.
  • Einmaliges Anmelden.

    • Einführung in Azure Active Directory.
    • Demo: Erstellen Sie eine ASP.NET-App, die Azure Active Directory verwendet.
  • Datenspeicheroptionen.

    • Datentypen.
    • So wählen Sie den richtigen Datenspeicher aus.
    • Demo: Azure SQL-Datenbank.
  • Strategien zur Datenpartitionierung.

    • Partitionieren Sie Daten vertikal, horizontal oder beides, um die Skalierung einer relationalen Datenbank zu erleichtern.
  • Unstrukturierter Blobspeicher.

    • Speichern Sie Dateien mithilfe des Blobdiensts in der Cloud.
    • Demo: Verwenden von Blobspeicher in der Fix It-App.
  • Entwerfen, um Fehler zu überstehen.

    • Fehlertypen.
    • Fehlerbereich.
    • Grundlegendes zu SLAs.
  • Überwachung und Telemetrie.

    • Warum Sollten Sie sowohl eine Telemetrie-App kaufen als auch Ihren eigenen Code schreiben, um Ihre App zu instrumentieren?
    • Demo: New Relic für Azure
    • Demo: Protokollierungscode in der Fix It-App.
    • Demo: Abhängigkeitsinjektion in der Fix It-App.
    • Demo: Integrierte Protokollierungsunterstützung in Azure.
  • Vorübergehende Fehlerbehandlung.

    • Verwenden Sie eine intelligente Wiederholungs-/Back-off-Logik, um die Auswirkungen vorübergehender Fehler zu minimieren.
    • Demo: Wiederholen/Back-off in Entity Framework 6.
  • Verteilte Zwischenspeicherung.

    • Verbessern Sie die Skalierbarkeit und senken Sie die Kosten für Datenbanktransaktionen mithilfe des verteilten Zwischenspeicherns.
  • Warteschlangenorientiertes Arbeitsmuster.

    • Ermöglichen Sie Hochverfügbarkeit und verbessern Sie die Skalierbarkeit, indem Sie Web- und Workerebenen lose koppeln.
    • Demo: Azure-Speicherwarteschlangen in der Fix It-App.
  • Weitere Cloud-App-Muster und Anleitungen.

  • Anhang: Anhang: Fix It-Beispielanwendung

    • Bekannte Probleme
    • Empfehlungen
    • Herunterladen, Erstellen, Ausführen und Bereitstellen.

Diese Muster gelten für alle Cloudumgebungen, aber wir veranschaulichen sie anhand von Beispielen, die auf Microsoft-Technologien und -Diensten basieren, z. B. Visual Studio, Team Foundation Service, ASP.NET und Azure.

In diesem weiteren Teil dieses Kapitels werden die Fix It-Beispielanwendung und die Web-Apps in Azure App Service Cloudumgebung vorgestellt, in der die Fix It-App ausgeführt wird.

Die Fix it-Beispielanwendung

Die meisten Screenshots und Codebeispiele in diesem E-Book basieren auf der Fix It-App, die ursprünglich von Scott Guthrie entwickelt wurde, um empfohlene Entwicklungsmuster und -methoden für Cloud-Apps zu veranschaulichen.

Startseite der Fix It-App

Die Beispiel-App ist ein einfaches Arbeitselementticketsystem. Wenn Sie etwas Behobenes benötigen, erstellen Sie ein Ticket und weisen es einer person zu. Andere können sich anmelden und die ihnen zugewiesenen Tickets anzeigen und Tickets als abgeschlossen markieren, wenn die Arbeit abgeschlossen ist.

Es handelt sich um ein Standardmäßiges Visual Studio-Webprojekt. Es basiert auf ASP.NET MVC und verwendet eine SQL Server-Datenbank. Sie kann lokal in IIS Express ausgeführt werden und auf einer Azure-Website bereitgestellt werden, um sie in der Cloud auszuführen. Sie können sich über die Formularauthentifizierung und eine lokale Datenbank oder über einen sozialen Anbieter wie Google anmelden. (Später zeigen wir auch, wie Sie sich mit einem Active Directory-Organisationskonto anmelden.)

Anmeldeseite

Sobald Sie angemeldet sind, können Sie ein Ticket erstellen, es einer anderen Person zuweisen und ein Bild hochladen, das Sie beheben möchten.

Erstellen einer Fix It-Aufgabe

Erstellter Fix-Task

Sie können den Fortschritt der erstellten Arbeitselemente nachverfolgen, Ihnen zugewiesene Tickets anzeigen, Ticketdetails anzeigen und Elemente als abgeschlossen markieren.

Dies ist aus Der Sicht des Features eine sehr einfache App, aber Sie werden sehen, wie Sie sie so erstellen, dass sie auf Millionen von Benutzern skaliert werden kann und bei Dingen wie Datenbankfehlern und Verbindungsabbrüchen stabil ist. Außerdem erfahren Sie, wie Sie einen automatisierten und agilen Entwicklungsworkflow erstellen, mit dem Sie einfach beginnen und die App durch effizientes und schnelles Durchlaufen des Entwicklungszyklus verbessern und verbessern können.

Web-Apps in Azure App Service

Die Cloudumgebung, die für die Fix It-Anwendung verwendet wird, ist ein Dienst von Azure, den wir Websites nennen. Mit diesem Dienst können Sie Ihre eigene Web-App in Azure hosten, ohne VMs erstellen und aktualisieren, IIS installieren und konfigurieren zu müssen usw. Wir hosten Ihre Website auf unseren VMs und stellen automatisch Sicherungs- und Wiederherstellungsdienste und andere Dienste für Sie bereit. Der Websitedienst funktioniert mit ASP.NET, Node.js, PHP und Python. Es ermöglicht Ihnen eine schnelle Bereitstellung mithilfe von Visual Studio, Web Deploy, FTP, Git oder TFS. Zwischen dem Start einer Bereitstellung und dem Zeitpunkt, zu dem das Update über das Internet verfügbar ist, liegen normalerweise nur wenige Sekunden. Es ist alles kostenlos, um zu beginnen, und Sie können hochskalieren, wenn Ihr Datenverkehr wächst.

Hinter den Kulissen bietet Web-Apps in Azure App Service viele Architekturkomponenten und Features, die Sie selbst erstellen müssten, wenn Sie eine Website mithilfe von IIS auf Ihren eigenen virtuellen Computern hosten würden. Eine Komponente ist ein Bereitstellungsendpunkt, der IIS automatisch konfiguriert und Ihre Anwendung auf so vielen virtuellen Computern installiert, auf denen Sie Ihre Website ausführen möchten.

Bereitstellungsdienst

Wenn ein Benutzer auf die Website trifft, trifft er nicht direkt auf die IIS-VMs, er durchläuft ARR-Lastenausgleichsmodule (Application Request Routing ). Sie können diese mit Ihren eigenen Servern verwenden, aber der Vorteil ist, dass sie automatisch für Sie eingerichtet werden. Sie verwenden eine intelligente Heuristik, die Faktoren wie Sitzungsaffinität, Warteschlangentiefe in IIS und CPU-Auslastung auf jedem Computer berücksichtigt, um Datenverkehr an die VMs weiterzuleiten, die Ihre Website hosten.

ARR-Lastenausgleich

Wenn ein Computer ausfällt, ruft Azure ihn automatisch aus der Drehung ab, führt einen neuen virtuellen Computer instance aus und beginnt mit der Weiterleitung des Datenverkehrs an die neue instance – alles ohne Ausfallzeiten für Ihre Anwendung.

Automatische Wiederherstellung nach Computerfehlern

All dies geschieht automatisch. Sie müssen lediglich eine Website erstellen und Ihre Anwendung mithilfe von Windows PowerShell, Visual Studio oder dem Azure-Verwaltungsportal bereitstellen.

Ein schnelles und einfaches schritt-für-Schritt-Tutorial, das zeigt, wie Sie eine Webanwendung in Visual Studio erstellen und auf einer Azure-Website bereitstellen, finden Sie unter Erste Schritte mit Azure und ASP.NET.

Zusammenfassung

Diese Einführung enthält eine Liste der Themen, die im Buch behandelt werden, Screenshots der Beispielanwendung und eine kurze Übersicht über die Web-Apps in Azure App Service Cloudumgebung. Einer der großen Vorteile der Entwicklung von Apps in und für die Cloud ist, dass es einfach ist, sich wiederholende Entwicklungsaufgaben zu automatisieren, z. B. das Erstellen einer Testumgebung und die Bereitstellung Ihres Codes in dieser. Wie das geht, ist thema des nächsten Kapitels.

Ressourcen

Weitere Informationen zu den Themen, die in diesem Kapitel behandelt werden, finden Sie in den folgenden Ressourcen.

Dokumentation:

  • Web-Apps in Azure App Service. Portalseite für Azure-Dokumentation zu Web-Apps.
  • Web-Apps, Cloud Services und VMs: Wann sollte welche verwendet werden? WAWS, wie in diesem Kapitel gezeigt, ist nur eine von drei Möglichkeiten, Web-Apps in Azure auszuführen. In diesem Artikel werden die Unterschiede zwischen den drei Möglichkeiten erläutert, und es wird erläutert, wie Sie die richtige Option für Ihr Szenario auswählen können. Wie Websites ist Cloud Services ein PaaS-Feature von Azure. VMs sind ein IaaS-Feature. Eine Erläuterung von PaaS im Vergleich zu IaaS finden Sie im Kapitel Datenoptionen .

Videos: