Tworzenie aplikacji Real-World w chmurze za pomocą platformy Azure

Autor: Rick Anderson, Tom Dykstra

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

Ta książka elektroniczna przeprowadzi Cię przez oparte na wzorcach podejście do tworzenia rzeczywistych rozwiązań w chmurze. Wzorce mają zastosowanie do procesu programowania, a także do rozwiązań dotyczących architektury i kodowania.

Zawartość jest oparta na prezentacji opracowanej przez Scotta Guthrie i wygłoszonej przez niego na Norweskiej Konferencji Deweloperów (NDC) w czerwcu 2013 r. (część 1, część 2) i w Microsoft Tech Ed Australia we wrześniu 2013 r. Wiele innych zaktualizowało i rozszerzyło zawartość podczas przechodzenia z wideo do formularza napisanego.

Docelowi odbiorcy

Deweloperzy, którzy są ciekawi rozwoju chmury, biorąc pod uwagę przejście do chmury lub są nowi w rozwoju chmury, znajdzie tutaj zwięzłe omówienie najważniejszych pojęć i praktyk, które muszą wiedzieć. Koncepcje są ilustrowane konkretnymi przykładami, a każdy rozdział łączy się z innymi zasobami, aby uzyskać bardziej szczegółowe informacje. Przykłady i linki do dodatkowych zasobów dotyczą platform i usług firmy Microsoft, ale zilustrowane zasady dotyczą również innych struktur programistycznych i środowisk w chmurze.

Deweloperzy, którzy już opracowują rozwiązania dla chmury, mogą znaleźć tutaj pomysły, które pomogą im zwiększyć sukces. Każdy rozdział z serii może być odczytywany niezależnie, dzięki czemu możesz wybrać i wybrać tematy, które Cię interesują.

Każdy, kto oglądał prezentację Scott Guthrie's Building Real World Cloud Apps z platformą Azure i chce uzyskać więcej szczegółów i zaktualizowanych informacji, znajdzie to tutaj.

Wzorce programowania w chmurze

W tej książce elektronicznej wyjaśniono trzynaście zalecanych wzorców programowania w chmurze. "Wzorzec" jest używany tutaj w szerokim sensie, aby oznaczać zalecany sposób wykonywania czynności: jak najlepiej opracowywać, projektować i kodować aplikacje w chmurze. Są to kluczowe wzorce, które pomogą Ci "wpadnąć w dół sukcesu", jeśli je podążasz.

  • Automatyzowanie wszystkiego.

    • Użyj skryptów, aby zmaksymalizować wydajność i zminimalizować błędy w powtarzających się procesach.
    • Pokaz: skrypty zarządzania platformą Azure.
  • Kontrola źródła.

    • Skonfiguruj strukturę rozgałęziania w kontroli źródła, aby ułatwić przepływ pracy metodyki DevOps.
    • Pokaz: dodawanie skryptów do kontroli źródła.
    • Pokaz: zachowaj poufne dane poza kontrolą źródła.
    • Pokaz: użyj narzędzia Git w programie Visual Studio.
  • Ciągła integracja i dostarczanie.

    • Automatyzowanie kompilacji i wdrażania przy użyciu każdego zaewidencjonowania kontroli źródła.
  • Najlepsze rozwiązania dotyczące tworzenia aplikacji internetowych.

    • Zachowaj bezstanową warstwę internetową.
    • Pokaz: skalowanie i automatyczne skalowanie w Web Apps w Azure App Service.
    • Unikaj stanu sesji.
    • Użyj sieci CDN z rezerwą, gdy sieć CDN jest niedostępna.
    • Użyj asynchronicznego modelu programowania.
    • Pokaz: asynchroniczny w programie ASP.NET MVC i Entity Framework.
  • Logowanie jednokrotne.

    • Wprowadzenie do usługi Azure Active Directory.
    • Pokaz: tworzenie aplikacji ASP.NET korzystającej z usługi Azure Active Directory.
  • Opcje magazynu danych.

    • Typy magazynów danych.
    • Jak wybrać właściwy magazyn danych.
    • Pokaz: Azure SQL Database.
  • Strategie partycjonowania danych.

    • Partycjonowanie danych w pionie, w poziomie lub obu w celu ułatwienia skalowania relacyjnej bazy danych.
  • Magazyn obiektów blob bez struktury.

    • Przechowywanie plików w chmurze przy użyciu usługi blob.
    • Pokaz: używanie magazynu obiektów blob w aplikacji Fix It.
  • Projektowanie w celu przetrwania awarii.

    • Typy błędów.
    • Zakres awarii.
    • Omówienie umów SLA.
  • Monitorowanie i telemetria.

    • Dlaczego należy kupić aplikację telemetrii i napisać własny kod do instrumentowania aplikacji.
    • Pokaz: Nowy relic dla platformy Azure
    • Pokaz: rejestrowanie kodu w aplikacji Fix It.
    • Pokaz: wstrzykiwanie zależności w aplikacji Fix It.
    • Pokaz: wbudowana obsługa rejestrowania na platformie Azure.
  • Obsługa błędów przejściowych.

    • Użyj inteligentnej logiki ponawiania/wycofywania, aby ograniczyć wpływ błędów przejściowych.
    • Pokaz: ponów próbę/powrót w programie Entity Framework 6.
  • Buforowanie rozproszone.

    • Zwiększ skalowalność i zmniejsz koszty transakcji bazy danych przy użyciu rozproszonego buforowania.
  • Wzorzec pracy skoncentrowany na kolejce.

    • Zapewnianie wysokiej dostępności i zwiększanie skalowalności przez luźne sprzężenie warstw sieci Web i procesów roboczych.
    • Pokaz: kolejki usługi Azure Storage w aplikacji Fix It.
  • Więcej wzorców i wskazówek dotyczących aplikacji w chmurze.

  • Załącznik: przykładowa aplikacja Fix It

    • Znane problemy
    • Najlepsze rozwiązania
    • Jak pobrać, skompilować, uruchomić i wdrożyć.

Te wzorce dotyczą wszystkich środowisk w chmurze, ale zilustrujemy je 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ę Fix It i Web Apps w środowisku chmury Azure App Service, w których działa aplikacja Fix It.

Przykładowa aplikacja Fix it

Większość zrzutów ekranu i przykładów kodu pokazanych w tej książce elektronicznej jest oparta na aplikacji Fix It pierwotnie opracowanej przez Scotta Guthrie ' w celu zademonstrowania zalecanych wzorców i praktyk tworzenia aplikacji w chmurze.

Naprawianie strony głównej aplikacji

Przykładowa aplikacja to prosty system biletów elementów roboczych. Gdy potrzebujesz czegoś stałego, utworzysz bilet i przypiszesz go do kogoś, a inni mogą się zalogować i zobaczyć przypisane do nich bilety i oznaczyć bilety jako ukończone po zakończeniu pracy.

Jest to standardowy projekt internetowy programu Visual Studio. Jest on oparty na ASP.NET MVC i używa bazy danych SQL Server. Można go uruchomić lokalnie w IIS Express i można go wdrożyć w witrynie internetowej platformy Azure w celu uruchomienia w chmurze. Możesz zalogować się przy użyciu uwierzytelniania formularzy i lokalnej bazy danych lub za pomocą dostawcy społecznościowego, takiego jak Google. (Później pokażemy również, jak zalogować się przy użyciu konta organizacyjnego usługi Active Directory).

Strona logowania

Po zalogowaniu możesz utworzyć bilet, przypisać go do kogoś i przekazać obraz tego, co chcesz naprawić.

Tworzenie zadania naprawy

Naprawianie utworzonego zadania

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

Jest to bardzo prosta aplikacja z perspektywy funkcji, ale zobaczysz, jak ją skompilować, aby można było skalować ją do milionów użytkowników i będzie odporna na awarie bazy danych i kończenie połączeń. Zobaczysz również, jak utworzyć zautomatyzowany i zwinny przepływ pracy programistycznie, który umożliwia rozpoczęcie prostego i lepszego tworzenia aplikacji dzięki wydajnemu i szybkiemu iterowaniu cyklu programowania.

Web Apps w Azure App Service

Środowisko w chmurze używane dla aplikacji Fix It to usługa platformy Azure, którą nazywamy witrynami sieci Web. Ta usługa jest sposobem hostowania własnej aplikacji internetowej na platformie Azure bez konieczności tworzenia maszyn wirtualnych i aktualizowania, instalowania i konfigurowania usług IIS itp. Hostujemy Twoją witrynę na naszych maszynach wirtualnych i automatycznie udostępniamy kopię zapasową i odzyskiwanie oraz inne usługi. Usługa witryny sieci Web współpracuje z ASP.NET, Node.js, PHP i Python. Umożliwia ona bardzo 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, w którym aktualizacja jest dostępna przez Internet. Wszystko jest bezpłatne, aby rozpocząć pracę i możesz skalować w górę w miarę wzrostu ruchu.

Za kulisami Web Apps w Azure App Service udostępnia wiele składników architektury i funkcji, które należy utworzyć, jeśli zamierzasz hostować witrynę internetową przy użyciu usług IIS na własnych maszynach wirtualnych. Jednym ze składników jest punkt końcowy wdrożenia, który automatycznie konfiguruje usługi IIS i instaluje aplikację na dowolnej tylu maszynach wirtualnych, jak chcesz uruchomić witrynę.

Usługa wdrażania

Gdy użytkownik osiągnie witrynę internetową, nie trafi bezpośrednio na maszyny wirtualne usług IIS, przechodzi przez moduły równoważenia obciążenia żądań aplikacji (ARR). Można ich używać z własnymi serwerami, ale zaletą jest to, że są one konfigurowane automatycznie. Używają inteligentnej heurystyki, która uwzględnia czynniki, takie jak koligacja sesji, głębokość kolejki w usługach IIS i użycie procesora CPU na każdej maszynie do kierowania ruchu do maszyn wirtualnych hostujących witrynę internetową.

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

Jeśli maszyna ulegnie awarii, platforma Azure automatycznie ściąga ją z rotacji, uruchamia nowe wystąpienie maszyny wirtualnej i rozpoczyna kierowanie ruchu do nowego wystąpienia — wszystko bez czasu awarii aplikacji.

Automatyczne odzyskiwanie po awarii maszyny

Wszystko to odbywa się automatycznie. Wystarczy utworzyć witrynę internetową i wdrożyć w niej aplikację przy użyciu Windows PowerShell, programu Visual Studio lub witryny Azure Management Portal.

Aby uzyskać szybki i prosty samouczek krok po kroku, który pokazuje, jak utworzyć aplikację internetową w programie Visual Studio i wdrożyć ją w witrynie internetowej platformy Azure, zobacz Wprowadzenie do platformy Azure i ASP.NET.

Podsumowanie

To wprowadzenie zawiera listę tematów, które zawiera książka, zrzuty ekranu przykładowej aplikacji oraz krótkie omówienie Web Apps w środowisku chmury Azure App Service. Jedną z wielkich zalet tworzenia aplikacji w chmurze i chmury jest łatwo zautomatyzować powtarzające się zadania programistyczne, takie jak tworzenie środowiska testowego i wdrażanie w nim kodu. Jak to zrobić, jest tematem następnego rozdziału.

Zasoby

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

Dokumentacja:

  • Web Apps w Azure App Service. Strona portalu dotycząca dokumentacji platformy Azure dotyczącej Web Apps.
  • Web Apps, Cloud Services i maszyny wirtualne: kiedy należy użyć którego? Usługa WAWS, jak pokazano w tym rozdziale, to tylko jeden z trzech sposobów uruchamiania aplikacji internetowych na platformie Azure. W tym artykule wyjaśniono różnice między trzema sposobami i przedstawiono wskazówki dotyczące wybierania, który z nich jest odpowiedni dla danego scenariusza. Podobnie jak witryny internetowe, Cloud Services to funkcja PaaS platformy Azure. Maszyny wirtualne są funkcją IaaS. Aby uzyskać wyjaśnienie rozwiązania PaaS i IaaS, zobacz rozdział Opcje danych .

Filmy wideo: