Infrastruktura jako kod
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.