Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Praktyki DevOps są integralną częścią zarządzania obciążeniami na platformie Azure, zwłaszcza w przypadku aplikacji typu oprogramowanie jako usługa (SaaS). Kluczowe aspekty zarządzania obciążeniem obejmują dołączanie, odłączanie i modyfikowanie wystąpień klientów. Te rozwiązania usprawniają operacje i zwiększają skalowalność i niezawodność, co minimalizuje ryzyko awarii.
W tym artykule opisano zagadnienia dotyczące projektowania dotyczące efektywnego zarządzania cyklem życia klienta i bezpiecznych praktyk wdrażania.
Zarządzanie cyklami życia klientów
Zarządzanie zdarzeniami cyklu życia klienta ma kluczowe znaczenie dla każdej aplikacji SaaS. Zazwyczaj te zdarzenia obejmują:
- Dołączanie: Gdy klient się zarejestruje.
- Zmiany: Gdy wystąpienie klienta zostanie zmodyfikowane, na przykład zmiana warstwy cenowej.
- Offboarding: Gdy klient anuluje swoje członkostwo.
Mogą wystąpić inne zdarzenia cyklu życia. Możesz na przykład zezwolić klientom na wstrzymanie subskrypcji podczas przechowywania danych przez określony okres i wznowienie subskrypcji później. Każde zdarzenie może mieć unikatowe konsekwencje dla aplikacji.
W niektórych rozwiązaniach zarządzanie cyklem życia klienta może wymagać tylko tworzenia danych w tabeli bazy danych lub zarządzania nimi. W przypadku innych rozwiązań może to obejmować organizowanie wdrożenia infrastruktury platformy Azure, kodu aplikacji i bardziej złożonej konfiguracji.
Zarządzanie cyklem życia to kluczowa odpowiedzialność za płaszczyznę sterowania rozwiązania SaaS. Początkowo zespół może obsługiwać te działania ręcznie. Jednak w czasie spróbuj przenieść więcej funkcji do sformalizowanego rozwiązania płaszczyzny sterowania lub aplikacji.
Uwagi dotyczące projektowania
Spójność. Podczas planowania strategii zarządzania cyklem życia należy wziąć pod uwagę złożoność akcji, których wymaga każde zdarzenie cyklu życia klienta. Te akcje obejmują rozmiar rozwiązania, bazę klientów i obciążenie organizacyjne. Jasne zrozumienie niezbędnych kroków dla każdego zdarzenia i inwestowanie w mechanizmy kontroli w celu zachowania spójności. Regularne przeglądanie i aktualizowanie procesów w celu zapewnienia, że pozostają one prawidłowe w miarę rozwoju rozwiązania.
Model dzierżawy. Podejście do obsługi zdarzeń cyklu życia klienta zależy od modelu dzierżawy.
Całkowicie wielodostępne rozwiązania, które posiadają zasoby infrastruktury. Dołączanie lub odłączanie klienta zwykle obejmuje aktualizowanie listy klientów i skojarzonych danych w magazynie danych aplikacji.
Dedykowane zasoby na klienta. Zadania zazwyczaj obejmują inicjowanie wdrożeń na platformie Azure, monitorowanie postępu i obsługę błędów wdrażania, prawdopodobnie z interwencją człowieka.
Zasoby wdrożone przez klienta. Może być konieczne bezpośrednie połączenie z zespołem inżynierów klienta na potrzeby dołączania lub odłączania.
Warstwy. Rozważ model cenowy i różne potrzeby dotyczące infrastruktury każdej warstwy, zwłaszcza jeśli w dowolnym momencie klienci mogą swobodnie zmieniać swoją jednostkę SKU. Jeśli na przykład rozwiązanie SaaS zawiera podstawową aplikację i wiele płatnych modułów dodatku, upewnij się, że zasoby aplikacji podstawowej są wdrażane podczas dołączania. Ponadto umożliwia dynamiczne dodawanie i usuwanie modułów dodatków. Po usunięciu modułu zdecyduj, czy usunąć skojarzone dane, czy zapisać je do potencjalnej ponownej aktywacji.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Dokumentowanie każdego typu zdarzenia cyklu życia klienta. Upewnij się, że przechwytujesz szczegółowe informacje krok po kroku dotyczące procesu dla każdego zdarzenia. |
Możesz zaplanować reagowanie na każde zdarzenie w projekcie rozwiązania. Jasne instrukcje pomagają operatorom ludzkim zachować spójność i służyć jako podstawa przyszłej automatyzacji. |
| Przekaż wspólną odpowiedzialność między Tobą a klientem dla każdego zdarzenia cyklu życia. Jasno i wcześnie poinformuj o działaniach, które mają być podejmowane przez klientów w celu ukończenia etapu cyklu życia. | Możesz zmniejszyć potencjalne błędy i frustrację klienta spowodowaną błędami. |
| Planowanie pojemności dla każdego zdarzenia cyklu życia. Na przykład podczas wprowadzania nowego klienta zaplanuj wdrożenie nowego wystąpienia aplikacji, jeśli istniejące wystąpienia nie mają wystarczającej pojemności, aby poradzić sobie z dodatkowym obciążeniem. Aby uzyskać więcej informacji, zobacz Rozliczenia i zarządzanie kosztami dla obciążeń SaaS na platformie Azure. |
Można łatwiej skalować i zapobiegać niepowodzeniom wdrażania. |
| Automatyzowanie zdarzeń cyklu życia, gdy jest to praktyczne. W przypadku rozwiązań o niskim woluminie lub wczesnym etapie wdrożenie ręczne i konfiguracja mogą być wystarczające. Jednak nadal należy używać skryptów, nawet jeśli inżynier uruchamia je za każdym razem, gdy wystąpi zdarzenie cyklu życia. W miarę dojrzewania rozwiązania należy zintegrować te obowiązki z pełną płaszczyzną sterowania, aby zmniejszyć liczbę błędów ludzkich i obsługiwać wyższą skalę. |
Można zmniejszyć znaczne ryzyko błędu ludzkiego i wspierać wyższą skalę. |
Planowanie strategii zarządzania infrastrukturą
Opracuj strategię wdrażania, utrzymywania infrastruktury platformy Azure i zarządzania nią na wczesnym etapie. W miarę skalowania modelu SaaS liczba zasobów rośnie. Łatwiej jest stosować strategię zarządzania od samego początku niż uzgodnić infrastrukturę później, gdy staje się zbyt złożona, aby obsługiwać ją ręcznie.
Uwagi dotyczące projektowania
Zarządzanie zasobami klienta. Model dzierżawy ma wpływ na wdrażanie zasobów w rozwiązaniach SaaS. Możesz wdrożyć dedykowane zasoby platformy Azure dla każdego klienta lub udostępnić zasoby wśród określonej liczby klientów. Alternatywnie możesz użyć jednego zestawu zasobów udostępnionych i ponownie skonfigurować je podczas dołączania nowych klientów. Rozważ następujące typowe podejścia do zarządzania cyklem życia zasobów:
Traktuj listę klientów jako konfigurację zasobów do wdrożenia. Użyj scentralizowanych potoków wdrażania, aby wdrożyć i skonfigurować te zasoby.
Traktuj listę klientów jako dane. Użyj aplikacji płaszczyzny sterowania, aby aprowizować i konfigurować infrastrukturę.
Automatyzacja infrastruktury. Wiele organizacji rozpoczyna się od ręcznego wdrażania infrastruktury w chmurze za pośrednictwem witryny Azure Portal. Ta strategia jest na początku łatwa, ale nie skaluje się dobrze w miarę upływu czasu. Zaplanuj automatyzację konfiguracji infrastruktury przy użyciu narzędzi infrastruktury jako kodu (IaC), takich jak Bicep lub Terraform. Aby uzyskać bardziej złożone wymagania, utwórz płaszczyznę sterowania, która bezpośrednio korzysta z interfejsów API usługi Azure Resource Manager.
Przypisanie infrastruktury. Śledź, którzy klienci są wdrażani w której infrastrukturze. Śledzenie jest ważne w przypadku dokładnego planowania pojemności i przypisywania kosztów. Infrastrukturę klienta można śledzić centralnie w bazie danych klienta. Lub w przypadku dedykowanej infrastruktury użyj metadanych zasobów platformy Azure z grupami zasobów specyficznymi dla klienta i tagami zasobów. Aby uzyskać więcej informacji, zobacz Organizacja zasobów dla obciążeń SaaS.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Buduj automatyzację infrastruktury, używając potoków wdrażania, skryptów lub szablonów za pomocą narzędzi, które twój zespół już zna. | Znane narzędzia zmniejszają ryzyko błędów, ponieważ automatyzacja infrastruktury może być destrukcyjna, jeśli narzędzia nie są zrozumiałe. |
| Wdróż infrastrukturę przy użyciu IaC, jeśli to możliwe. | IaC pomaga zmniejszyć ręczną konserwację, co staje się coraz bardziej ryzykowne i uciążliwe w miarę wzrostu liczby elementów infrastruktury. |
| Oddziel infrastrukturę podstawową od infrastruktury na poziomie klienta. | Różne typy infrastruktury mają różne cykle życia i działania związane z zarządzaniem. Oddzielając je, można zarządzać poszczególnymi zestawami niezależnie zgodnie z własnym harmonogramem. |
| Wdrażanie zasobów wdrożonych przez klienta i zarządzanie nimi za pomocą aplikacji zarządzanych platformy Azure. | Aplikacje zarządzane platformy Azure udostępniają szereg funkcji, których można użyć do wdrażania zasobów i zarządzania nimi w ramach subskrypcji platformy Azure klienta. |
Planowanie wdrożeń aplikacji
Aby zwiększyć funkcjonalność, regularnie aktualizuj kod i konfigurację aplikacji. Klienci oczekują spójnego czasu pracy podczas aktualizacji i bezpiecznych wdrożeń, aby zminimalizować ryzyko awarii.
Uwagi dotyczące projektowania
Standaryzacja narzędzi i procesów. Sprawdzone w branży narzędzia DevOps pomagają zapewnić spójność między funkcjami i dojrzałością w procesach zarządzania wdrożeniami aplikacji. W większości sytuacji opracowywanie własnych narzędzi jest uważane za antywzorzec. Aby uzyskać więcej informacji, zobacz OE:03 Software development practices (Rozwiązania programistyczne OE:03).
Kompromis: Złożoność i koszty. Znane narzędzia DevOps mogą być opłacalne pod względem pieniędzy i umiejętności. Jednak zapewniają one obciążenie operacyjne związane z zarządzaniem poszczególnymi narzędziami oddzielnie. Ważne jest, aby pozostać otwartym na nowe innowacje technologiczne, które mogą przynieść korzyści dla obciążenia.
Stopniowo wdrażaj aktualizacje. Wprowadzanie aktualizacji dla klientów w fazach. Podziel użytkowników na grupy logiczne i wdróż zmiany w jednej grupie jednocześnie. Zastosuj ten sam rygor do zmian konfiguracji, ponieważ mogą one zmieniać zachowanie kodu i powodować awarie. Postępuj zgodnie z procesem wdrażania tych zmian.
Wdrażanie strategii przechowywania wersji. Gdy klienci mogą wybrać swoją wersję aplikacji, zwiększa elastyczność, ale komplikuje operacje. Określ jasne oczekiwania dotyczące przestarzałych wersji i określ, co się stanie, gdy nie są już obsługiwane.
Implementowanie automatyzacji. Wdrożenia ręczne są podatne na zagrożenia z powodu błędu ludzkiego i braku spójności. Nawet jeśli wdrożenia są wyzwalane ręcznie, należy zautomatyzować proces wdrażania tak bardzo, jak to możliwe i wymagać minimalnego nadzoru człowieka. Rozważ kroki procesu wdrażania i jak najlepiej je zautomatyzować.
Integrowanie testów. Zintegruj testowanie z procesem wdrażania, uruchamiając polecenie:
- Testy jednostkowe podczas kompilacji kodu.
- Testy integracji po wdrożeniu.
- Regularne testy wydajnościowe.
- Regularne testy bezpieczeństwa i penetracyjne.
Podejmij decyzję o planie działania, jeśli jakiekolwiek testy nie powiodą się na dowolnym etapie.
Nieudane wdrożenia. Planowanie niepowodzeń wdrażania przez rozważenie niezbędnych akcji i przygotowanie strategii wycofywania.
Dostęp do środowisk klientów. Jeśli wdrażasz zasoby w środowiskach klientów, dowiedz się, jak można stosować aktualizacje w tych środowiskach. Rozważ możliwości zapewniane przez aplikacje zarządzane platformy Azure, takie jak wdrażanie aktualizacji aplikacji.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Użyj ustalonych, sprawdzonych w branży narzędzi i procesów Metodyki DevOps do zarządzania wdrożeniami aplikacji. W większości sytuacji opracowywanie własnych narzędzi jest uważane za antywzorzec. Aby uzyskać więcej informacji, zobacz OE:03 Software development practices (Rozwiązania programistyczne OE:03). |
Ta strategia może pomóc w zapewnieniu efektywnego wdrażania aplikacji przez zespół inżynierów bez konieczności uczenia się niestandardowych narzędzi programistycznych. |
| Proaktywnie powiadamiaj klientów o wszelkich nadchodzących lub ukończonych wdrożeniach. | Ta strategia może pomóc w zapewnieniu, że odpowiednie oczekiwania są ustawione dla klientów na temat nadchodzących zmian w aplikacji. |
| Wdrażaj bezpieczne praktyki wdrażania, które wdrażają aktualizacje w grupach klientów za pomocą strategii, takich jak progresywne narażenie na zagrożenia i modele kondycji. Zanim przejdziesz do szerszej bazy klientów, zacznij od mniej wrażliwych lub wczesnych klientów. Aby uzyskać więcej informacji, zobacz Zalecenia dotyczące bezpiecznych praktyk wdrażania. |
Ta strategia może pomóc w zidentyfikowaniu problemów, zanim wpłyną one na wszystkich klientów. |
| Traktuj konfigurację jako kod. | Można zmniejszyć prawdopodobieństwo przestoju i wdrożyć spójny proces zmian produkcyjnych. Takie podejście umożliwia scentralizowanie obowiązków operacyjnych, takich jak testowanie zmian i stopniowe wdrażanie aktualizacji konfiguracji i kodu. |
| Zdefiniuj proces zarządzania zmianami i przekaż zasady aktualizacji wersji, aby upewnić się, że klienci wiedzą, kto wyzwala aktualizacje, ich częstotliwość i warunki. Jeśli klienci mogą wybrać swoją wersję aplikacji, ustaw jasne wytyczne dotyczące sposobu wycofania starych wersji. Zminimalizuj liczbę wersji aplikacji uruchamianych w środowisku produkcyjnym. |
Obsługa starszych wersji powoduje nieefektywność operacyjną. Zapewnij niezbędną kontrolę dla klientów i unikaj nadmiernego przeciążenia zespołu, ustawiając jasne oczekiwania i zasady. |
| Unikaj dostosowywania aplikacji dla jednego klienta. Aby zapewnić obsługę różnych potrzeb klientów, możesz utworzyć różne warstwy rozwiązania lub użyć flag funkcji, aby włączyć określone funkcje dla niektórych użytkowników. |
Unikaj niejednoznaczności co do tego, które funkcje są wdrażane w danej wersji i zmniejszają obciążenie konserwacją. |
| Mają plan wycofywania wdrożeń, w tym kryteria wyzwalania i niezbędnych zatwierdzeń. | Plany wycofywania zapewniają możliwość odstąpienia od błędów wdrażania nawet w nieprzewidzianych okolicznościach. |
| Regularnie testuj aplikację i na wielu etapach procesu tworzenia oprogramowania. Przyjęcie podejścia shift-left i przechwytywanie usterek i odchyleń na wczesnym etapie cyklu życia. | Pomaga zapobiegać występowaniu krytycznych błędów wpływających na klientów. |
Inne zasoby
Multitenancy to podstawowa metodologia biznesowa projektowania obciążeń SaaS. Poniższe artykuły zawierają więcej informacji o sposobie wdrażania rozwiązań metodyki DevOps:
- Podejścia architektury do wdrażania i konfigurowania rozwiązań wielodostępnych
- Zagadnienia dotyczące aktualizowania rozwiązania wielodostępnego
- Zagadnienia dotyczące wielodostępnych płaszczyzn sterowania
- Metody architektury dla płaszczyzn sterowania w rozwiązaniach wielodostępnych
Następny krok
Dowiedz się więcej na temat zagadnień związanych z zarządzaniem zdarzeniami w celu zaimplementowania procesów i narzędzi, które obsługują rozwiązanie SaaS na platformie Azure.