Udostępnij przez


Rozważania dotyczące aktualizacji rozwiązania wielodostępnego

Jedną z zalet technologii chmury jest ciągłe ulepszanie i ewolucja. Jako dostawca usług należy zastosować aktualizacje do rozwiązania. Może być konieczne wprowadzenie zmian w kodzie aplikacji, infrastrukturze platformy Azure, schematach bazy danych lub innym składniku. Ważne jest zaplanowanie sposobu aktualizowania środowisk. W rozwiązaniu wielodostępnym szczególnie ważne jest, aby jasno określić zasady aktualizacji, ponieważ niektórzy najemcy mogą niechętnie zezwalać na zmiany w ich środowiskach, lub mogą mieć wymagania ograniczające warunki, w których można zaktualizować ich usługę.

Podczas planowania strategii aktualizacji rozwiązania należy:

  • Zidentyfikuj wymagania najemców.
  • Wyjaśnienie własnych wymagań dotyczących obsługi usługi.
  • Znajdź saldo, które możesz zaakceptować zarówno ty, jak i twoi dzierżawcy.
  • Jasno przekaż swoją strategię dzierżawcom i innym uczestnikom projektu.

Ten artykuł przedstawia wskazówki dla decydentów technicznych w sprawie podejść do aktualizacji oprogramowania najemcy oraz związanych z tym kompromisów.

Wymagania klientów

Klienci często mają jawne lub niejawne wymagania, które mogą mieć wpływ na sposób aktualizacji systemu. Rozważ następujące aspekty, aby utworzyć obraz wszelkich kwestii, które mogą budzić klienci:

  • Oczekiwania i wymagania: Odkryj wszelkie oczekiwania lub wymagania, które klienci mogą mieć na temat tego, kiedy można zaktualizować swoje rozwiązanie. Te oczekiwania lub wymagania mogą być formalnie przekazywane Użytkownikowi w umowach lub umowach dotyczących poziomu usług lub mogą być nieformalne.

  • Okna obsługi: Dowiedz się, czy klienci oczekują okien obsługi zdefiniowanych przez usługę lub samodzielnie zdefiniowanych. Może być konieczne przekazanie użytkownikom informacji o potencjalnych awariach. Mogą również oczekiwać przetestowania ważnych aspektów usługi po zakończeniu aktualizacji.

  • Przepisy: Wyjaśnij, czy klienci mają jakiekolwiek wątpliwości dotyczące regulacji, które wymagają dodatkowego zatwierdzenia przed zastosowaniem aktualizacji. Jeśli na przykład podasz rozwiązanie zdrowotne, które zawiera składniki IoT, może być konieczne uzyskanie zatwierdzenia od United States Food and Drug Administration (FDA) przed zastosowaniem aktualizacji.

  • Czułość: Dowiedz się, czy którykolwiek z Twoich klientów jest szczególnie wrażliwy lub odporny na stosowanie aktualizacji. Jeśli tak jest, spróbuj zrozumieć, dlaczego. Jeśli na przykład uruchamiają sklep fizyczny lub witrynę internetową, mogą chcieć uniknąć aktualizacji wokół Black Friday, ponieważ ryzyko jest wyższe niż potencjalne korzyści.

  • Historia: Przejrzyj historię swoich pomyślnie przeprowadzonych aktualizacji, które nie miały wpływu na klientów. Należy postępować zgodnie z dobrymi rozwiązaniami DevOps, testowaniem, wdrażaniem i monitorowaniem, aby zmniejszyć prawdopodobieństwo awarii oraz zapewnić szybkie zidentyfikowanie wszelkich problemów, które wprowadzono w aktualizacjach. Jeśli klienci wiedzą, że możesz bezproblemowo aktualizować swoje środowiska, jest mniej prawdopodobne, aby sprzeciwić się.

  • Wycofywanie: Zastanów się, czy klienci chcą cofnąć aktualizacje w przypadku wprowadzenia zmiany niekompatybilnej i kto będzie inicjować takie żądanie cofnięcia.

Wymagania

Należy również wziąć pod uwagę następujące pytania z własnej perspektywy:

  • Kontrola, którą chcesz zapewnić: Czy uzasadnione jest, aby klienci mieli kontrolę nad zastosowaniem aktualizacji? Jeśli tworzysz rozwiązanie używane przez dużych klientów korporacyjnych, odpowiedź może być tak. Jeśli jednak tworzysz rozwiązanie skoncentrowane na konsumentach, jest mało prawdopodobne, aby można było kontrolować sposób uaktualniania lub obsługi rozwiązania.

  • Wersje: Ile wersji rozwiązania można rozsądnie obsługiwać jednocześnie? Jeśli znajdziesz usterkę lub lukę w zabezpieczeniach i musisz zastosować poprawkę, może być konieczne zastosowanie jej do wszystkich aktualnie używanych wersji.

  • Konsekwencje starych wersji: Jaki jest wpływ na pozostawienie klientów zbyt daleko w tyle za bieżącą wersją? Jeśli regularnie publikujesz nowe funkcje, czy stare wersje stają się przestarzałe szybko? Ponadto w zależności od strategii uaktualniania i typów zmian może być konieczne utrzymanie oddzielnych infrastruktury dla każdej wersji rozwiązania. W związku z tym mogą istnieć zarówno koszty operacyjne, jak i finansowe, ponieważ utrzymujesz obsługę starszych wersji.

  • Wycofywanie: Czy strategia wdrażania może obsługiwać wycofywanie do poprzednich wersji? Czy chcesz włączyć tę funkcję?

Uwaga

Zastanów się, czy musisz przejąć rozwiązanie w tryb offline na potrzeby aktualizacji lub konserwacji. Okna awarii są zwykle uważane za nieaktualną praktykę oprogramowania jako usługi (SaaS). Nowoczesne rozwiązania DevOps i technologie w chmurze umożliwiają uniknięcie przestojów podczas aktualizacji i konserwacji. Należy jednak zaprojektować wdrożenia bez przestojów. Ważne jest, aby podczas planowania architektury rozwiązania wziąć pod uwagę proces aktualizacji.

Nawet jeśli nie planujesz awarii podczas procesu aktualizacji, nadal możesz zdefiniować regularne okno obsługi. Takie podejście pomaga komunikować klientom, że zmiany zachodzą w określonych terminach.

Aby uzyskać więcej informacji na temat sposobu osiągnięcia wdrożeń bez przestojów, zobacz Eliminowanie przestojów za pomocą wersjonowanych aktualizacji usługi.

Znajdowanie równowagi

Jeśli pozostawisz częstotliwość aktualizacji swojej usługi w całości według uznania najemców, mogą oni nigdy nie chcieć aktualizować. Ważne jest, aby umożliwić sobie aktualizowanie rozwiązania, przy jednoczesnym uwzględnieniu wszelkich uzasadnionych problemów lub ograniczeń, które mogą mieć twoi klienci. Jeśli na przykład klient jest szczególnie wrażliwy na aktualizacje w piątek, ponieważ jest to najbardziej ruchliwy dzień tygodnia, rozważ, czy możesz równie łatwo odroczyć aktualizacje do poniedziałku bez wpływu na rozwiązanie.

Jedną z metod, które mogą dobrze działać, jest wdrażanie aktualizacji dla poszczególnych najemców przy użyciu jednej z dostępnych strategii wdrażania. Powiadamianie klientów o planowanych aktualizacjach. Zezwól klientom na tymczasowe, ale nie trwałe rezygnacje. Określ rozsądny limit czasowy na wymuszenie aktualizacji.

Rozważ możliwość samodzielnego wdrażania poprawek zabezpieczeń lub innych poprawek krytycznych z minimalnym wyprzedzeniem lub bez powiadomienia. Upewnij się, że dzierżawcy rozumieją tę praktykę i jej znaczenie w zabezpieczaniu danych.

Innym podejściem może być umożliwienie dzierżawcom inicjowania własnych aktualizacji w wybranym czasie. Ponownie należy podać termin, w którym to momencie stosujesz aktualizację w ich imieniu.

Ostrzeżenie

Należy zachować ostrożność, gdy pozwalasz dzierżawcom inicjować własne aktualizacje. Ten proces jest złożony do wdrożenia i wymaga znacznego nakładu pracy programistycznej i testowej w celu zapewnienia i utrzymania.

Niezależnie od tego, co robisz, upewnij się, że masz proces monitorowania kondycji użytkowników, szczególnie przed i po zastosowaniu aktualizacji. Krytyczne zdarzenia produkcyjne, znane również jako zdarzenia typu live-site, często występują po zmianie kodu lub konfiguracji. W związku z tym ważne jest, aby aktywnie monitorować wszelkie problemy i reagować na nie, aby zachować zaufanie klientów. Aby uzyskać więcej informacji, zobacz Zarządzanie zdarzeniami dla obciążeń SaaS na platformie Azure.

Komunikacja z klientami

Jasna komunikacja jest kluczem do budowania zaufania klientów. Ważne jest, aby wyjaśnić korzyści wynikające z regularnych aktualizacji, w tym nowych funkcji, poprawek błędów, rozwiązywania luk w zabezpieczeniach i ulepszeń wydajności. Jedną z zalet nowoczesnego rozwiązania hostowanego w chmurze jest ciągłe dostarczanie funkcji i aktualizacji.

Weź pod uwagę następujące pytania:

  • Czy powiadomisz klientów o nadchodzących aktualizacjach?

  • Jeśli to zrobisz, czy niejawnie zażądasz uprawnień, podając proces rezygnacji i jakie są limity rezygnacji?

  • Czy masz zaplanowane okno obsługi używane podczas stosowania aktualizacji?

  • Co się stanie, jeśli masz aktualizację alarmową, na przykład krytyczną poprawkę zabezpieczeń? Czy możesz wymusić aktualizacje w tych sytuacjach?

  • Jeśli nie możesz aktywnie powiadamiać klienta o nadchodzących aktualizacjach, czy możesz udostępnić powiadomienia retrospektywne? Na przykład możesz zaktualizować stronę w witrynie internetowej przy użyciu listy zastosowanych aktualizacji?

  • Ile oddzielnych wersji systemu będzie utrzymywanych w środowisku produkcyjnym?

Komunikowanie się z zespołem pomocy technicznej klienta

Ważne jest, aby twój zespół wsparcia miał pełny wgląd w aktualizacje, które zostały zastosowane do infrastruktury każdego najemcy. Przedstawiciele pomocy technicznej klienta powinni mieć możliwość łatwego odpowiadania na następujące pytania:

  • Czy aktualizacje zostały ostatnio zastosowane do infrastruktury dzierżawy lub do składników udostępnionych?

  • Jaki był charakter tych aktualizacji?

  • Jaka była poprzednia wersja?

  • Jak często są stosowane aktualizacje w tej dzierżawie?

Jeśli jeden z Twoich klientów ma problem z aktualizacją, musisz upewnić się, że zespół pomocy technicznej klienta ma informacje niezbędne do zrozumienia, co się zmieniło.

Strategie wdrażania w celu wsparcia aktualizacji

Rozważ wdrożenie aktualizacji w infrastrukturze. Strategia aktualizacji zależy w dużym stopniu od używanego modelu dzierżawy . Trzy typowe podejścia do wdrażania aktualizacji to znaczniki wdrożenia, flagi funkcji i pierścienie wdrażania. Możesz użyć tych metod niezależnie lub połączyć je ze sobą, aby spełnić bardziej złożone wymagania.

We wszystkich przypadkach upewnij się, że masz wystarczające raportowanie i widoczność. Musisz wiedzieć, do jakiej wersji infrastruktury, oprogramowania lub funkcji używa każda dzierżawa, do czego kwalifikuje się migracja, oraz wszelkich danych związanych z czasem powiązanych z tymi stanami. Śledzenie tych informacji jest często jedną z obowiązków płaszczyzny sterowania.

Wzorzec znaczników wdrożeniowych

Wiele aplikacji wielodostępnych jest dobrym rozwiązaniem dla wzorca sygnatur wdrażania. W tym wzorcu wdrożysz wiele kopii aplikacji i innych składników. W zależności od wymagań dotyczących izolacji, można wdrożyć znacznik dla każdej dzierżawy lub udostępnione znaczniki, które uruchamiają obciążenia wielu dzierżaw.

Znaczki to doskonały sposób zapewnienia izolacji między najemcami. Zapewniają one również elastyczność procesu aktualizacji, ponieważ można stopniowo wdrażać aktualizacje w poszczególnych częściach systemu bez wpływu na pozostałe.

Flagi funkcjonalności

Flagi funkcji umożliwiają dodawanie funkcjonalności do rozwiązania, a jednocześnie udostępnianie jej tylko w podzbiorze klientów lub najemców.

Rozważ użycie flag funkcji, jeśli jeden z tych scenariuszy ma zastosowanie do Ciebie:

  • Aktualizacje są wdrażane regularnie, ale chcesz uniknąć wyświetlania nowych funkcji, dopóki nie zostaną one w pełni zaimplementowane.

  • Chcesz uniknąć stosowania zmian w zachowaniu, dopóki klient nie wyrazi zgody.

Obsługę flag funkcji można osadzić w aplikacji, pisząc kod samodzielnie lub przy użyciu usługi, takiej jak Azure App Configuration.

Pierścienie wdrażania

Pierścienie wdrażania umożliwiają stopniowe wdrażanie aktualizacji w zestawie dzierżaw lub sygnatur wdrożenia. Możesz przypisać podzbiór dzierżawców do każdego pierścienia w sekwencji wdrażania.

Możesz określić liczbę pierścieni do utworzenia i znaczenie każdego pierścienia dla własnego rozwiązania. Często organizacje używają następujących pierścieni:

  • Kanarek: Pierścień kanarowy obejmuje własne dzierżawy testowe i klientów, którzy chcą otrzymywać aktualizacje, gdy tylko będą dostępne. Każdy na pierścieniu kanaryjnym powinien zrozumieć, że może otrzymywać częstsze aktualizacje. Te aktualizacje mogły nie zostać poddane tak kompleksowemu procesowi weryfikacji, jak aktualizacje w innych pierścieniach.

  • Wczesny użytkownik: Pierścień dla wczesnych użytkowników zawiera dzierżawców, którzy są nieco ostrożniejsi, ale nadal przygotowani do otrzymywania regularnych aktualizacji.

  • Użytkownicy: Większość twoich użytkowników należy do pierścienia użytkowników, który otrzymuje rzadziej aktualizacje, które są bardziej testowane.

Wersje interfejsu API

Jeśli Twoja usługa uwidacznia zewnętrzny interfejs API, należy wziąć pod uwagę, że wszelkie zastosowane aktualizacje mogą mieć wpływ na sposób integracji klientów lub partnerów z platformą. W szczególności musisz być świadomy zmian powodujących niezgodność w interfejsach API. Rozważ użycie strategii przechowywania wersji interfejsu API , aby ograniczyć ryzyko aktualizacji interfejsu API.

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główny autor:

  • John Downs | Główny inżynier oprogramowania, wzorce i praktyki platformy Azure

Inni współautorzy:

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.