Zagadnienia dotyczące aktualizowania rozwiązania wielodostępnego
Jedną z zalet technologii chmury jest ciągłe ulepszanie i ewolucja. Jako dostawca usług musisz 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 były jasne zasady aktualizacji, ponieważ niektóre dzierżawy mogą niechętnie zezwalać na zmiany w ich środowiskach lub mogą mieć wymagania ograniczające warunki, w których można zaktualizować usługę.
Podczas planowania strategii aktualizacji rozwiązania należy:
- Zidentyfikuj wymagania dzierżaw.
- 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.
W tym artykule udostępniamy wskazówki dla osób podejmujących decyzje techniczne dotyczące podejść, które można wziąć pod uwagę, aby zaktualizować oprogramowanie dzierżawców oraz związane z tym kompromisy.
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. Mogą one być formalnie przekazywane Tobie 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ę, czy nawet okien obsługi zdefiniowanych samodzielnie. Może być konieczne przekazanie użytkownikom informacji o potencjalnych awariach lub może być konieczne przetestowanie ważnych aspektów usługi po zakończeniu aktualizacji.
- Przepisy: Wyjaśnij, czy klienci mają jakiekolwiek obawy prawne, 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 Stany Zjednoczone Food and Drug Administration (FDA) przed zastosowaniem aktualizacji.
- Ważność: 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 swój własny rekord śledzenia pomyślnego ukończenia aktualizacji bez żadnego 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 wprowadza aktualizacje. Jeśli klienci wiedzą, że możesz bezproblemowo aktualizować swoje środowiska, jest mniej prawdopodobne, aby sprzeciwić się.
- Wycofywanie: rozważ, czy klienci chcą wycofać aktualizacje, jeśli nastąpiła zmiana powodująca niezgodność i kto wyzwoli takie żądanie wycofania.
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, że udzielisz żadnej kontroli nad sposobem uaktualniania lub obsługi rozwiązania.
- Wersje: ile wersji rozwiązania można rozsądnie obsługiwać jednocześnie? Pamiętaj, że jeśli znajdziesz usterkę i musisz ją wprowadzić, może być konieczne zastosowanie poprawki do wszystkich używanych wersji.
- Konsekwencje starych wersji: Jaki jest wpływ zezwalania klientom na zbyt daleko w tyle za bieżącą wersją? Jeśli regularnie udostępniasz nowe funkcje, stare wersje będą szybko przestarzałe? 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 jest to coś, co chcesz włączyć?
Uwaga
Zastanów się, czy musisz przejąć rozwiązanie w tryb offline na potrzeby aktualizacji lub konserwacji. Ogólnie rzecz biorąc, okna awarii są postrzegane jako nieaktualna praktyka, a nowoczesne rozwiązania DevOps i technologie chmury umożliwiają uniknięcie przestojów podczas aktualizacji i konserwacji. Należy jednak zaprojektować wdrożenia bez przestojów, dlatego podczas planowania architektury rozwiązania należy wziąć pod uwagę proces aktualizacji.
Nawet jeśli nie planujesz awarii podczas procesu aktualizacji, możesz nadal rozważyć zdefiniowanie regularnego okna obsługi. Okno może pomóc w komunikowaniu się z klientami, że zmiany występują w określonych godzinach.
Aby uzyskać więcej informacji na temat osiągnięcia wdrożeń bez przestojów, zobacz Eliminowanie przestojów za pośrednictwem aktualizacji usługi w wersji.
Znajdowanie równowagi
Jeśli pozostawisz okres aktualizacji usługi w całości według uznania dzierżawy, mogą oni nigdy nie 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, możesz równie łatwo odroczyć aktualizacje do poniedziałków, bez wpływu na rozwiązanie?
Jedną z metod, które mogą dobrze działać, jest wdrożenie aktualizacji w ramach dzierżawy według dzierżawy przy użyciu jednej z metod opisanych poniżej. Przekaż klientowi powiadomienie o planowanych aktualizacjach. Zezwól klientom na tymczasowe rezygnacje, ale nie na zawsze; należy wprowadzić rozsądny limit, gdy będzie wymagane zastosowanie aktualizacji.
Należy również rozważyć 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 momencie ich wyboru. Ponownie należy podać termin, w którym to momencie stosujesz aktualizację w ich imieniu.
Ostrzeżenie
Należy zachować ostrożność podczas włączania dzierżawców w celu zainicjowania własnych aktualizacji. Jest to złożone 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 dzierżaw, szczególnie przed zastosowaniem aktualizacji i po nim. Często krytyczne zdarzenia produkcyjne (nazywane również zdarzeniami lokacji na żywo) występują po aktualizacji kodu lub konfiguracji. Dlatego ważne jest, aby aktywnie monitorować wszelkie problemy i reagować na nie, aby zachować zaufanie klientów. Aby uzyskać więcej informacji na temat monitorowania, zobacz Zalecenia dotyczące projektowania i tworzenia systemu monitorowania.
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.
Zastanów się nad następującymi pytaniami:
- 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 własny zespół pomocy technicznej miał pełny wgląd w aktualizacje, które zostały zastosowane do infrastruktury każdej dzierżawy. 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 do tej dzierżawy?
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 do obsługi aktualizacji
Zastanów się, jak wdrożysz aktualizacje w infrastrukturze. Ma to duży wpływ na używany model dzierżawy. Trzy typowe podejścia do wdrażania aktualizacji to sygnatury 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ść, aby wiedzieć, jaka wersja infrastruktury, oprogramowania lub funkcji jest włączona dla każdej dzierżawy, do czego kwalifikują się do migracji, oraz wszelkich danych związanych z czasem skojarzonych z tymi stanami.
Wzorzec sygnatur wdrażania
Wiele aplikacji wielodostępnych jest dobrym rozwiązaniem dla wzorca sygnatur wdrażania, w którym wdraża się wiele kopii aplikacji i innych składników. W zależności od wymagań dotyczących izolacji można wdrożyć sygnaturę dla każdej dzierżawy lub sygnatury udostępnione, które uruchamiają obciążenia wielu dzierżaw.
Sygnatury to doskonały sposób zapewnienia izolacji między dzierżawami. Zapewniają one również elastyczność procesu aktualizacji, ponieważ można stopniowo wdrażać aktualizacje między sygnaturami bez wpływu na inne osoby.
Flagi funkcji
Flagi funkcji umożliwiają dodawanie funkcji do rozwiązania, a jednocześnie uwidacznianie tej funkcji tylko w podzestawie klientów lub dzierżaw.
Rozważ użycie flag funkcji, jeśli dotyczy to jednej z tych sytuacji:
- 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 używając usługi, takiej jak aplikacja systemu Azure Configuration.
Pierścienie wdrażania
Pierścienie wdrażania umożliwiają stopniowe wdrażanie aktualizacji w zestawie dzierżaw lub sygnatur wdrożenia. Do każdego pierścienia można przypisać podzbiór dzierżaw.
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:
- Canary: Pierścień kanarowy obejmuje własne dzierżawy testowe i klientów, którzy chcą mieć aktualizacje tak szybko, jak tylko są dostępne, dzięki zrozumieniu, że mogą otrzymywać częstsze aktualizacje i że aktualizacje mogą nie być za pośrednictwem kompleksowego procesu weryfikacji, jak w innych rzeczach.
- Wczesny adopter: Wczesny pierścień wdrażania zawiera dzierżawców, którzy są nieco bardziej ryzykowni, ale którzy są nadal gotowi otrzymywać regularne aktualizacje.
- Użytkownicy: większość dzierżaw będzie należeć do pierścienia użytkowników , który otrzymuje rzadziej i bardziej testowane aktualizacje.
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
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- John Downs | Główny inżynier oprogramowania
Inni współautorzy:
- Chad Kittel | Główny inżynier oprogramowania
- Daniel Scott-Raynsford | Partner TechnologyStrateg
- Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następny krok
Rozważ mapowania żądań do dzierżaw w rozwiązaniu wielodostępnym.