Infrastruktura jako kod

Ukończone

Infrastruktura jako kod (IaC) to proces zarządzania zasobami infrastruktury w chmurze i aprowizowania ich za pomocą kodu możliwego do odczytu maszynowego przechowywanego w kontroli źródła. Możliwość traktowania infrastruktury tak jak w przypadku każdego innego kodu źródłowego jest powodem, dla którego ta praktyka jest nazywana infrastrukturą jako kodem.

IaC jest kluczowym składnikiem metodyki DevOps, ponieważ umożliwia automatyzację konfiguracji i wdrażania infrastruktury. Ta automatyzacja zmniejsza ilość czasu i nakładu pracy wymaganego do zarządzania infrastrukturą i jej aprowizowania, zapewniając jednocześnie spójną i niezawodną konfigurację infrastruktury. IaC pomaga również zapewnić bezpieczeństwo i zgodność infrastruktury z zasadami organizacyjnymi.

Narzędzia natywne dla platformy Azure a narzędzia niezależne od chmury

Jednym z najważniejszych czynników w wyborze narzędzia IaC jest środowisko chmury:

  • Narzędzia natywne dla platformy Azure: narzędzia IaC, takie jak interfejs wiersza polecenia platformy Azure, program Azure PowerShell i Bicep, są dostępne tylko na platformie Azure. Ponieważ ta sama firma oferuje zarówno infrastrukturę chmury, jak i narzędzia IaC, korzyść jest ograniczona między wydaniem funkcji w chmurze i obsługą w narzędziach.

  • Narzędzia niezależne od chmury: narzędzia IaC, takie jak Terraform, umożliwiają zarządzanie infrastrukturą jako kodem w środowiskach mieszanych w chmurze. W zależności od narzędzia IaC nowo wydane funkcje platformy Azure mogą nie być natychmiast obsługiwane.

Narzędzia imperatywne a deklaratywne IaC

Istnieją dwa typy narzędzi konfiguracji IaC:

  • Imperatywne narzędzia IaC: narzędzie imperatywne lub język to narzędzie, w którym kod jawnie określa, co należy zrobić i jak. Kod, który piszesz, wykonuje akcje w określonej kolejności( jeden krok naraz) w celu skonfigurowania infrastruktury. Większość imperatywnych narzędzi IaC nie jest idempotentna, ponieważ konfiguracja jest wykonywana krok po kroku.

    Narzędzia imperatywne IaC do zarządzania zasobami i ich aprowizowania na platformie Azure obejmują:

    • Interfejs wiersza polecenia platformy Azure
    • Azure PowerShell
  • Narzędzia IaC deklaratywne: narzędzie deklaratywne lub język umożliwiają określenie żądanego wyniku, a nie sposobu wykonania każdego kroku. Większość narzędzi IaC deklaratywnych jest zgodna ze wspólnym wzorcem. Po utworzeniu definicji infrastruktury uruchom polecenie , aby aprowizować zdefiniowane elementy. Deklaratywne narzędzia IaC są idempotentne, ponieważ konfiguracja może być wielokrotnie stosowana, niezależnie od stanu konfiguracji infrastruktury. Ta możliwość pomaga zapobiec dryfowaniu konfiguracji przez przywrócenie zgodności infrastruktury z powrotem do zgodności.

    Narzędzia deklaratywne IaC do zarządzania zasobami i ich aprowizowania na platformie Azure obejmują:

    • Bicep
    • Terraform

Zalecenia

  • Wdrożenie podejścia IaC do wdrażania wdrożeń platformy Azure, zarządzania nimi i zarządzania nimi.
  • W następujących scenariuszach użyj narzędzi natywnych dla platformy Azure dla IaC:
    • Chcesz używać tylko narzędzi natywnych dla platformy Azure. Twoja organizacja ma wcześniejsze doświadczenie we wdrażaniu szablonów usługi Azure Resource Manager (szablonów usługi ARM).
    • Twoja organizacja chce natychmiastowej pomocy technicznej dla wszystkich wersji zapoznawczych i ogólnie dostępnej wersji usług platformy Azure.
  • Użyj narzędzi innych niż natywne dla IaC w następujących scenariuszach:
    • Twoja organizacja zarządza infrastrukturą w środowiskach chmury mieszanej.
    • Twoja organizacja nie potrzebuje natychmiastowej pomocy technicznej dla wszystkich wersji zapoznawczych i ogólnie dostępnej wersji usług platformy Azure.