Tworzenie aplikacji w chmurze w rzeczywistych warunkach na platformie Azure

przez Jan Wasson, Rick Anderson, Tomasz Dykstra

Pobierz poprawkę lub Pobierz książkę elektroniczną

Ta książka elektroniczna przeprowadzi Cię przez oparte na wzorcach podejście do tworzenia rozwiązań w chmurze w rzeczywistych warunkach. Wzorce stosują się do procesu tworzenia, a także do praktyk architektury i kodowania.

Zawartość jest oparta na prezentacji opracowanej przez Scott Guthrie i dostarczonej przez nią na konferencji norweskich deweloperów (NDC) w czerwcu 2013 (część 1, część 2), a w firmie Microsoft Tech Ed Australia we wrześniu, 2013 (część 1, część 2). Wiele innych zaktualizował i powiększał zawartość podczas przechodzenia z filmu wideo do postaci pisanej.

Docelowi odbiorcy

Deweloperzy, którzy chcesz wiedzieć się na opracowywanie zawartości w chmurze, biorąc pod uwagę przejście do chmury, lub nowe do programowania w chmurze, znajdziesz zwięzły przegląd najważniejszych koncepcji i praktyk, które muszą znać. Koncepcje są zilustrowane konkretnymi przykładami, a każdy rozdział łączy do innych zasobów, aby uzyskać bardziej szczegółowe informacje. Przykłady i linki do dodatkowych zasobów są przeznaczone dla platform i usług firmy Microsoft, ale przedstawione zasady mają zastosowanie także do innych struktur projektowania sieci Web i środowisk chmury.

Deweloperzy, którzy już opracowują chmurę, mogą znaleźć tutaj pomysły, które pozwolą zwiększyć ich powodzenie. Każdy rozdział w serii może być odczytywany niezależnie, dzięki czemu możesz wybierać i wybierać interesujące Cię tematy.

Każda osoba, która czuje Twoje aplikacje w chmurze w świecie rzeczywistym z prezentacją platformy Azure i potrzebuje większej ilości szczegółów i zaktualizowanych informacji, znajdzie się tutaj.

Wzorce programowania w chmurze

Ta książka elektroniczna wyjaśnia trzynaste zalecane wzorce do programowania w chmurze. "Wzorzec" jest tutaj używany w szerokim sensie, aby określić zalecaną metodę wykonywania czynności: jak najlepiej zapoznać się z projektowaniem, projektowaniem i kodowaniem aplikacji w chmurze. Są to kluczowe wzorce, które pomogą Ci "przystąpić do sukcesu", jeśli są one przestrzegane.

  • Automatyzuj wszystko.

    • Używaj skryptów, aby zmaksymalizować wydajność i zminimalizować błędy w powtarzalnych procesach.
    • Demonstracja: skrypty zarządzania platformy Azure.
  • Kontrola źródła.

    • Skonfiguruj strukturę rozgałęziania w kontroli źródła, aby ułatwić przepływ pracy DevOps.
    • Demonstracja: Dodawanie skryptów do kontroli źródła.
    • Demonstracja: Zachowaj dane poufne z kontroli źródła.
    • Demonstracja: Użyj narzędzia Git w programie Visual Studio.
  • Ciągła integracja i dostarczanie.

    • Automatyzowanie kompilowania i wdrażania przy każdej kontroli źródła.
  • Najlepsze rozwiązania dotyczące programowania aplikacji sieci Web.

    • Zachowaj bezstanowy poziom warstwy sieci Web.
    • Demonstracja: skalowanie i skalowanie automatyczne w Web Apps w Azure App Service.
    • Należy unikać stanu sesji.
    • Użyj usługi CDN z rezerwą, gdy sieć CDN jest niedostępna.
    • Użyj asynchronicznego modelu programowania.
    • Demonstracja: async w ASP.NET MVC i Entity Framework.
  • Logowanie jednokrotne.

    • Wprowadzenie do Azure Active Directory.
    • Demonstracja: Tworzenie aplikacji ASP.NET, która używa Azure Active Directory.
  • Opcje magazynu danych.

    • Typy magazynów danych.
    • Jak wybrać odpowiedni magazyn danych.
    • Demonstracja: Azure SQL Database.
  • Strategie partycjonowania danych.

    • Podziel dane na partycje w pionie lub w poziomie, aby ułatwić skalowanie relacyjnej bazy danych.
  • Magazyn obiektów Blob bez struktury.

    • Przechowywanie plików w chmurze za pomocą usługi BLOB Service.
    • Demonstracja: używanie usługi BLOB Storage w aplikacji poprawki IT.
  • Zaprojektowanie w celu przetworzenia niepowodzeń.

    • Typy niepowodzeń.
    • Zakres niepowodzeń.
    • Zrozumienie umowy SLA.
  • Monitorowanie i dane telemetryczne.

    • Dlaczego należy kupować aplikację telemetryczną i pisać własny kod w celu Instrumentacji swojej aplikacji.
    • Demonstracja: nowy Relic dla platformy Azure
    • Demonstracja: rejestrowanie kodu w aplikacji poprawki IT.
    • Demonstracja: iniekcja zależności w aplikacji rozwiązania IT.
    • Demonstracja: Wbudowana obsługa rejestrowania na platformie Azure.
  • Przejściowa obsługa błędów.

    • Użyj inteligentnej logiki ponawiania/wycofywania, aby zmniejszyć wpływ błędów przejściowych.
    • Demonstracja: ponowienie/wycofanie w Entity Framework 6.
  • Buforowanie rozproszone.

    • Zwiększenie skalowalności i obniżenie kosztów transakcji bazy danych za pomocą rozproszonej pamięci podręcznej.
  • Wzorzec pracy skoncentrowanej na kolejkach.

    • Zapewnianie wysokiej dostępności i poprawianie skalowalności dzięki swobodnemu sprzęgu warstw sieci Web i procesu roboczego.
    • Demonstracja: kolejki usługi Azure Storage w aplikacji poprawki IT.
  • Więcej wzorców i wskazówek dotyczących aplikacji w chmurze.

  • Dodatek: Przykładowa aplikacja Fix It

    • Znane problemy
    • Najlepsze rozwiązania
    • Jak pobierać, kompilować, uruchamiać i wdrażać.

Wzorce te mają zastosowanie do wszystkich środowisk w chmurze, ale będziemy je zilustrować przy użyciu przykładów opartych na technologiach i usługach firmy Microsoft, takich jak Visual Studio, Team Foundation Service, ASP.NET i Azure.

W pozostałej części tego rozdziału przedstawiono przykładową aplikację do rozwiązywania problemów i Web Apps w Azure App Service środowisku chmury, w której działa aplikacja do rozwiązywania problemów.

Przykładowa aplikacja do rozwiązywania problemów

Większość zrzutów ekranu i przykładów kodu pokazanych w tej książce elektronicznej jest oparta na rozwiązaniu IT, który pierwotnie opracowano przez Scott Guthrie , aby zademonstrować zalecane wzorce i praktyki projektowania aplikacji w chmurze.

Strona główna aplikacji IT Fix it

Przykładowa aplikacja to prosty system tworzenia biletów dla elementów roboczych. Jeśli potrzebujesz czegoś określonego, utworzysz bilet i przypiszesz go do kogoś, a inni mogą się zalogować i zobaczyć przypisane do nich bilety i oznaczyć bilety jako ukończone, gdy zakończy się prace.

Jest to standardowy projekt sieci Web programu Visual Studio. Jest on oparty na ASP.NET MVC i używa bazy danych SQL Server. Może działać lokalnie w IIS Express i można ją wdrożyć w witrynie sieci Web systemu Azure, aby uruchomić ją w chmurze. Możesz zalogować się przy użyciu uwierzytelniania formularzy i lokalnej bazy danych lub przy użyciu dostawcy społecznościowego, takiego jak Google. (W dalszej części przedstawiono również sposób logowania przy użyciu konta organizacyjnego Active Directory).

Strona logowania

Po zalogowaniu możesz utworzyć bilet, przypisać go do kogoś i przekazać zdjęcie, które chcesz usunąć.

Tworzenie rozwiązania do rozwiązywania problemów

Napraw to zadanie

Możesz śledzić postęp utworzonych elementów roboczych, zobaczyć bilety przypisane do Ciebie, wyświetlić szczegóły biletu i oznaczyć elementy jako ukończone.

Jest to bardzo prosta aplikacja z perspektywy funkcji, ale zobaczysz, jak ją skompilować, aby można ją było skalować do milionów użytkowników i będzie ona odporna na uszkodzenia, takie jak awarie bazy danych i zakończenie połączenia. Zobaczysz również, jak utworzyć zautomatyzowany i Agile przepływ pracy programistycznej, który umożliwia uruchamianie prostej aplikacji i ulepszanie jej przez iterację cyklu programowania.

Web Apps w Azure App Service

Środowisko chmury używane dla aplikacji do rozwiązywania problemów to usługa platformy Azure, która wywołuje witryny sieci Web. Ta usługa umożliwia hostowanie własnych aplikacji sieci Web na platformie Azure bez konieczności tworzenia maszyn wirtualnych i ich aktualizowania, instalowania i konfigurowania usług IIS itp. Twoja witryna jest hostowana na maszynach wirtualnych i automatycznie udostępnia kopie zapasowe i odzyskiwanie oraz inne usługi. Usługa witryny sieci Web współpracuje z ASP.NET, Node. js, PHP i Python. Umożliwia to szybkie wdrażanie przy użyciu programu Visual Studio, Web Deploy, FTP, Git lub TFS. Zwykle jest to zaledwie kilka sekund między rozpoczęciem wdrożenia a czasem dostępności aktualizacji przez Internet. Rozpoczęcie pracy jest bezpłatne i można skalować w górę w miarę wzrostu ruchu.

W tle Web Apps w Azure App Service udostępnia wiele składników i funkcji architektury, które trzeba skompilować, jeśli chcesz hostować witrynę sieci Web przy użyciu usług IIS na własnych maszynach wirtualnych. Jeden składnik jest punktem końcowym wdrożenia, który automatycznie konfiguruje usługi IIS i instaluje aplikację na tylu maszynach wirtualnych, w których chcesz uruchamiać lokację.

Usługa wdrażania

Gdy użytkownik trafi w stronę sieci Web, nie trafią bezpośrednio z maszyn wirtualnych usług IIS, przechodzą przez moduły równoważenia obciążenia routingu żądań aplikacji (ARR) . Można ich używać z własnymi serwerami, ale Skorzystaj z tego, że są one automatycznie konfigurowane. Korzystają one z inteligentnego algorytmu heurystycznego, który uwzględnia takie czynniki jak koligacja sesji, Głębokość kolejki w usługach IIS i użycie procesora CPU na poszczególnych maszynach, aby skierować ruch do maszyn wirtualnych, które obsługują witrynę sieci Web.

Moduł równoważenia obciążenia ARR

Jeśli maszyna ulegnie awarii, platforma Azure automatycznie wyciąga ją od obrotu, przesuwa nowe wystąpienie maszyny wirtualnej i rozpoczyna kierowanie ruchu do nowego wystąpienia — wszystko to bez czasu w czasie dla aplikacji.

Automatyczne odzyskiwanie z awarii komputera

Wszystkie te działania są wykonywane automatycznie. Wystarczy utworzyć witrynę sieci Web i wdrożyć w niej aplikację przy użyciu programu Windows PowerShell, programu Visual Studio lub portalu zarządzania Azure.

Aby zapoznać się z szybkim i łatwym samouczekem krok po kroku, w którym pokazano, jak utworzyć aplikację sieci Web w programie Visual Studio i wdrożyć ją w witrynie sieci Web platformy Azure, zobacz Rozpoczynanie pracy z platformą Azure i ASP.NET.

Podsumowanie

W tym wprowadzeniu przedstawiono listę tematów, które obejmuje książka, zrzuty ekranu przykładowej aplikacji oraz krótkie omówienie Web Apps w Azure App Service środowisku chmury. Jedną z zalet tworzenia aplikacji w programie i w chmurze jest łatwe Automatyzowanie powtarzalnych zadań programistycznych, takich jak tworzenie środowiska testowego i wdrażanie kodu. Jak to zrobić, jest to temat w następnym rozdziale.

Zasoby

Aby uzyskać więcej informacji na temat tematów omówionych w tym rozdziale, zobacz następujące zasoby.

Łączoną

  • Web Apps w Azure App Service. Strona portalu dla dokumentacji platformy Azure dotyczącej Web Apps.
  • Web Apps, Cloud Services i maszyny wirtualne: Kiedy używać tego programu? WAWS, jak pokazano w tym rozdziale, to tylko jeden z trzech sposobów uruchamiania aplikacji sieci Web na platformie Azure. W tym artykule wyjaśniono różnice między trzema sposobami i przedstawiono wskazówki dotyczące wyboru, który z nich jest odpowiedni dla danego scenariusza. Podobnie jak w przypadku witryn sieci Web, Cloud Services jest funkcją PaaS platformy Azure. Maszyny wirtualne są funkcją IaaS. Aby uzyskać wyjaśnienie PaaS i IaaS, zobacz rozdział opcji danych .

Filmy wideo: