Udostępnij przez


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.

IaC zarządza całym cyklem życia i doskonale radzi sobie z zarządzaniem zasobami, które wdraża. Organizacje powinny planować wdrożenie stref docelowych platformy Azure za pomocą usługi IaC. Wymaga zaplanowania dostosowania istniejących zasobów nie-IaC do zasobów IaC, które są obsługiwane przez zarządzanie stanem. Musisz dopasować istniejące zasoby do pożądanego stanu.

Aby uzyskać więcej informacji, zobacz Zachowaj aktualność 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 imperatywne. 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 odbiega od konfiguracji, aby przywrócić konfigurację do określonej.

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.

Notatka

Konkretne mechanizmy usuwania zasobów za pomocą IaC mogą się różnić. Na przykład usługa Azure Bicep wymaga użycia typu wdrożenia complete w celu skorygowania zasobów 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 narzędzie Terraform.

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

Zalety aktualizowania ALZ przy użyciu infrastruktury jako kodu

Poniższe korzyści opisują, dlaczego warto korzystać z infrastruktury jako kodu, aby aktualizować strefę lądowania.

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ą skonfigurowane dzisiaj?
  • 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. Przejrzyj ten raport przed zatwierdzeniem zmian w środowisku.

Zestaw narzędzi może skompilować informacje na temat zmiany zamiast operatora lub inżyniera.

Zredukować błąd

Ze względu na programistyczny charakter wdrożeń, infrastruktura jako 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

Wdrożenia infrastruktury jako kod są wspierane przez plik definicji, dzięki czemu można użyć systemu kontroli wersji 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ń.

Podczas korzystania z praktyk kontroli wersji tworzona jest nowa gałąź dla twojego IaC, aby dodawać zmiany i poprawki. Historia gałęzi w systemie kontroli źródła rejestruje iteracje 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 Podejście do testowania dla stref docelowych 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 ogólnych celów testowych. Za pomocą tych metod można przeprowadzić testowanie przed wdrożeniem kodu i przetestować kod w środowiskach nieprodukcyjnych z Twojej 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 przy użyciu IaC mogą pomóc w wykryciu dryfu konfiguracji i umożliwieniu odpowiedniego zaktualizowania kodu, rozwiązania tych błędów konfiguracji za pośrednictwem aktualizacji lub rozwiązania ich w inny sposób.

Kiedy wprowadzasz zmiany w zasobach za pośrednictwem portalu, interfejsu wiersza polecenia lub za pomocą metody innej niż IaC, zmiana jest implementowana. Przy następnym uruchomieniu wdrożenia za pośrednictwem IaC, system zaznacza porównanie pomiędzy stanem zdefiniowanym w kodzie a rzeczywistym stanem w portalu, używając funkcji "co-jeżeli" lub funkcji planowania. 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 Terraform próbuje przywrócić stan bazowy dla wdrożonych zasobów, a wdrożenie w trybie Complete w Bicep usuwa zasoby w grupie zasobów, które nie są częścią definicji. Te narzędzia wykrywają i naprawiają odchylenia od konfiguracji, ale mogą nie rozwiązywać wszystkich problemów.

Aby uzyskać więcej informacji, zobacz zmiany poza pasmem i Wykrywanie dryfu i zarządzanie nim za pomocą programu 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: