W tym artykule opisano sposób zarządzania zgodnością maszyn wirtualnych bez zakłócania praktyk DevOps. Użyj narzędzia Azure VM Image Builder i galerii zasobów obliczeniowych platformy Azure, aby zminimalizować ryzyko z obrazów systemowych.
Architektura
Rozwiązanie składa się z dwóch procesów:
- Proces publikowania złotego obrazu
- Proces śledzenia zgodności maszyny wirtualnej
Pobierz plik programu Visio z tą architekturą.
Przepływ danych
Proces publikowania złotego obrazu jest uruchamiany co miesiąc i zawiera następujące kroki:
- Proces przechwytuje obraz podstawowy z witryny Azure Marketplace.
- Konstruktor obrazów maszyny wirtualnej dostosowuje obraz.
- Proces tatuażu obrazu śledzi informacje o wersji obrazu, takie jak źródło i data publikacji.
- Testy automatyczne weryfikują obraz.
- Jeśli obraz zakończy się niepowodzeniem, nastąpi powrót do kroku dostosowywania w celu naprawy.
- Proces publikuje sfinalizowany obraz.
- Galeria obliczeń udostępnia obraz zespołom DevOps.
Pobierz plik programu Visio z tą architekturą.
Proces śledzenia zgodności maszyn wirtualnych zawiera następujące kroki:
- Usługa Azure Policy przypisuje definicje zasad do maszyn wirtualnych i ocenia maszyny wirtualne pod kątem zgodności.
- Usługa Azure Policy publikuje dane zgodności dla maszyn wirtualnych i innych zasobów platformy Azure na pulpicie nawigacyjnym usługi Azure Policy.
Składniki
Vm Image Builder to zarządzana usługa do dostosowywania obrazów systemowych. Ta usługa kompiluje i dystrybuuje obrazy używane przez zespoły DevOps.
Galeria obliczeniowa ułatwia tworzenie struktury i organizowanie obrazów niestandardowych. Dzięki przechowywaniu obrazów w repozytoriach ta usługa zapewnia kontrolowany dostęp do obrazów. Użytkownicy mogą znajdować się w organizacji i poza organizacją.
Usługa Azure Policy oferuje definicje zasad. Możesz użyć tych definicji, aby wymusić standardy organizacji i ocenić zgodność na dużą skalę. Na pulpicie nawigacyjnym usługi Azure Policy są wyświetlane wyniki z ocen usługi Azure Policy. Te dane informują o stanie zgodności zasobów.
Funkcja azure Automanage Machine Configuration usługi Azure Policy umożliwia dynamiczne przeprowadzanie inspekcji lub przypisywania konfiguracji do maszyn za pomocą kodu. Konfiguracje zazwyczaj obejmują ustawienia środowiska lub systemu operacyjnego.
Alternatywy
Do zarządzania zgodnością można użyć narzędzia innej firmy. Jednak w przypadku tego typu narzędzia zwykle trzeba zainstalować agenta na docelowej maszynie wirtualnej. Być może trzeba będzie również zapłacić opłatę licencyjną.
Niestandardowe rozszerzenia skryptu umożliwiają instalowanie oprogramowania na maszynach wirtualnych lub konfigurowanie maszyn wirtualnych po wdrożeniu. Jednak każda maszyna wirtualna lub zestaw skalowania maszyn wirtualnych może mieć tylko jedno rozszerzenie niestandardowego skryptu. Jeśli używasz niestandardowych rozszerzeń skryptów, uniemożliwisz zespołom DevOps dostosowywanie ich aplikacji.
Szczegóły scenariusza
Każde przedsiębiorstwo ma własne przepisy i standardy zgodności. W odniesieniu do bezpieczeństwa każda firma ma własny apetyt na ryzyko. Standardy zabezpieczeń mogą się różnić od jednej organizacji do innej i od jednego regionu do drugiego.
Przestrzeganie różnych standardów może być trudniejsze w dynamicznym skalowaniu środowisk w chmurze niż w systemach lokalnych. Gdy zespoły korzystają z praktyk DevOps, zwykle jest mniej ograniczeń dotyczących tego, kto może tworzyć zasoby platformy Azure, takie jak maszyny wirtualne. Ten fakt komplikuje wyzwania związane ze zgodnością.
Za pomocą usługi Azure Policy i przypisań kontroli dostępu opartej na rolach przedsiębiorstwa mogą wymuszać standardy w zasobach platformy Azure. Jednak w przypadku maszyn wirtualnych te mechanizmy wpływają tylko na płaszczyznę sterowania lub trasę do maszyny wirtualnej. Obrazy systemowe uruchamiane na maszynie wirtualnej nadal stanowią zagrożenie bezpieczeństwa. Niektóre firmy uniemożliwiają deweloperom uzyskiwanie dostępu do maszyn wirtualnych. Takie podejście zmniejsza elastyczność, utrudniając przestrzeganie praktyk metodyki DevOps.
W tym artykule przedstawiono rozwiązanie do zarządzania zgodnością maszyn wirtualnych uruchomionych na platformie Azure. Oprócz śledzenia zgodności rozwiązanie minimalizuje również ryzyko związane z obrazami systemowymi uruchomionymi na maszynach wirtualnych. Jednocześnie rozwiązanie jest zgodne z praktykami metodyki DevOps. Podstawowe składniki obejmują narzędzie Azure VM Image Builder, galerię obliczeń platformy Azure i usługę Azure Policy.
Potencjalne przypadki użycia
To rozwiązanie dotyczy organizacji ze strefami docelowymi platformy Azure, które wykonują następujące zadania:
- Dostarczanie złotych obrazów zespołom DevOps. Złoty obraz to opublikowana wersja obrazu z witryny Marketplace.
- Testowanie i weryfikowanie obrazów przed udostępnieniem ich zespołom DevOps.
- Śledzenie obrazu używanego przez poszczególne zespoły DevOps.
- Wymuszanie standardów firmy bez obniżania wydajności.
- Zapewnienie, że zespoły DevOps używają najnowszych wersji obrazów.
- Zarządzanie zgodnością serwerów zwierząt domowych, które intensywnie korzystają z konserwacji i serwerów bydła, które można łatwo zastąpić.
Metoda
Poniższe sekcje zawierają szczegółowy opis podejścia rozwiązania.
Identyfikowanie zwierząt domowych i bydła
Zespoły DevOps używają analogii nazywanej zwierzętami domowymi i bydłem do definiowania modeli usług. Aby śledzić zgodność maszyny wirtualnej, najpierw określ, czy jest to serwer zwierząt domowych lub bydła:
Zwierzęta wymagają znacznej uwagi. Nie są łatwe do dozowania. Odzyskanie serwera zwierząt domowych wymaga inwestowania znacznej ilości czasu i zasobów finansowych. Na przykład serwer z uruchomionym oprogramowaniem SAP może być zwierzakiem. Oprócz oprogramowania, które działa na serwerze, inne zagadnienia mogą również określać model usługi. Jeśli masz niską odporność na awarie, serwery produkcyjne w czasie rzeczywistym i niemal w czasie rzeczywistym mogą być również zwierzętami domowymi.
Serwery bydła są częścią identycznej grupy. Można je łatwo zamienić. Na przykład maszyny wirtualne uruchamiane w zestawie skalowania maszyn wirtualnych to bydło. Jeśli w zestawie jest wystarczająca liczba maszyn wirtualnych, system nadal działa i nie musisz znać nazwy każdej maszyny wirtualnej. Serwery środowiska testowego spełniające następujące warunki stanowią kolejny przykład bydła:
- Aby utworzyć serwery od podstaw, należy użyć zautomatyzowanej procedury.
- Po zakończeniu uruchamiania testów należy zlikwidować serwery.
Środowisko może zawierać tylko serwery zwierząt domowych lub może zawierać tylko serwery bydła. Natomiast zestaw maszyn wirtualnych w środowisku może być zwierzętami domowymi. Inny zestaw maszyn wirtualnych w tym samym środowisku może być bydłem.
Aby zarządzać zgodnością:
- Zgodność zwierząt domowych może być trudniejsza do śledzenia niż zgodność bydła. Zazwyczaj tylko zespoły DevOps mogą śledzić i utrzymywać zgodność środowisk i serwerów domowych. Jednak rozwiązanie tego artykułu zwiększa widoczność stanu każdego zwierzaka, co ułatwia wszystkim w organizacji śledzenie zgodności.
- W środowiskach bydła odśwież maszyny wirtualne i regularnie odbuduj je od podstaw. Te kroki powinny być odpowiednie do zapewnienia zgodności. Ten cykl odświeżania można dostosować do regularnego tempa wydania zespołu DevOps.
Ograniczanie obrazów
Nie zezwalaj zespołom DevOps na używanie obrazów maszyn wirtualnych z witryny Azure Marketplace. Zezwalaj tylko na publikowane w galerii obliczeniowej obrazy maszyn wirtualnych. To ograniczenie ma kluczowe znaczenie dla zapewnienia zgodności maszyn wirtualnych. Aby wymusić to ograniczenie, możesz użyć zasad niestandardowych w usłudze Azure Policy. Aby zapoznać się z przykładem, zobacz Zezwalaj wydawcom obrazów.
W ramach tego rozwiązania konstruktor obrazów maszyny wirtualnej powinien używać obrazu witryny Azure Marketplace. Niezbędne jest użycie najnowszego obrazu dostępnego w witrynie Azure Marketplace. Zastosuj wszelkie dostosowania na tym obrazie. Obrazy z witryny Azure Marketplace są często odświeżane, a każdy obraz ma pewne ustawienia wstępne, zapewniając, że obrazy są domyślnie bezpieczne.
Dostosowywanie obrazów
Złoty obraz to wersja obrazu z witryny Marketplace opublikowanego w galerii obliczeń. Złote obrazy są dostępne do użycia przez zespoły DevOps. Przed opublikowaniem obrazu następuje dostosowanie. Działania dostosowywania są unikatowe dla każdego przedsiębiorstwa. Do typowych działań należą między innymi następujące:
- Wzmacnianie zabezpieczeń systemu operacyjnego.
- Wdrażanie agentów niestandardowych dla oprogramowania innej firmy.
- Instalowanie certyfikatów głównych urzędu certyfikacji przedsiębiorstwa.
Narzędzie VM Image Builder umożliwia dostosowywanie obrazów, dostosowując ustawienia systemu operacyjnego i uruchamiając niestandardowe skrypty i polecenia. Narzędzie VM Image Builder obsługuje obrazy systemów Windows i Linux. Aby uzyskać więcej informacji na temat dostosowywania obrazów, zobacz Azure Policy Regulatory Compliance controls for Azure Virtual Machines (Mechanizmy kontroli zgodności z przepisami usługi Azure Policy dla maszyn wirtualnych platformy Azure).
Śledź tatuaże obrazów
Tatuaż obrazu to proces śledzenia wszystkich informacji dotyczących przechowywania wersji obrazów używanych przez maszynę wirtualną. Te informacje są bezcenne podczas rozwiązywania problemów i mogą obejmować:
- Oryginalne źródło obrazu, takie jak nazwa i wersja wydawcy.
- Ciąg wersji systemu operacyjnego, który jest potrzebny w przypadku uaktualnienia w miejscu.
- Wersja obrazu niestandardowego.
- Data publikacji.
Ilość i typ śledzone informacje zależą od poziomu zgodności organizacji.
W przypadku tatuażu obrazu na maszynach wirtualnych z systemem Windows skonfiguruj rejestr niestandardowy. Dodaj wszystkie wymagane informacje do tej ścieżki rejestru jako pary klucz-wartość. Na maszynach wirtualnych z systemem Linux wprowadź obraz wytatuujący dane do zmiennych środowiskowych lub pliku. Umieść plik w folderze /etc/
, w którym nie powoduje konfliktu z pracą dewelopera ani aplikacjami. Jeśli chcesz użyć usługi Azure Policy do śledzenia danych tatuażu lub raportu, zapisz każdy element danych jako unikatową parę klucz-wartość. Aby uzyskać informacje na temat określania wersji obrazu witryny Marketplace, zobacz How to find a Marketplace image version (Jak znaleźć wersję obrazu witryny Marketplace).
Weryfikowanie złotych obrazów przy użyciu testów automatycznych
Ogólnie rzecz biorąc, należy odświeżyć złote obrazy co miesiąc, aby być na bieżąco z najnowszymi aktualizacjami i zmianami w obrazach witryny Azure Marketplace. W tym celu należy użyć powtarzanej procedury testowania. W ramach procesu tworzenia obrazu użyj potoku platformy Azure lub innego zautomatyzowanego przepływu pracy do testowania. Skonfiguruj potok, aby wdrożyć nową maszynę wirtualną na potrzeby uruchamiania testów przed rozpoczęciem każdego miesiąca. Testy powinny potwierdzić przeanalizowane obrazy przed ich opublikowaniem do użycia. Automatyzuj testy przy użyciu rozwiązania do automatyzacji testów lub uruchamiając polecenia lub partie na maszynie wirtualnej.
Typowe scenariusze testowe obejmują:
- Weryfikowanie czasu rozruchu maszyny wirtualnej.
- Potwierdzanie dowolnego dostosowania obrazu, takiego jak ustawienia konfiguracji systemu operacyjnego lub wdrożenia agenta.
Test, który zakończył się niepowodzeniem, powinien przerwać proces. Powtórz test po rozwiązaniu głównej przyczyny problemu. Jeśli testy są uruchamiane bez problemu, automatyzowanie procesu testowania zmniejsza nakład pracy, który przechodzi do utrzymania stanu evergreen.
Publikowanie złotych obrazów
Publikowanie końcowych obrazów w galerii obliczeniowej jako obrazu zarządzanego lub wirtualnego dysku twardego (VHD), którego mogą używać zespoły DevOps. Oznacz wszystkie wcześniejsze obrazy jako przestarzałe. Jeśli nie ustawiono daty zakończenia życia wersji obrazu w galerii obliczeniowej, możesz wolisz zaprzestać najstarszego obrazu. Ta decyzja zależy od zasad firmy.
Aby uzyskać informacje na temat limitów, które mają zastosowanie w przypadku korzystania z galerii obliczeniowej, zobacz Przechowywanie i udostępnianie obrazów w galerii obliczeń platformy Azure.
Innym dobrym rozwiązaniem jest opublikowanie najnowszych obrazów w różnych regionach. W usłudze Compute Gallery można zarządzać cyklem życia i replikacją obrazów w różnych regionach świadczenia usługi Azure.
Aby uzyskać więcej informacji na temat galerii obliczeń, zobacz Przechowywanie i udostępnianie obrazów w galerii obliczeń platformy Azure.
Odświeżanie złotych obrazów
Gdy obraz jest używany dla aplikacji, może być trudno zaktualizować bazowy obraz systemu operacyjnego przy użyciu ostatnich zmian zgodności. Ścisłe wymagania biznesowe mogą komplikować proces odświeżania bazowej maszyny wirtualnej. Odświeżanie jest również złożone, gdy maszyna wirtualna ma kluczowe znaczenie dla firmy.
Ponieważ serwery bydła są dostępne, można koordynować z zespołami DevOps, aby odświeżyć te serwery w zaplanowanym oknie obsługi jako działania biznesowe jak zwykle.
Odświeżanie serwerów zwierząt domowych jest trudniejsze. Zaprzestanie tworzenia obrazu może zagrozić aplikacjom. W scenariuszach skalowania w poziomie platforma Azure nie może odnaleźć odpowiednich obrazów, co powoduje awarie.
Podczas odświeżania serwerów zwierząt domowych należy wziąć pod uwagę następujące wytyczne:
Aby uzyskać najlepsze rozwiązania, zobacz Omówienie filaru niezawodności w strukturze Azure Well-Architected Framework.
Aby usprawnić proces, zobacz zasady omówione w tych dokumentach:
Oznacz każdy serwer zwierząt domowych jako zwierzę. Skonfiguruj zasady w usłudze Azure Policy, aby uwzględnić ten tag podczas odświeżania.
Popraw widoczność
Ogólnie rzecz biorąc, należy użyć usługi Azure Policy do zarządzania wszelkimi działaniami zgodności płaszczyzny sterowania. Możesz również użyć usługi Azure Policy dla:
- Śledzenie zgodności maszyn wirtualnych.
- Instalowanie agentów platformy Azure.
- Przechwytywanie dzienników diagnostycznych.
- Poprawa widoczności zgodności maszyn wirtualnych.
Użyj funkcji Azure Automanage Machine Configuration usługi Azure Policy, aby przeprowadzić inspekcję zmian konfiguracji wprowadzonych podczas dostosowywania obrazu. W przypadku dryfu pulpit nawigacyjny usługi Azure Policy wyświetla maszynę wirtualną, której dotyczy problem, jako niezgodną. Usługa Azure Policy może używać informacji tatuażu obrazów do śledzenia, kiedy używasz nieaktualnych obrazów lub systemów operacyjnych.
Przeprowadź inspekcję serwerów zwierząt domowych dla każdej aplikacji. Korzystając z zasad platformy Azure z efektem inspekcji, można zwiększyć widoczność tych serwerów. Dostosuj proces inspekcji zgodnie z apetytem na ryzyko firmy i wewnętrznymi procesami zarządzania ryzykiem.
Każdy zespół DevOps może śledzić poziomy zgodności aplikacji na pulpicie nawigacyjnym usługi Azure Policy i podejmować odpowiednie działania naprawcze. Po przypisaniu tych zasad do grupy zarządzania lub subskrypcji podaj opis przypisania, który prowadzi do witryny typu wiki w całej firmie. Możesz również użyć krótkiego adresu URL, takiego jak aka.ms/policy-21
. W witrynie typu wiki wyświetl listę kroków, które zespoły DevOps powinny wykonać, aby ich maszyny wirtualne mogły być zgodne.
Menedżerowie ds. ryzyka INFORMATYCZNEgo i funkcjonariusze ds. zabezpieczeń mogą również używać pulpitu nawigacyjnego usługi Azure Policy do zarządzania ryzykiem firmy zgodnie z apetytem na ryzyko firmy.
Za pomocą funkcji konfiguracji maszyny automatycznej platformy Azure usługi Azure Policy z opcjami korygowania można automatycznie stosować akcje naprawcze. Jednak często przesłuchiwana maszyna wirtualna lub wprowadzanie zmian na maszynie wirtualnej używanej w przypadku aplikacji krytycznej dla działania firmy może obniżyć wydajność. Starannie zaplanuj akcje korygowania dla obciążeń produkcyjnych. Nadaj zespołowi DevOps własność zgodności aplikacji we wszystkich środowiskach. Takie podejście jest niezbędne w przypadku serwerów i środowisk domowych, które są zwykle długoterminowymi składnikami platformy Azure.
Kwestie wymagające rozważenia
Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
Skalowalność
Można skonfigurować liczbę replik przechowywanych w galerii obliczeniowej każdego obrazu. Większa liczba replik minimalizuje ryzyko ograniczania przepustowości podczas aprowizowania wielu maszyn wirtualnych jednocześnie. Aby uzyskać ogólne wskazówki dotyczące skalowania i konfigurowania odpowiedniej liczby replik, zobacz Scaling for Azure Compute Gallery (Skalowanie dla galerii obliczeń platformy Azure).
Odporność
To rozwiązanie używa składników zarządzanych, które są automatycznie odporne na poziomie regionalnym. Aby uzyskać ogólne wskazówki dotyczące projektowania odpornych rozwiązań, zobacz Projektowanie odpornych aplikacji na platformie Azure.
Optymalizacja kosztów
Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.
Jeśli nie korzystasz z usługi innej firmy, takiej jak Ansible lub Terraform, ta metoda jest prawie bezpłatna. Mogą być stosowane koszty magazynowania i ruchu wychodzącego. Inne potencjalne opłaty obejmują następujące składniki:
Usługa Azure Policy i konfiguracja usługi Azure Automanage Machine są bezpłatne dla zasobów platformy Azure. Jeśli firma korzysta z podejścia hybrydowego, są naliczane dodatkowe opłaty za zasoby usługi Azure Arc.
W okresie publicznej wersji zapoznawczej konstruktor obrazów maszyny wirtualnej używa pojedynczego typu wystąpienia obliczeniowego z 1 procesorami wirtualnymi i 3,5 GB pamięci RAM. Opłaty mogą być naliczane za magazyn danych i transfer.
Galeria obliczeniowa nie ma żadnych opłat z wyjątkiem:
- Koszt przechowywania replik.
- Opłaty za ruch wychodzący sieci za replikowanie obrazów.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Yunus Emre Alpozen | Architekt programu
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Strefa docelowa platformy Azure
- Kontrolowanie i przeprowadzanie inspekcji zasobów przy użyciu usługi Azure Policy
- Konstruktor obrazów maszyny wirtualnej platformy Azure
- Azure Compute Gallery
- Usługa Azure Policy i pulpit nawigacyjny zasad
- Azure Automanage Machine Configuration