Zalecenia dotyczące włączania automatyzacji
Dotyczy tego zalecenia listy kontrolnej dotyczącej doskonałości operacyjnej platformy Azure Well-Architected Framework:
OE:10 | Zaprojektuj i zaimplementuj automatyzację z góry dla operacji, takich jak problemy z cyklem życia, uruchamianie i stosowanie barier zabezpieczających dotyczących ładu i zgodności. Nie próbuj później przeprowadzić automatyzacji modernizacji. Wybierz funkcje automatyzacji zapewniane przez platformę. |
---|
W tym przewodniku opisano zalecenia dotyczące projektowania i implementowania obciążenia w celu włączenia automatyzacji. Zaprojektuj obciążenie za pomocą automatyzacji, aby upewnić się, że rutynowe zadania, takie jak aprowizowanie zasobów, skalowanie i wdrożenia, są wykonywane szybko i niezawodnie. Automatyzacja upraszcza zadania konserwacji i umożliwia wydajniejsze aktualizowanie, poprawianie i uaktualnianie systemów.
Kluczowe strategie projektowania
Projektowanie składników obciążenia w celu obsługi automatyzacji
Obciążenie można zaprojektować tak, aby obsługiwało automatyzację z fazy ideacji do trwającej fazy ulepszania. Najpierw zastanów się, jak chcesz zastosować automatyzację w obciążeniu, aby upewnić się, że umieszczasz niezbędne elementy. Pomyśl o obciążeniu pod względem filarów dobrze zaprojektowanej struktury, aby ułatwić planowanie typów automatyzacji, których będziesz używać. Można zautomatyzować wiele funkcji zabezpieczeń, niezawodności, wydajności, operacji i kontroli kosztów.
Projektowanie z myślą o automatyzacji w celu zminimalizowania refaktoryzacji po uruchomieniu obciążenia. Podczas podejmowania decyzji o narzędziach automatyzacji do użycia należy wziąć pod uwagę wymagania dotyczące obciążenia. Mogą istnieć gotowe narzędzia automatyzacji, które twój zespół już zna. Wdrożenie tych narzędzi może ułatwić automatyzację obciążenia, ale należy pamiętać o ich ograniczeniach i zgodności z platformą w chmurze. Na przykład niektóre narzędzia automatyzacji mogą być dobrze zintegrowane z narzędziami interfejsu wiersza polecenia platformy Azure, a inne mogą wymagać interfejsów REST. Zawsze badaj narzędzia zapewniane przez platformę w chmurze, aby upewnić się, że są one zgodne i zapewniają wymagane funkcje. Przykłady sposobów aktywnego planowania automatyzacji obejmują:
Wdrażanie: Zautomatyzuj wdrożenia aplikacji i infrastruktury, aby zapewnić przewidywalny standard. Zaplanuj wdrożenie automatyczne, opracowując standardy wdrażania, szkoląc zespół w używanych narzędziach i wdrażając niezbędną infrastrukturę.
Walidacja: Automatycznie zweryfikuj wymagania dotyczące zgodności z obciążeniem przy użyciu narzędzi orkiestracji lub zasad. Zidentyfikuj odpowiednie narzędzie sprawdzania poprawności obciążenia i zaplanuj wdrożenie wymaganych systemów, na przykład serwerów aranżacji.
Automatyczne skalowanie: użyj automatycznego skalowania w całej infrastrukturze, aby ułatwić osiągnięcie wymagań dotyczących niezawodności i wydajności. Należy przydzielić przestrzeń adresów IP i podsieci w obciążeniu przed upływem czasu, aby uwzględnić operacje skalowania, oprócz planowania nadmiarowości i naturalnego wzrostu.
Kompromis: podczas projektowania obciążenia w celu włączenia automatyzacji należy wziąć pod uwagę stopień kontroli, który chcesz zachować w porównaniu z wydajnością, którą można uzyskać dzięki automatyzacji. W niektórych przypadkach obciążenie może nie być wystarczająco dojrzałe, aby zautomatyzować niektóre funkcje lub może wymagać poziomu elastyczności, która nie zapewnia automatyzacji.
Podczas projektowania obciążenia należy również wziąć pod uwagę zestaw umiejętności zespołu. Jeśli wysoki stopień automatyzacji wymaga narzędzi, których zespół nie jest wyposażony w obsługę, może być konieczne użycie mniej kompleksowego projektu jako etapu pośredniego.
Ponowne omówienie projektu automatyzacji podczas cyklu życia
Po uruchomieniu obciążenia w chmurze ważne jest, aby określić priorytety ciągłego ulepszania. Obserwowanie obciążenia w działaniu, analizowanie wzorców użycia i przeglądanie zachowań klientów związanych z obciążeniem w celu zidentyfikowania obszarów, w których można ulepszyć automatyzację. Poszukaj sposobów ulepszenia istniejącej automatyzacji lub wprowadzenia nowej automatyzacji w celu ulepszenia środowiska klienta. Na przykład może być włączone automatyczne skalowanie, ale wzrost obciążenia jest krótkotrwały. Automatyzację skalowania można zintegrować, aby zmniejszyć użycie procesora CPU, gdy obciążenie spadnie poniżej progu.
W poniższych sekcjach tego przewodnika przedstawiono zalecenia dotyczące określonych obszarów automatyzacji, które mogą pomóc w projektowaniu i wdrażaniu obciążeń.
Automatyzowanie uruchamiania
Bootstrapping odwołuje się do aktualizacji konfiguracji zasobu, który należy wprowadzić po jego aprowizacji, ale przed udostępnieniem jej jako części puli obciążeń. Bootstrapping jest często kojarzony z maszynami wirtualnymi, ale wiele innych zasobów należy skonfigurować jako część procesu wdrażania, w tym technologie typu platforma jako usługa (PaaS) i technologie hostingu kontenerów, takie jak Usługa Azure Kubernetes Service (AKS).
Platforma w chmurze może udostępniać rozwiązania bootstrapping, których należy używać tam, gdzie to możliwe. Na przykład można użyć rozszerzeń maszyn wirtualnych na platformie Azure, aby wprowadzić wstępnie zdefiniowane zmiany konfiguracji podczas procesu wdrażania i dostosować zmiany konfiguracji przez wprowadzenie skryptów programu PowerShell.
Dołączanie automatyzacji do zarządzania dostępem
Podczas projektowania strategii uwierzytelniania i autoryzacji należy wziąć pod uwagę automatyzację. Ważne jest zachowanie najwyższego poziomu zabezpieczeń w obciążeniach produkcyjnych, ale może to mieć wpływ na automatyzację. Na przykład użycie uwierzytelniania biometrycznego lub wieloskładnikowego zwiększa złożoność, którą należy uwzględnić w projekcie automatyzacji. Używaj nieludzkich, bezpiecznych kont do automatycznego uwierzytelniania, takich jak tożsamości zarządzane, tożsamości obciążeń lub certyfikaty. Upewnij się, że włączono zarządzanie wpisami tajnymi i kluczami w automatyzacji w celu zwiększenia bezpieczeństwa uwierzytelniania.
Projektowanie zmienności w obciążeniu
Unikaj niepotrzebnego wdrażania nowej infrastruktury, gdy wprowadzane są małe zmiany, tworząc elastyczność w artefaktach. Na przykład zamiast ponownego wdrażania infrastruktury po zmianie flagi funkcji można użyć parametrów ustawionych do aktualizowania składników, takich jak konfiguracje aplikacji. Pamiętaj, aby jasno zdefiniować i udokumentować sposób użycia zmienności, aby uniknąć nadmiernego użycia i dryfu konfiguracji.
Tworzenie płaszczyzny sterowania
Płaszczyzna sterowania to system zaplecza lub zestaw narzędzi używanych do zarządzania aplikacją i jej zależnościami za pomocą ujednoliconego interfejsu. Skompiluj płaszczyznę sterowania, jak interfejs REST, interfejs wiersza polecenia lub element webhook, aby obsługiwać automatyzację za pomocą narzędzi zewnętrznych.
Uwidacznianie operacji konserwacji za pomocą płaszczyzny sterowania, która umożliwia koordynowanie składników obciążenia, na przykład uporządkowaną kopię zapasową i przywracanie, uruchamianie, konfigurację, importowanie/eksportowanie i operacje dzielenia na partie. Należy zachować ostrożność, aby wybrać odpowiedni poziom szczegółowości podczas podejmowania decyzji o uwidocznieniu operacji za pośrednictwem płaszczyzny sterowania.
Wdrażanie podejścia opartego na danych w celu opracowania automatyzacji
Opracuj strategię monitorowania w celu przechwytywania metryk, które napędzają wymagany typ automatyzacji. Użyj rejestrowania strukturalnego i metryk niestandardowych, aby udostępnić informacje wymagane przez automatyzację w formacie łatwym do rozpoznania za pomocą narzędzi automatyzacji. Przechwycone metryki powinny być sparowane z progami zdefiniowanymi w systemie monitorowania, które wyzwalają alerty i zautomatyzowane akcje, takie jak powiadomienia lub mechanizmy samonaprawiania, w razie potrzeby. Aby uzyskać więcej informacji, zobacz Zalecenia dotyczące samonaprawiania i samonaprawiania.
Automatyzowanie zdarzeń cyklu życia użytkownika
Zaprojektuj aplikację i infrastrukturę, aby umożliwić automatyczne dołączanie i odłączanie użytkowników dla użytkowników indywidualnych lub wielodostępnych klientów. Zaplanuj automatyczne aktualizacje bazy danych za pomocą skryptów, aprowizacji infrastruktury i anulowania aprowizacji oraz zarządzania poświadczeniami i wpisami tajnymi.
Automatyzowanie konfiguracji żądanego stanu
W ramach ciągłego zarządzania obciążeniami możesz zautomatyzować konfigurację żądanego stanu (DSC) w zasobach, aby zapewnić, że spełniają one wymagania biznesowe i zgodności. Automatyzacja DSC pomaga zagwarantować, że dryf konfiguracji zostanie przechwycony i szybko skorygowany. Rozszerzenie DSC można zautomatyzować przy użyciu narzędzi orkiestracji lub narzędzi do zarządzania zasadami. Pomyśl o narzędziach orkiestracji, takich jak usługi Azure DevOps lub Jenkins, jako mechanizmy oparte na wypychaniach. Narzędzia orkiestracji umożliwiają wypychanie aktualizacji konfiguracji przez zdarzenie przepływu pracy, takie jak wdrożenie ręczne lub automatyczne. Te aktualizacje są uruchamiane w ramach sekwencji zadań zdefiniowanej w skrycie wdrażania. Narzędzia do zarządzania zasadami używają mechanizmów opartych na ściąganiu, co oznacza, że system działa na podstawowym poziomie obciążenia, które okresowo sonduje obciążenie, aby sprawdzić jego stan względem zdefiniowanej konfiguracji DSC. Jeśli sonda zidentyfikuje niezgodność lub dryf konfiguracji, narzędzie podejmuje działania naprawcze. Podczas podejmowania decyzji o orkiestracji i narzędziach do zarządzania zasadami należy wziąć pod uwagę następujące czynniki:
Narzędzia orkiestracji nie mają wbudowanych możliwości proaktywnego sondowania obciążenia pod kątem dryfu konfiguracji. Narzędzia orkiestracji powinny być zintegrowane z potokiem ciągłej integracji i ciągłego dostarczania (CI/CD), aby zachować standard wdrażania i zarządzania infrastrukturą jako kodem (IaC). Zaletą korzystania z narzędzi orkiestracji jest to, że zasoby są zawsze w pełni skonfigurowane podczas wdrażania.
Narzędzia do zarządzania zasadami umożliwiają definiowanie zasad mających wpływ na co najmniej jedną grupę zasobów. Te zasady są wymuszane po zaewidencjonowaniu zasobu w systemie zarządzania zasadami. Zaletą zarządzania zasadami jest to, że te systemy nie są oparte na kodzie, więc mogą być łatwiejsze dla operatorów w zespole do wdrożenia.
Podczas podejmowania decyzji o orkiestracji lub narzędziach zasad należy wziąć pod uwagę, czy aktualizacje konfiguracji, które planujesz wprowadzić w nowych zasobach, muszą zostać wprowadzone w czasie wdrażania. Należy również rozważyć, czy zdefiniowanie aktualizacji w kodzie pasuje do praktyk operacyjnych i liczby typów zasobów, które planujesz wdrożyć. Jeśli istnieje wiele różnych konfiguracji w różnych typach zasobów, narzędzia zasad mogą być łatwiejszym sposobem zarządzania aktualizacjami.
Ułatwienia platformy Azure
Zarządzanie zasadami
Azure Policy: za pomocą usługi Azure Policy można wymusić standardy i ocenić zgodność na dużą skalę. Usługa Azure Policy udostępnia zagregowany widok umożliwiający ocenę ogólnego stanu środowiska obciążenia na pulpicie nawigacyjnym zgodności. Możesz też użyć usługi Azure Policy do oceny poszczególnych zasobów i zasad na poziomie szczegółowym. Za pomocą usługi Azure Policy można również automatycznie korygować nowe zasoby lub korygować istniejące zasoby zbiorczo.
Kompromis: odciążanie automatyzacji z potoku ciągłej integracji/ciągłego wdrażania do narzędzi lub usług platformy, takich jak Azure Policy, może uprościć potok, ale ma wady, takie jak dodatkowe obciążenie związane z zarządzaniem użyciem wielu systemów. Na przykład błędy wykonywania w usłudze platformy nie zostaną przechwycone w dziennikach potoku i będą musiały być wprowadzane do platformy obserwacji inteligentnie, aby odpowiednie strony zostały powiadomione.
Automatyzacja uruchamiania
Rozszerzenia usługi Azure Virtual Machines: rozszerzenia maszyn wirtualnych to małe pakiety, które uruchamiają konfigurację po wdrożeniu i automatyzację na maszynach wirtualnych. Kilka rozszerzeń jest dostępnych dla różnych zadań konfiguracji, takich jak uruchamianie skryptów, konfigurowanie rozwiązań chroniących przed złośliwym oprogramowaniem i konfigurowanie rozwiązań rejestrowania. Zainstaluj i uruchom te rozszerzenia na maszynach wirtualnych przy użyciu szablonu usługi Azure Resource Manager, interfejsu wiersza polecenia platformy Azure, modułu programu Azure PowerShell lub witryny Azure Portal. Każda maszyna wirtualna ma zainstalowanego agenta maszyny wirtualnej, który zarządza cyklem życia rozszerzenia.
Zazwyczaj rozszerzenia maszyn wirtualnych używają niestandardowego rozszerzenia skryptu do instalowania oprogramowania, uruchamiania poleceń i wykonywania konfiguracji na maszynie wirtualnej lub w usłudze Azure Virtual Machine Scale Sets. Te rozszerzenia można ustawić tak, aby były uruchamiane w ramach wdrożeń IaC, aby były uruchamiane na nowych maszynach wirtualnych przy użyciu agenta maszyny wirtualnej platformy Azure. Rozszerzenia można również uruchamiać poza wdrożeniem platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure, modułu Programu PowerShell lub witryny Azure Portal.
Cloud-init: Cloud-init to narzędzie branżowe do konfigurowania maszyn wirtualnych z systemem Linux podczas pierwszego rozruchu. Podobnie jak rozszerzenia niestandardowego skryptu platformy Azure, pakiet cloud-init umożliwia instalowanie pakietów i uruchamianie poleceń na maszynach wirtualnych z systemem Linux. Możesz użyć pakietu cloud-init na potrzeby instalacji oprogramowania, konfiguracji systemu i przemieszczania zawartości. Platforma Azure obejmuje wiele obrazów maszyn wirtualnych z obsługą chmury w dobrze znanych dystrybucjach systemu Linux. Aby uzyskać pełną listę, zobacz obsługa pakietu cloud-init dla maszyn wirtualnych na platformie Azure.
Zasób skryptu wdrażania platformy Azure: podczas wdrażania przy użyciu platformy Azure może być konieczne uruchomienie dowolnego kodu na potrzeby uruchamiania aplikacji do zarządzania kontami użytkowników, zasobnikami Kubernetes lub wykonywaniem zapytań dotyczących danych z systemu spoza platformy Azure. Ponieważ żadna z tych operacji nie jest dostępna za pośrednictwem płaszczyzny sterowania platformy Azure, wymagany jest oddzielny mechanizm. Aby uzyskać więcej informacji, zobacz Microsoft.Resources deploymentScripts. Podobnie jak każdy inny zasób platformy Azure, zasób skryptu wdrażania:
Można go użyć w szablonie usługi Azure Resource Manager.
Zawiera zależności szablonu usługi Azure Resource Manager w innych zasobach.
Używa danych wejściowych i generuje dane wyjściowe.
Używa tożsamości zarządzanej przypisanej przez użytkownika do uwierzytelniania.
Po wdrożeniu skrypt wdrażania uruchamia polecenia i skrypty programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Uruchomienia i rejestrowanie skryptów można zaobserwować w witrynie Azure Portal lub w module interfejsu wiersza polecenia platformy Azure i programu PowerShell. Zmienne dla środowiska uruchamiania, opcji limitu czasu i zarządzania zasobami można dostosować po niepowodzeniu skryptu.
Bootstrap klastrów usługi AKS za pomocą metodyki GitOps: możesz uruchomić nowo aprowizowany klaster usługi AKS przy użyciu usługi GitOps i rozszerzenia klastra Flux v2, deklarując ustawienia konfiguracji w repozytoriach GitHub. Ponieważ pliki klastra usługi AKS są przechowywane w repozytorium GitHub, są one wersjonowane, a zmiany między wersjami są łatwo śledzone. Kontrolery Kubernetes działają w klastrach i stale uzgadniają stan klastra z żądanym stanem zadeklarowanym w repozytorium Git, ściągając pliki z repozytorium. Aby uzyskać więcej informacji, zobacz Architektura referencyjna punktu odniesienia usługi AKS.
Zarządzanie konfiguracją
Usługa Azure Automation State Configuration to narzędzie do zarządzania DSC zarządzane przez funkcję konfiguracji gościa usługi Azure Policy, której można użyć do zapisywania, zarządzania i kompilowania konfiguracji DSC programu PowerShell dla węzłów w dowolnej chmurze lub lokalnym centrum danych. Za pomocą tego narzędzia można również zaimportować zasoby DSC i przypisać konfiguracje do węzłów docelowych.
aplikacja systemu Azure Configuration to usługa, której można użyć do centralnego zarządzania ustawieniami aplikacji i flagami funkcji. Współdziała ona z usługą Azure Key Vault, dzięki czemu można bezpiecznie zarządzać szeroką gamą konfiguracji aplikacji w całym środowisku.
Śledzenie zmian i spis
Śledzenie zmian i spis przy użyciu agenta monitorowania platformy Azure śledzi dryf konfiguracji systemu operacyjnego na maszynach wirtualnych platformy Azure i maszynach wirtualnych z obsługą usługi Arc. Umożliwia to zautomatyzowanie wykrywania dryfu, spisu uruchomionych usług i zainstalowanych pakietów na maszynach wirtualnych w obciążeniu. Elementy śledzone przez śledzenie zmian i spis obejmują:
- Zainstalowane oprogramowanie z systemem Windows i Linux
- Kluczowe pliki systemu Windows i Linux
- Klucze rejestru systemu Windows
- Usługi systemu Windows i demony systemu Linux
Pokrewne łącza
- Architektura referencyjna punktu odniesienia usługi AKS
- Konfiguracja aplikacja systemu Azure
- Konfiguracja stanu usługi Azure Automation
- Azure Policy
- Obsługa pakietu Cloud-init dla maszyn wirtualnych na platformie Azure
- Konfiguracje usługi GitOps Flux w wersji 2 z usługą AKS i platformą Kubernetes z obsługą usługi Azure Arc
- Microsoft.Resources deploymentScripts
- Zalecenia dotyczące samonaprawiania i samonaprawiania
Lista kontrolna doskonałości operacyjnej
Zapoznaj się z pełnym zestawem zaleceń.