Jak zaktualizować usługę Azure Cloud Service (klasyczną)
Ważne
Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla wszystkich klientów od 1 września 2024 r. Wszystkie istniejące uruchomione wdrożenia zostaną zatrzymane i zamknięte przez firmę Microsoft, a dane zostaną trwale utracone od października 2024 r. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).
Proces aktualizowania usługi w chmurze, w tym zarówno jej ról, jak i systemu operacyjnego gościa, wykonuje trzy kroki. Najpierw należy przekazać pliki binarne i pliki konfiguracji dla nowej usługi w chmurze lub wersji systemu operacyjnego. Następnie platforma Azure rezerwuje zasoby obliczeniowe i sieciowe dla usługi w chmurze na podstawie wymagań nowej wersji usługi w chmurze. Na koniec platforma Azure wykonuje uaktualnienie stopniowe, aby przyrostowo zaktualizować dzierżawę do nowej wersji lub systemu operacyjnego gościa, zachowując jednocześnie dostępność. W tym artykule omówiono szczegóły tego ostatniego kroku — uaktualnienie stopniowe.
Aktualizowanie usługi platformy Azure
Platforma Azure organizuje wystąpienia ról w logiczne grupowania nazywane domenami uaktualniania (UD). Domeny uaktualniania (UD) to logiczne zestawy wystąpień ról, które są aktualizowane jako grupa. Platforma Azure aktualizuje usługę w chmurze pojedynczo, co umożliwia wystąpieniom w innych identyfikatorach UD dalsze obsługiwanie ruchu.
Domyślna liczba domen uaktualnienia to 5. Możesz określić inną liczbę domen uaktualnienia, uwzględniając atrybut upgradeDomainCount w pliku definicji usługi (csdef). Aby uzyskać więcej informacji na temat atrybutu upgradeDomainCount, zobacz Azure Cloud Services Definition Schema (.csdef File).
Podczas przeprowadzania aktualizacji w miejscu co najmniej jednej roli w usłudze platforma Azure aktualizuje zestawy wystąpień ról zgodnie z domeną uaktualnienia, do której należą. Platforma Azure aktualizuje wszystkie wystąpienia w danej domenie uaktualnienia — zatrzymuje je, aktualizując je, przywracając je w trybie online — a następnie przechodzi do następnej domeny. Zatrzymując tylko wystąpienia uruchomione w bieżącej domenie uaktualnienia, platforma Azure upewnia się, że aktualizacja ma najmniejszy możliwy wpływ na uruchomioną usługę. Aby uzyskać więcej informacji, zobacz Jak aktualizacja jest kontynuowana w dalszej części tego artykułu.
Uwaga
Podczas gdy terminy aktualizacji i uaktualniania mają nieco inne znaczenie w kontekście platformy Azure, mogą być używane zamiennie do procesów i opisów funkcji w tym dokumencie.
Usługa musi zdefiniować co najmniej dwa wystąpienia roli, aby ta rola została zaktualizowana bez przestoju. Jeśli usługa składa się tylko z jednego wystąpienia jednej roli, usługa jest niedostępna do momentu zakończenia aktualizacji w miejscu.
W tym artykule opisano następujące informacje dotyczące aktualizacji platformy Azure:
- Dozwolone zmiany usługi podczas aktualizacji
- Jak przebiega uaktualnianie
- Wycofywanie aktualizacji
- Inicjowanie wielu operacjimutowania na trwającym wdrożeniu
- Dystrybucja ról między domenami uaktualniania
Dozwolone zmiany usługi podczas aktualizacji
W poniższej tabeli przedstawiono dozwolone zmiany w usłudze podczas aktualizacji:
Zmiany dozwolone do hostowania, usług i ról | Aktualizacja w miejscu | Etapowe (zamiana adresów VIP) | Usuwanie i ponowne wdrażanie |
---|---|---|---|
Wersja systemu operacyjnego | Tak | Tak | Tak |
Poziom zaufania platformy .NET | Tak | Tak | Tak |
Rozmiarmaszyny wirtualnej 1 | Tak2 | Tak | Tak |
Ustawienia magazynu lokalnego | Zwiększ tylko2 | Tak | Tak |
Dodawanie lub usuwanie ról w usłudze | Tak | Tak | Tak |
Liczba wystąpień określonej roli | Tak | Tak | Tak |
Liczba lub typ punktów końcowych dla usługi | Tak2 | Nie. | Tak |
Nazwy i wartości ustawień konfiguracji | Tak | Tak | Tak |
Wartości (ale nie nazwy) ustawień konfiguracji | Tak | Tak | Tak |
Dodawanie nowych certyfikatów | Tak | Tak | Tak |
Zmienianie istniejących certyfikatów | Tak | Tak | Tak |
Wdrażanie nowego kodu | Tak | Tak | Tak |
1 Zmiana rozmiaru jest ograniczona do podzestawu rozmiarów dostępnych dla usługi w chmurze.
2 Wymaga zestawu Azure SDK 1.5 lub nowszego.
Ostrzeżenie
Zmiana rozmiaru maszyny wirtualnej spowoduje zniszczenie danych lokalnych.
Następujące elementy nie są obsługiwane podczas aktualizacji:
- Zmiana nazwy roli. Usuń, a następnie dodaj rolę z nową nazwą.
- Zmiana liczby domen uaktualnienia.
- Zmniejszanie rozmiaru zasobów lokalnych.
Jeśli wprowadzisz inne aktualizacje definicji usługi, takie jak zmniejszenie rozmiaru zasobu lokalnego, musisz wykonać aktualizację zamiany adresów VIP. Aby uzyskać więcej informacji, zobacz Wdrażanie zamiany.
Jak przebiega uaktualnianie
Możesz zdecydować, czy chcesz zaktualizować wszystkie role w usłudze, czy jedną rolę w usłudze. W obu przypadkach wszystkie wystąpienia każdej roli, która jest uaktualniana i należą do pierwszej domeny uaktualnienia, są zatrzymywane, uaktualniane i przywracane w trybie online. Po powrocie do trybu online wystąpienia w drugiej domenie uaktualniania zostaną zatrzymane, uaktualnione i przywrócone w trybie online. Usługa w chmurze może mieć co najwyżej jedno uaktualnienie aktywne naraz. Uaktualnienie jest zawsze wykonywane względem najnowszej wersji usługi w chmurze.
Na poniższym diagramie pokazano, jak uaktualnienie będzie kontynuowane w przypadku uaktualnienia wszystkich ról w usłudze:
Na następnym diagramie pokazano, jak aktualizacja jest kontynuowana, jeśli uaktualniasz tylko jedną rolę:
Podczas automatycznej aktualizacji kontroler usługi Azure Fabric okresowo ocenia kondycję usługi w chmurze, aby określić, kiedy można bezpiecznie przejść przez następną funkcję ud. Ta ocena kondycji jest wykonywana na podstawie poszczególnych ról i uwzględnia tylko wystąpienia w najnowszej wersji (czyli wystąpienia z identyfikatorów UD, które już chodziły). Sprawdza, czy dla każdej roli minimalna liczba wystąpień roli osiągnęła zadowalający stan terminalu.
Limit czasu rozpoczęcia wystąpienia roli
Kontroler sieci szkieletowej czeka 30 minut, aż każde wystąpienie roli osiągnie stan Uruchomione. Jeśli upłynie limit czasu, kontroler sieci szkieletowej będzie nadal przechodzić do następnego wystąpienia roli.
Wpływ na dane podczas uaktualniania usługi w chmurze
Podczas uaktualniania usługi z jednego wystąpienia do wielu wystąpień platforma Azure przenosi usługi w dół podczas uaktualniania. Umowa dotycząca poziomu usług gwarantująca dostępność usługi ma zastosowanie tylko do usług wdrożonych z więcej niż jednym wystąpieniem. Na poniższej liście opisano, jak każdy scenariusz uaktualniania usługi platformy Azure wpływa na dane na każdym dysku:
Scenariusz | Dysk C | Dysk D | Dysk E |
---|---|---|---|
Ponowne uruchamianie maszyny wirtualnej | Zachowane | Zachowane | Zachowane |
Ponowne uruchomienie portalu | Zachowane | Zachowane | Zniszczone |
Obraz portalu | Zachowane | Zniszczone | Zniszczone |
Uaktualnianie w miejscu | Zachowane | Zachowane | Zniszczone |
Migracja węzła | Zniszczone | Zniszczone | Zniszczone |
Na powyższej liście dysk E: reprezentuje dysk główny roli i nie powinien być zakodowany w kodzie. Zamiast tego użyj zmiennej środowiskowej %RoleRoot% , aby reprezentować dysk.
Aby zminimalizować przestoje podczas uaktualniania usługi pojedynczego wystąpienia, wdróż nową usługę z wieloma wystąpieniami na serwerze przejściowym i wykonaj zamianę adresów VIP.
Wycofywanie aktualizacji
Platforma Azure zapewnia elastyczność zarządzania usługami podczas aktualizacji, umożliwiając zainicjowanie większej liczby operacji w usłudze po zaakceptowaniu początkowego żądania aktualizacji przez kontroler usługi Azure Fabric. Wycofywanie można wykonać tylko wtedy, gdy aktualizacja (zmiana konfiguracji) lub uaktualnienie jest w stanie w toku wdrożenia. Aktualizacja lub uaktualnienie jest uznawane za w toku, o ile istnieje co najmniej jedno wystąpienie usługi, które pozostaje nieaktualizowane do nowej wersji. Aby sprawdzić, czy wycofanie jest dozwolone, sprawdź, czy wartość flagi RollbackAllowed jest ustawiona na true. Operacje Get Deployment and Get Cloud Service Properties zwracają flagę RollbackAllowed dla Twoich odwołań.
Uwaga
Warto wywołać wycofywanie aktualizacji lub uaktualnienia w miejscu , ponieważ uaktualnienia zamiany adresów VIP obejmują zastąpienie jednego całego uruchomionego wystąpienia usługi innym.
Wycofanie aktualizacji w toku ma następujący wpływ na wdrożenie:
- Wszystkie wystąpienia ról, które pozostają nieaktualizowane lub nie są uaktualniane do nowej wersji, nie są aktualizowane ani uaktualniane, ponieważ te wystąpienia już uruchamiają docelową wersję usługi.
- Wszystkie wystąpienia roli, które zostały już zaktualizowane lub uaktualnione do nowej wersji pliku pakietu usługi (*.cspkg) lub pliku konfiguracji usługi (*.cscfg) (lub obu plików), zostaną przywrócone do wersji wstępnej tych plików.
Następujące funkcje zapewniają następujące funkcje:
Operacja wycofywania aktualizacji lub uaktualniania, która może być wywoływana w ramach aktualizacji konfiguracji (wyzwalanej przez wywołanie konfiguracji wdrożenia zmiany) lub uaktualnienia (wyzwalanego przez wywołanie wdrożenia uaktualnienia), o ile istnieje co najmniej jedno wystąpienie w usłudze, które pozostaje nieaktualizowane do nowej wersji.
Zablokowany element i element RollbackAllowed, który jest zwracany w ramach treści odpowiedzi operacji Pobierz wdrożenie i Pobierz właściwości usługi w chmurze:
- Zablokowany element umożliwia wykrywanie, kiedy można wywołać operację mutowania w danym wdrożeniu.
- Element RollbackAllowed umożliwia wykrywanie, kiedy można wywołać operację Wycofywanie aktualizacji lub uaktualniania w danym wdrożeniu.
Aby można było wykonać wycofywanie, nie trzeba sprawdzać zarówno elementów Zablokowany, jak i RollbackAllowed. Wystarczy potwierdzić, że ustawienie RollbackAllowed ma wartość true. Te elementy są zwracane tylko wtedy, gdy te metody są wywoływane przy użyciu nagłówka żądania ustawionego na wartość "x-ms-version: 2011-10-01" lub nowszą wersję. Aby uzyskać więcej informacji na temat nagłówków przechowywania wersji, zobacz przechowywanie wersji klasycznego modelu wdrażania.
Istnieją sytuacje, w których wycofanie aktualizacji lub uaktualnienia nie jest obsługiwane, takie sytuacje są następujące:
- Zmniejszenie zasobów lokalnych — jeśli aktualizacja zwiększy zasoby lokalne dla roli, platforma Azure nie zezwala na wycofywanie.
- Ograniczenia przydziału — jeśli aktualizacja była operacją skalowania w dół, być może nie masz już wystarczającego limitu przydziału obliczeniowego, aby ukończyć operację wycofywania. Każda subskrypcja platformy Azure ma skojarzony limit przydziału. Limit przydziału określa maksymalną liczbę rdzeni, z których mogą korzystać wszystkie hostowane usługi należące do tej subskrypcji. Jeśli wykonanie wycofywania danej aktualizacji spowoduje przekroczenie limitu przydziału subskrypcji, wycofanie nie zostanie włączone.
- Warunek wyścigu — jeśli początkowa aktualizacja zakończy się, wycofanie nie jest możliwe.
Przykładem tego, kiedy wycofanie aktualizacji może być przydatne, jest użycie operacji wdrażania uaktualnienia w trybie ręcznym w celu kontrolowania szybkości, w której główne uaktualnienie w miejscu jest wdrażane w usłudze hostowanej na platformie Azure.
Podczas wdrażania uaktualnienia wywołasz metodę Wdrażanie uaktualnienia w trybie ręcznym i zaczniesz przechodzić przez domeny uaktualniania. Jeśli w pewnym momencie podczas monitorowania uaktualnienia zauważysz, że niektóre wystąpienia ról w pierwszych domenach uaktualnienia nie odpowiadają, możesz wywołać operację Wycofywanie aktualizacji lub Uaktualnianie we wdrożeniu. Ta operacja pozostawia nietknięte wystąpienia, które pozostaną nie uaktualnione i wycofają uaktualnione wystąpienia do poprzedniego pakietu usługi i konfiguracji.
Inicjowanie wielu operacjimutowania na trwającym wdrożeniu
W niektórych przypadkach może być konieczne zainicjowanie wielu jednoczesnych operacji mutowania w ramach trwającego wdrożenia. Na przykład możesz wykonać aktualizację usługi i podczas wdrażania aktualizacji w całej usłudze chcesz wprowadzić pewne zmiany, takie jak wycofanie aktualizacji, zastosowanie innej aktualizacji, a nawet usunięcie wdrożenia. W takim przypadku, w którym może wystąpić ten scenariusz, jest to, że uaktualnienie usługi zawiera kod usterek, który powoduje wielokrotne awarie uaktualnionego wystąpienia roli. W takim przypadku kontroler usługi Azure Fabric nie może poczynić postępów w stosowaniu tego uaktualnienia, ponieważ niewystarczająca liczba wystąpień w uaktualnionej domenie jest w dobrej kondycji. Ten stan jest określany jako zablokowane wdrożenie. Wdrożenie można usunąć za pomocą wycofywania aktualizacji lub stosowania nowej aktualizacji w górnej części niepowodzenia.
Gdy kontroler usługi Azure Fabric otrzyma początkowe żądanie aktualizacji lub uaktualnienia usługi, możesz rozpocząć kolejne operacjemutowania. Oznacza to, że nie musisz czekać na ukończenie operacji początkowej, zanim będzie można uruchomić kolejną operacjęmutowania.
Inicjowanie drugiej operacji aktualizacji, gdy pierwsza aktualizacja jest w toku, jest wykonywana podobnie do operacji wycofywania. Jeśli druga aktualizacja jest w trybie automatycznym, pierwsze uaktualnienie domeny jest natychmiast uaktualniane, co może prowadzić do wystąpień z wielu domen uaktualniania w trybie offline w tym samym czasie.
Operacjemutowania są następujące: Zmień konfigurację wdrożenia, wdrożenie uaktualnienia, stan wdrożenia aktualizacji, usuń wdrożenie i wycofaj aktualizację lub uaktualnienie.
Dwie operacje: Pobierz wdrożenie i Pobierz właściwości usługi w chmurze, zwracają flagę Zablokowana. Możesz sprawdzić flagę Blokada, aby określić, czy można wywołać operację mutowania w danym wdrożeniu.
Aby wywołać wersję tych metod, która zwraca flagę Blokada, należy ustawić nagłówek żądania na "x-ms-version: 2011-10-01" lub nowszy. Aby uzyskać więcej informacji na temat nagłówków przechowywania wersji, zobacz przechowywanie wersji klasycznego modelu wdrażania.
Dystrybucja ról między domenami uaktualniania
Platforma Azure dystrybuuje wystąpienia roli równomiernie w określonej liczbie domen uaktualniania, które można skonfigurować jako część pliku definicji usługi (csdef). Maksymalna liczba domen uaktualnienia to 20, a wartość domyślna to 5. Aby uzyskać więcej informacji na temat modyfikowania pliku definicji usługi, zobacz Schemat definicji usługi platformy Azure (plik csdef).
Jeśli na przykład rola ma 10 wystąpień, każda domena uaktualnienia domyślnie zawiera dwa wystąpienia. Jeśli twoja rola ma 14 wystąpień, cztery domeny uaktualniania zawierają trzy wystąpienia, a piąta domena zawiera dwa.
Domeny uaktualniania są identyfikowane z indeksem opartym na zera: pierwsza domena uaktualnienia ma identyfikator 0, a druga domena uaktualnienia ma identyfikator 1 itd.
Na poniższym diagramie przedstawiono sposób dystrybucji ról w usłudze zawierającej dwie role, gdy usługa definiuje dwie domeny uaktualnienia. Usługa uruchamia osiem wystąpień roli sieci Web i dziewięć wystąpień roli procesu roboczego.
Uwaga
Należy pamiętać, że platforma Azure kontroluje sposób przydzielania wystąpień w domenach uaktualniania. Nie można określić, które wystąpienia są przydzielane do której domeny.
Następne kroki
Jak zarządzać usługami w chmurze
Jak monitorować usługi Cloud Services
Jak skonfigurować usługi Cloud Services