Używanie infrastruktury jako kodu do aktualizowania stref docelowych platformy Azure

W tym artykule opisano zalety używania infrastruktury jako kodu (IaC) do aktualizowania stref docelowych platformy Azure. Organizacje muszą zaktualizować strefy docelowe, ponieważ działają, aby upewnić się, że konfiguracje są poprawne i reagują na potrzebę zmian.

Usługa IaC może zarządzać całym cyklem życia i umożliwia zarządzanie wdrażanych przez nią zasobów. Organizacje powinny planować wdrożenie stref docelowych platformy Azure za pomocą usługi IaC. Wymaga to zaplanowania dostosowania istniejących zasobów innych niż IaC do zasobów IaC, które są wspierane przez zarządzanie stanem. Musisz zamapować istniejące zasoby na żądany stan.

Aby uzyskać więcej informacji, zobacz Zapewnianie aktualności strefy docelowej platformy Azure.

Jak działa infrastruktura jako kod

IaC odnosi się do praktyki i narzędzi do zarządzania cyklem życia zasobów infrastruktury przy użyciu plików definicji czytelnych dla maszyny. Definicja infrastruktury jest zapisywana, wersjonowana, wdrażana za pośrednictwem potoków, a następnie staje się częścią wdrożenia obciążeń.

Technologie IaC są deklaratywne, co oznacza, że po uruchomieniu IaC ustawia konfigurację na to, co zostało opisane w kodzie, niezależnie od bieżącego stanu. Podczas konfigurowania infrastruktury za pomocą skryptów, takich jak interfejs wiersza polecenia platformy Azure lub program Azure PowerShell, są one konieczne. Skrypty imperatywne wykonują zestaw akcji, a wynik zależy od bieżącego stanu oraz stanu po wykonaniu akcji.

Dlatego jeśli masz infrastrukturę jako definicję kodu dla zasobu platformy Azure, możesz uruchomić ją tak często, jak chcesz, i tworzy tylko zmianę, jeśli:

  • Definicja zmienia się w celu dodania nowych zasobów, usunięcia wcześniej wdrożonych zasobów lub zmodyfikowania wcześniej wdrożonych zasobów.
  • Wdrożony zasób dryfuje z konfiguracji, aby zresetować konfigurację do zdefiniowanej.

Możesz użyć usługi IaC, aby przywrócić stan, usuwając zasoby, które nie są już potrzebne i zarządzać cyklem życia zasobów za pośrednictwem wielu zmian.

Uwaga

Konkretna mechanika usuwania zasobów z IaC różni się. Na przykład usługa Azure Bicep wymaga użycia complete typu wdrożenia, aby skorygować zasoby poza zakresem. To polecenie działa tylko w określonych zakresach. W przypadku narzędzia Terraform zasoby mają lifecycle meta-argument, który zawiera instrukcje dotyczące sposobu obsługi zasobów przez program Terraform.

W przypadku stref docelowych platformy Azure istnieją dwie główne opcje infrastruktury jako kodu:

  • Azure Bicep, czyli język specyficzny dla domeny używany do wdrażania zasobów platformy Azure opracowanych przez firmę Microsoft. Aby uzyskać więcej informacji, zobacz Sekcje docelowe platformy Azure — zagadnienia dotyczące projektowania modułów Bicep.
  • Terraform, produkt wyprodukowany przez firmę Hashicorp, w celu wdrożenia infrastruktury w chmurze i środowisku lokalnym. Narzędzie Terraform ma określonych dostawców zasobów opracowanych przez firmę Microsoft na potrzeby wdrażania zasobów platformy Azure. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące projektowania modułu platformy Azure — Terraform.

Zalety aktualizowania ALZ przy użyciu infrastruktury jako kodu

Poniższe korzyści opisują, dlaczego należy używać infrastruktury jako kodu, aby zaktualizować strefę docelową.

Zmniejszenie nakładu pracy

Użycie infrastruktury jako kodu w celu przeprowadzenia aktualizacji w porównaniu z wprowadzaniem zmian ręcznych wymaga mniejszego nakładu pracy. Wdrożenie IaC pomaga odpowiedzieć na następujące pytania:

  • W jaki sposób zasoby są już skonfigurowane?
  • Jak będzie ona skonfigurowana przez tę aktualizację?
  • Jakie zmiany zostaną wprowadzone w celu dostosowania jej do tej aktualizacji?

Po uruchomieniu infrastruktury jako zestawu narzędzi kodu może on wygenerować porównanie lub "różnicowe" odczyt zmian. Przed zatwierdzeniem zmian w środowisku przejrzyj ten odczyt.

Zestaw narzędzi może skompilować informacje dotyczące zmiany, a nie operatora lub inżyniera.

Błąd redukcji

Ze względu na programowy charakter wdrożeń infrastruktura, ponieważ kod zmniejsza błąd człowieka podczas wprowadzania zmian. Zmienia tylko zdefiniowane elementy i ma opcje podglądu, dzięki czemu zmniejsza awarie spowodowane niepowodzeniem lub niekompletnymi zmianami. Ulepszono również opcje testowania.

Kontrola wersji i historia

Infrastruktura jako wdrożenia kodu są wspierane przez plik definicji, dzięki czemu można użyć kontroli źródła do zarządzania wersjami definicji. W zależności od używanej metody IaC możesz odwołać się do wdrożeń na platformie Azure dla Bicep lub pliku stanu narzędzia Terraform, aby przejrzeć historię poprzednich wdrożeń.

W przypadku korzystania z praktyk kontroli źródła tworzy nową gałąź IaC w celu dodawania zmian i poprawek. Historia gałęzi w systemie kontroli źródła przechwytuje iteracji i zmiany. Można jej użyć do wdrożenia zmian w środowisku testowym, dopóki nie będzie można scalić i wdrożyć zmiany w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Testowanie podejścia do stref docelowych platformy Azure. W tym cyklu rekordy wdrażania przechwytują używaną wersję i wdrożone zasoby, co zapewnia wysoce widoczną historię.

Użyj tych metod testowania z Bicep do celów ogólnych testowania. Za pomocą tych metod można przeprowadzić testowanie przed wdrożeniem kodu i przetestować je w środowiskach nieprodukcyjnych z gałęzi.

Środowiska testowe

Wdrożenia IaC są powtarzalne, więc można użyć tej samej definicji, aby wdrożyć drugie (lub więcej) środowisko na podstawie wdrożenia. Ta metoda jest cenna do testowania zmian.

Jeśli na przykład chcesz zastąpić usługę Azure Firewall przy użyciu jednostki SKU w warstwie Premium, możesz wdrożyć środowisko testowe i zweryfikować zmiany bez zmiany środowiska produkcyjnego.

Przechwytywanie dryfów konfiguracji

Usługa IaC zapewnia unikatową opcję przechwytywania dryfów konfiguracji podczas aktualizacji. Wdrożenie przechwytuje zmiany w pliku definicji i przedstawia wystąpienia, w których konfiguracja zasobu różni się od definicji.

Aktualizacje strefy docelowej za pomocą interfejsu IaC mogą pomóc w przechwyceniu tej dryfowania konfiguracji i umożliwieniu odpowiedniego zaktualizowania kodu, adresowaniu tych błędów konfiguracji za pośrednictwem aktualizacji lub adresowaniu ich w inny sposób.

Po zmianie zasobów za pośrednictwem portalu, interfejsu wiersza polecenia lub metody innej niż IaC jest implementowana zmiana. Przy następnym uruchomieniu wdrożenia za pośrednictwem IaC oznacza to porównanie stanu zdefiniowanego przez kod i rzeczywistego stanu w portalu przy użyciu funkcji analizy co-jeżeli lub planu. Użyj tej metody, aby określić, czy środowisko jest modyfikowane poza plikiem kodu.

Po zidentyfikowaniu niezgodności można uruchomić IaC, aby spróbować dopasować wdrożenie do definicji. Ta metoda służy do identyfikowania problemów i korygowania scenariuszy w zależności od charakteru problemów, charakteru przebiegu i sposobu wprowadzania zmian. Na przykład program Terraform próbuje przywrócić plan bazowy do wdrożonych zasobów, a Complete wdrożenie trybu w aplikacji Bicep usuwa zasoby w grupie zasobów, która nie jest częścią definicji. Te narzędzia wykrywają i naprawiają dryf konfiguracji, ale mogą nie rozwiązywać wszystkich problemów.

Aby uzyskać więcej informacji, zobacz Zmiany poza pasmem i Wykrywanie dryfu i zarządzanie dryfem za pomocą narzędzia Terraform.

Zmiany zdefiniowane w portalu są kłopotliwe do zaimplementowania z powrotem do IaC. Należy zaktualizować kod, aby był zgodny z bieżącym stanem, który często obejmuje przejrzenie każdej zmiany zasobu i zaktualizowanie jego parametrów w celu dopasowania ich do konfiguracji "as is".

Jeśli używasz IaC do zarządzania strefą docelową lub innymi zasobami, należy wprowadzać zmiany tylko poza IaC w ramach sytuacji awaryjnej. Podejmij środki ostrożności przy użyciu kont, które mają dostęp do bezpośredniego wprowadzania zmian, takich jak Privileged Identity Management.

Zapoznaj się z ogólnymi rozwiązaniami dotyczącymi automatyzacji i zabezpieczeń w następujących artykułach:

Następne kroki

Zapoznaj się z wprowadzeniem do narzędzi IaC w następujących artykułach: