Uaktualnianie aplikacji usługi Service Fabric

Aplikacja usługi Azure Service Fabric to kolekcja usług. Podczas uaktualniania usługa Service Fabric porównuje nowy manifest aplikacji z poprzednią wersją i określa, które usługi w aplikacji wymagają aktualizacji. Usługa Service Fabric porównuje wersję w manifestach usługi z wersją w poprzedniej wersji. Jeśli wersja usługi nie została zmieniona, ta usługa nie zostanie uaktualniona.

Uwaga

Parametry ApplicationParameternie są zachowywane w ramach uaktualnienia aplikacji. Aby zachować bieżące parametry aplikacji, użytkownik powinien najpierw pobrać parametry i przekazać je do wywołania interfejsu API uaktualniania, jak pokazano poniżej:

$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters

$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{
    $applicationParameterMap.Add($pair.Name, $pair.Value);
}

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback

Omówienie uaktualnień stopniowego

W ramach uaktualnienia aplikacji stopniowej uaktualnienie jest wykonywane na etapach. Na każdym etapie uaktualnienie jest stosowane do podzestawu węzłów w klastrze nazywanej domeną aktualizacji. W związku z tym aplikacja pozostaje dostępna w trakcie uaktualniania. Podczas uaktualniania klaster może zawierać kombinację starych i nowych wersji.

Z tego powodu dwie wersje muszą być zgodne do przodu i do tyłu. Jeśli nie są one zgodne, administrator aplikacji jest odpowiedzialny za przejściowe uaktualnienie wielofazowe w celu utrzymania dostępności. W ramach uaktualnienia wielofazowego pierwszy krok polega na uaktualnieniu do wersji pośredniej aplikacji zgodnej z poprzednią wersją. Drugim krokiem jest uaktualnienie ostatecznej wersji, która przerywa zgodność z wersją wstępną aktualizacji, ale jest zgodna z wersją pośrednią.

Domeny aktualizacji są określone w manifeście klastra podczas konfigurowania klastra. Domeny aktualizacji nie odbierają aktualizacji w określonej kolejności. Domena aktualizacji to logiczna jednostka wdrożenia aplikacji. Domeny aktualizacji umożliwiają usługom zachowanie wysokiej dostępności podczas uaktualniania.

Uaktualnienia niestopniowego są możliwe, jeśli uaktualnienie jest stosowane do wszystkich węzłów w klastrze, co jest w przypadku, gdy aplikacja ma tylko jedną domenę aktualizacji. To podejście nie jest zalecane, ponieważ usługa nie działa i nie jest dostępna w momencie uaktualniania. Ponadto platforma Azure nie zapewnia żadnych gwarancji, gdy klaster jest skonfigurowany tylko z jedną domeną aktualizacji.

Po zakończeniu uaktualniania wszystkie usługi i repliki (wystąpienia) pozostaną w tej samej wersji, tj. jeśli uaktualnienie zakończy się pomyślnie, zostaną zaktualizowane do nowej wersji; Jeśli uaktualnienie zakończy się niepowodzeniem i zostanie wycofane, zostaną one wycofane ze starej wersji.

Testy kondycji podczas uaktualniania

W przypadku uaktualnienia należy ustawić zasady kondycji (lub można użyć wartości domyślnych). Uaktualnienie jest określane jako pomyślne, gdy wszystkie domeny aktualizacji zostaną uaktualnione w ramach określonych limitów czasu, a wszystkie domeny aktualizacji zostaną uznane za w dobrej kondycji. Domena aktualizacji w dobrej kondycji oznacza, że domena aktualizacji przeszła wszystkie kontrole kondycji określone w zasadach kondycji. Na przykład zasady kondycji mogą wymagać, aby wszystkie usługi w wystąpieniu aplikacji mogły być w dobrej kondycji, ponieważ kondycja jest definiowana przez usługę Service Fabric.

Zasady kondycji i kontrole podczas uaktualniania przez usługę Service Fabric są niezależne od usługi i aplikacji. Oznacza to, że nie są wykonywane żadne testy specyficzne dla usługi. Na przykład usługa może mieć wymaganie dotyczące przepływności, ale usługa Service Fabric nie ma informacji do sprawdzania przepływności. Zapoznaj się z artykułami dotyczącymi kondycji , aby zapoznać się z testami, które są wykonywane. Testy wykonywane podczas uaktualniania obejmują testy, czy pakiet aplikacji został skopiowany poprawnie, czy wystąpienie zostało uruchomione itd.

Kondycja aplikacji jest agregacją jednostek podrzędnych aplikacji. Krótko mówiąc, usługa Service Fabric ocenia kondycję aplikacji za pośrednictwem kondycji zgłaszanej przez aplikację. Ocenia również kondycję wszystkich usług dla aplikacji w ten sposób. Usługa Service Fabric dodatkowo ocenia kondycję usług aplikacji, agregując kondycję swoich elementów podrzędnych, takich jak replika usługi. Po spełnieniu zasad kondycji aplikacji uaktualnienie może kontynuować. Jeśli zasady kondycji zostaną naruszone, uaktualnienie aplikacji zakończy się niepowodzeniem.

Tryby uaktualniania

Tryb zalecany do uaktualnienia aplikacji to tryb monitorowany, który jest często używanym trybem. Tryb monitorowany wykonuje uaktualnienie w jednej domenie aktualizacji, a jeśli wszystkie testy kondycji są przekazywane (zgodnie z określonymi zasadami), automatycznie przechodzi do następnej domeny aktualizacji. Jeśli sprawdzanie kondycji nie powiedzie się i/lub przekroczenia limitu czasu, uaktualnienie zostanie wycofane dla domeny aktualizacji lub tryb zostanie zmieniony na niemonitorowane ręcznie. Uaktualnienie można skonfigurować tak, aby wybrać jeden z tych dwóch trybów pod kątem nieudanych uaktualnień.

Niemonitorowany tryb ręczny wymaga ręcznej interwencji po każdym uaktualnieniu w domenie aktualizacji, aby rozpocząć uaktualnienie w następnej domenie aktualizacji. Nie są wykonywane żadne kontrole kondycji usługi Service Fabric. Administrator przeprowadza kontrole kondycji lub stanu przed rozpoczęciem uaktualniania w następnej domenie aktualizacji.

Uaktualnianie usług domyślnych

Niektóre domyślne parametry usługi zdefiniowane w manifeście aplikacji można również uaktualnić w ramach uaktualnienia aplikacji. W ramach uaktualnienia można zmienić tylko parametry usługi, które obsługują zmianę za pośrednictwem usługi Update-ServiceFabricService . Zachowanie zmiany domyślnych usług podczas uaktualniania aplikacji jest następujące:

  1. Usługi domyślne w nowym manifeście aplikacji, które jeszcze nie istnieją w klastrze, są tworzone.
  2. Usługi domyślne, które istnieją zarówno w poprzednich, jak i nowych manifestach aplikacji, są aktualizowane. Parametry usługi domyślnej w nowym manifeście aplikacji zastępują parametry istniejącej usługi. Uaktualnienie aplikacji zostanie wycofane automatycznie, jeśli aktualizacja usługi domyślnej zakończy się niepowodzeniem.
  3. Domyślne usługi, które nie istnieją w nowym manifeście aplikacji, są usuwane, jeśli istnieją w klastrze. Należy pamiętać, że usunięcie usługi domyślnej spowoduje usunięcie stanu usługi i nie można jej cofnąć.

Gdy uaktualnienie aplikacji zostanie wycofane, domyślne parametry usługi zostaną przywrócone do starych wartości przed rozpoczęciem uaktualniania, ale usunięte usługi nie mogą zostać ponownie utworzone przy użyciu starego stanu.

Porada

Ustawienie konfiguracji klastra EnableDefaultServicesUpgrade musi mieć wartość true , aby włączyć reguły 2) i 3) powyżej (domyślna aktualizacja i usuwanie usługi). Ta funkcja jest obsługiwana w wersji 5.5 usługi Service Fabric.

Uaktualnianie wielu aplikacji przy użyciu punktów końcowych HTTPS

Należy zachować ostrożność, aby nie używać tego samego portu dla różnych wystąpień tej samej aplikacji podczas korzystania z protokołu HTTPS. Przyczyną jest to, że usługa Service Fabric nie będzie mogła uaktualnić certyfikatu dla jednego z wystąpień aplikacji. Jeśli na przykład aplikacja 1 lub aplikacja 2 chcą uaktualnić certyfikat 1 do certyfikatu 2. Po zakończeniu uaktualniania usługa Service Fabric mogła wyczyścić rejestrację certyfikatu 1 z http.sys mimo że druga aplikacja nadal jej używa. Aby temu zapobiec, usługa Service Fabric wykrywa, że na porcie zarejestrowano już inne wystąpienie aplikacji z certyfikatem (z powodu http.sys) i kończy się niepowodzeniem operacji.

W związku z tym usługa Service Fabric nie obsługuje uaktualniania dwóch różnych usług przy użyciu tego samego portu w różnych wystąpieniach aplikacji. Innymi słowy, nie można użyć tego samego certyfikatu w różnych usługach na tym samym porcie. Jeśli potrzebujesz certyfikatu współużytkowanego na tym samym porcie, musisz upewnić się, że usługi są umieszczane na różnych maszynach z ograniczeniami umieszczania. Możesz też rozważyć użycie portów dynamicznych usługi Service Fabric, jeśli jest to możliwe dla każdej usługi w każdym wystąpieniu aplikacji.

Jeśli zobaczysz, że uaktualnienie nie powiedzie się z protokołem HTTPS, zostanie wyświetlone ostrzeżenie o błędzie informujące o błędzie "Interfejs API serwera HTTP systemu Windows nie obsługuje wielu certyfikatów dla aplikacji, które współużytkuje port".

Schemat blokowy uaktualniania aplikacji

Schemat blokowy po tym akapicie może pomóc zrozumieć proces uaktualniania aplikacji usługi Service Fabric. W szczególności przepływ opisuje, w jaki sposób limity czasu, w tym HealthCheckStableDuration, HealthCheckRetryTimeout i UpgradeHealthCheckInterval, pomagają kontrolować, kiedy uaktualnienie w jednej domenie aktualizacji jest uznawane za powodzenie lub niepowodzenie.

Proces uaktualniania aplikacji usługi Service Fabric

Następne kroki

Uaktualnianie aplikacji przy użyciu programu Visual Studio przeprowadzi Cię przez proces uaktualniania aplikacji przy użyciu programu Visual Studio.

Uaktualnianie aplikacji przy użyciu programu PowerShell przeprowadzi Cię przez proces uaktualniania aplikacji przy użyciu programu PowerShell.

Kontrolowanie sposobu uaktualniania aplikacji przy użyciu parametrów uaktualniania.

Uaktualnij aplikacje, ucząc się, jak używać serializacji danych.

Dowiedz się, jak używać zaawansowanych funkcji podczas uaktualniania aplikacji, odwołując się do tematów zaawansowanych.

Rozwiąż typowe problemy w uaktualnieniach aplikacji, korzystając z instrukcji opisanych w temacie Rozwiązywanie problemów z uaktualnieniami aplikacji.