Szybki start: wdrażanie aplikacji niezawodnych usług .NET w usłudze Service Fabric

Usługa Azure Service Fabric to platforma systemów rozproszonych ułatwiająca pakowanie i wdrażanie skalowalnych oraz niezawodnych mikrousług i kontenerów, a także zarządzanie nimi.

W tym przewodniku Szybki start pokazano, jak wdrożyć pierwszą aplikację platformy .NET w usłudze Service Fabric. Po zakończeniu będziesz mieć aplikację do głosowania z usługą internetową frontonu ASP.NET Core, która zapisuje wyniki głosowania w stanowej usłudze zaplecza w klastrze.

Zrzut ekranu aplikacji

Korzystając z tej aplikacji, nauczysz się wykonywać następujące czynności:

  • Tworzenie aplikacji przy użyciu platformy .NET i usługi Service Fabric
  • Używanie rdzenia ASP.NET jako frontonu internetowego
  • Przechowywanie danych aplikacji w usłudze stanowej
  • Debugowanie aplikacji lokalnie
  • Skalowanie aplikacji w poziomie między wieloma węzłami
  • Przeprowadzanie stopniowego uaktualnienia aplikacji

Wymagania wstępne

Aby ukończyć ten przewodnik Szybki start:

  1. Zainstaluj program Visual Studio 2019 z pakietami roboczymi Programowanie na platformie Azure oraz tworzenie ASP.NET i tworzenie aplikacji internetowych .

  2. Zainstaluj oprogramowanie Git

  3. Instalowanie zestawu SDK usługi Microsoft Azure Service Fabric

  4. Uruchom następujące polecenie, aby umożliwić programowi Visual Studio wdrażanie w lokalnym klastrze usługi Service Fabric:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

Tworzenie klastra

Po zainstalowaniu środowiska uruchomieniowego, zestawów SDK, narzędzi programu Visual Studio i platformy Docker oraz uruchomieniu platformy Docker utwórz pięciowęzłowy lokalny klaster projektowy.

Uwaga

Powodem uruchamiania platformy Docker podczas tworzenia klastra jest utworzenie klastra z włączonymi funkcjami kontenerów. Jeśli platforma Docker nie będzie uruchomiona, konieczne będzie ponowne utworzenie klastra w celu włączenia funkcji kontenerów. Mimo iż nie jest to konieczne w przypadku tego przewodnika Szybki Start, instrukcja dotycząca uruchamiania platformy Docker podczas tworzenia klastra jest uwzględniona jako najlepsze rozwiązanie. Aby sprawdzić, czy platforma Docker jest uruchomiona, otwórz okno terminalu i uruchom polecenie docker ps. Jeśli odpowiedź nie wskazuje na wystąpienie błędu, oznacza to, że platforma Docker jest uruchomiona i można przystąpić do tworzenia klastra.

Konfigurowanie Windows 10 lub Windows Server dla kontenerów

  1. Otwórz nowe okno programu PowerShell jako administrator.

  2. Utwórz klaster projektowy za pomocą następującego polecenia programu PowerShell:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    
  3. Uruchom menedżera klastra lokalnego za pomocą następującego polecenia:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager\ServiceFabricLocalClusterManager.exe"
    

Uwaga

Przykładowa aplikacja w tym przewodniku Szybki start korzysta z funkcji, które nie są dostępne w systemie Windows 7.

Pobieranie przykładu

W oknie polecenia uruchom następujące polecenie, aby sklonować przykładowe repozytorium aplikacji na komputer lokalny.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Lokalne uruchamianie aplikacji

Kliknij prawym przyciskiem myszy ikonę programu Visual Studio w menu Start i wybierz polecenie Uruchom jako administrator. Aby dołączyć debuger do usług, musisz uruchomić program Visual Studio jako administrator.

Otwórz rozwiązanie Voting.sln programu Visual Studio ze sklonowanego repozytorium.

Domyślnie aplikacja do głosowania nasłuchuje na porcie 8080. Port aplikacji jest ustawiony w pliku /VotingWeb/PackageRoot/ServiceManifest.xml. Port aplikacji możesz zmienić, aktualizując atrybut Port elementu Punkt końcowy. Aby wdrożyć i uruchomić aplikację lokalnie, port aplikacji musi być otwarty i dostępny na komputerze. W przypadku zmiany portu aplikacji zastąp nową wartość portu aplikacji "8080" w tym artykule.

Aby wdrożyć aplikację, naciśnij klawisz F5.

Uwaga

W oknie danych wyjściowych programu Visual Studio zostanie wyświetlony komunikat "Adres URL aplikacji nie jest ustawiony lub nie jest adresem URL HTTP/HTTPS, więc przeglądarka nie zostanie otwarta dla aplikacji". Ten komunikat nie wskazuje błędu, ale przeglądarka nie uruchomi się automatycznie.

Po zakończeniu wdrażania uruchom przeglądarkę i otwórz stronę http://localhost:8080, aby wyświetlić fronton internetowy aplikacji.

Fronton aplikacji

Teraz możesz dodać zestaw opcji głosowania i rozpocząć obsługę głosów. Aplikacja zostanie uruchomiona i będzie przechować wszystkie dane w klastrze usługi Service Fabric, bez konieczności używania oddzielnej bazy danych.

Szczegółowe omówienie przykładowej aplikacji do głosowania

Aplikacja do głosowania składa się z dwóch usług:

  • Usługa internetowa frontonu (VotingWeb) — usługa internetowa frontonu platformy ASP.NET Core, obsługująca stronę internetową i ujawniająca interfejsy API sieci Web na potrzeby komunikacji z usługą zaplecza.
  • Usługi zaplecza (VotingData) — usługa internetowa platformy ASP.NET Core, która uwidacznia interfejs API do przechowywania wyników głosowania w niezawodnym słowniku utrwalonym na dysku.

Diagram aplikacji

Podczas głosowania w aplikacji występują następujące zdarzenia:

  1. Plik JavaScript wysyła żądanie głosowania do internetowego interfejsu API w usłudze internetowej frontonu jako żądanie HTTP PUT.

  2. Usługa internetowa frontonu używa serwera proxy w celu zlokalizowania i przesłania żądania HTTP PUT do usługi zaplecza.

  3. Usługa zaplecza przyjmuje żądanie przychodzące i przechowuje zaktualizowany wynik w niezawodnym słowniku, który jest replikowany do wielu węzłów w klastrze i utrwalany na dysku. Wszystkie dane aplikacji są przechowywane w klastrze, więc baza danych nie jest wymagana.

Debugowanie w programie Visual Studio

Aplikacja powinna być uruchomiona, ale przy użyciu debugera można zobaczyć, jak działają kluczowe części aplikacji. Podczas debugowania aplikacji w programie Visual Studio używasz lokalnego klastra programistycznego usługi Service Fabric. Możesz dostosować środowisko debugowania do swojego scenariusza. W tej aplikacji dane są przechowywane w usłudze zaplecza przy użyciu niezawodnego słownika. Program Visual Studio domyślnie usuwa aplikację po zatrzymaniu debugera. Usunięcie aplikacji spowoduje, że dane w usłudze zaplecza także zostaną usunięte. Aby utrwały dane między sesjami debugowania, otwórz okno Właściwości projektu voting i zmień tryb debugowania aplikacji na Automatyczne uaktualnianie.

Aby zobaczyć, co się stanie w kodzie, wykonaj następujące kroki:

  1. Otwórz plik /VotingWeb/Controllers/VotesController.cs i ustaw punkt przerwania w metodzie Put internetowego interfejsu API (wiersz 69) — możesz wyszukać ten plik w Eksploratorze rozwiązań w programie Visual Studio.

  2. Otwórz plik /VotingData/Controllers/VoteDataController.cs i ustaw punkt przerwania w metodzie Put tego internetowego interfejsu API (wiersz 54).

  3. Wróć do przeglądarki i kliknij opcję głosowania lub dodaj nową opcję głosowania. Zostanie trafiony pierwszy punkt przerwania w kontrolerze interfejsu API frontonu internetowego.

    • W tym kroku język JavaScript w przeglądarce wysyła żądanie do internetowego kontrolera interfejsu API w usłudze frontonu.

      Dodawanie usługi frontonu Vote

    • Najpierw skonstruuj adres URL do elementu ReverseProxy dla naszej usługi zaplecza (1).

    • Następnie wyślij żądanie HTTP PUT do elementu ReverseProxy (2).

    • Na koniec zwróć odpowiedź z usługi zaplecza do klienta (3).

  4. Naciśnij klawisz F5 , aby kontynuować

    • Jeśli przeglądarka wyświetli monit, przyznaj grupie ServiceFabricAllowedUsers uprawnienia do odczytu i wykonywania dla trybu debugowania.

    • Teraz znajdujesz się w punkcie przerwania w usłudze zaplecza.

      Dodawanie usługi zaplecza Vote

    • W pierwszym wierszu metody(1) element StateManager pobiera lub dodaje niezawodny słownik o nazwie counts.

    • Wszystkie interakcje z wartościami w niezawodnym słowniku wymagają transakcji — ta instrukcja using (2) tworzy tę transakcję.

    • W transakcji zaktualizuj wartość odpowiedniego klucza dla opcji głosowania i zatwierdź operację (3). Po powrocie z metody zatwierdzania dane są aktualizowane w słowniku i replikowane do innych węzłów w klastrze. Dane są bezpiecznie przechowywane w klastrze, a usługa zaplecza może zostać przełączona w tryb failover do innych węzłów, które nadal mają dostępne dane.

  5. Naciśnij klawisz F5 , aby kontynuować

Aby zatrzymać sesję debugowania, naciśnij klawisze Shift+F5.

Przeprowadzanie stopniowego uaktualnienia aplikacji

Podczas wdrażania nowych aktualizacji aplikacji usługa Service Fabric wprowadza aktualizację w bezpieczny sposób. Uaktualnienia stopniowe zapewniają brak przestojów podczas uaktualniania, a także automatyczne wycofywanie w razie wystąpienia błędów.

Aby uaktualnić aplikację, wykonaj następujące czynności:

  1. Otwórz plik /VotingWeb/Views/Home/Index.cshtml w programie Visual Studio.

  2. Zmień nagłówek na stronie przez dodanie lub zaktualizowanie tekstu. Na przykład zmień nagłówek na „Service Fabric Voting Sample v2”.

  3. Zapisz plik.

  4. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy pozycję Voting (Głosowanie) i wybierz polecenie Publikuj. Zostanie wyświetlone okno dialogowe Publikowanie.

  5. Kliknij przycisk Wersja manifestu, aby zmienić wersję usługi i aplikacji.

  6. Zmień wersję elementu Kod w obszarze VotingWebPkg na „2.0.0” (na przykład), a następnie kliknij przycisk Zapisz.

    Okno dialogowe zmiany wersji

  7. W oknie dialogowym Publikowanie aplikacji usługi Service Fabric zaznacz pole wyboru Uaktualnij aplikację.

  8. Zmień profil docelowy na PublishProfiles\Local.5Node.xml i upewnij się, że jako punkt końcowy połączenia ustawiono wartość Klaster lokalny.

  9. Wybierz pozycję Uaktualnij aplikację.

    Okno dialogowe publikowania — ustawienie uaktualnienia

  10. Kliknij przycisk Opublikuj.

    Podczas uaktualniania można nadal korzystać z aplikacji. Ponieważ masz dwa wystąpienia usługi uruchomione w klastrze, niektóre żądania mogą trafiać do uaktualnionej wersji aplikacji, podczas gdy inne mogą nadal otrzymywać starą wersję.

  11. Otwórz przeglądarkę i przejdź do adresu klastra na porcie 19080. Na przykład http://localhost:19080/.

  12. W widoku drzewa kliknij węzeł Aplikacje, a następnie kliknij pozycję Uaktualnienia w toku w okienku po prawej stronie. Możesz zobaczyć, jak uaktualnienie jest wprowadzane w domenach uaktualnienia w klastrze, upewniając się, że każda domena jest w dobrej kondycji przed przejściem do następnej. Domena uaktualnienia na pasku postępu będzie wyświetlana w kolorze zielonym po zweryfikowaniu kondycji domeny. Widok uaktualniania w Service Fabric Explorer

    Usługa Service Fabric zapewnia bezpieczeństwo uaktualnień dzięki oczekiwaniu przez dwie minuty po uaktualnieniu usługi na każdym węźle w klastrze. Całe uaktualnienie zajmuje około ośmiu minut.

Następne kroki

W tym przewodniku Szybki start zawarto informacje na temat wykonywania następujących czynności:

  • Tworzenie aplikacji przy użyciu platformy .NET i usługi Service Fabric
  • Używanie ASP.NET rdzenia jako frontonu internetowego
  • Przechowywanie danych aplikacji w usłudze stanowej
  • Debugowanie aplikacji lokalnie
  • Skalowanie aplikacji w poziomie między wieloma węzłami
  • Przeprowadzanie stopniowego uaktualnienia aplikacji

Aby dowiedzieć się więcej o usłudze Service Fabric i platformie .NET, zapoznaj się z tym samouczkiem: