Infrastructure as Code, czyli szeroka automatyzacja procesów IT
Cloud 3 czerwca 2022 2 minuty czytania

Infrastructure as Code, czyli szeroka automatyzacja procesów IT

Praca na komputerze to czasem żmudne i powtarzalne czynności wykonywane w różnych aplikacjach. Programiści od dawna próbowali tworzyć rozwiązania wyręczające w tym człowieka. Obecnie jest to możliwe dzięki API, standardowi, w którym jedna aplikacja może korzystać z innej. Jednak to był dopiero wstęp do dalszej automatyzacji IT. Jego rozwinięciem jest Infrastructure as Code (IaC).

Podstawy automatyzacji IT: gdy programy sterują programami

Naturalnie obszarem, gdzie świadomość zalet API jest największa, są szeroko pojęte usługi dla programistów i administratorów. A w szczególności: usługi cloud (chmurowe) typu IaaS czy PaaS, w których można uruchamiać własne aplikacje. W związku z tym często takie usługi udostępniają swoje API. Mamy wtedy sytuację, kiedy za pomocą jednej aplikacji (np. własnego skryptu) możemy sterować pośrednio środowiskiem innej aplikacji (np. sklepu internetowego uruchamianego na chmurze). I tu już zaczyna się zauważalnie odciążająca automatyzacja procesów IT.

Taka automatyzacja IT może być przydatna na różnych etapach życia aplikacji „sterowanej”. Instalowanie i uruchamianie (wersji testowej albo produkcyjnej), zwiększanie albo zmniejszanie ilości zasobów (aby podążać za aktualnym zapotrzebowaniem), kopie zapasowe i naprawianie awarii, czy w reszcie deinstalacja i wyczyszczenie środowiska – to przykłady procesów IT, które aż proszą się o automatyzację.

Idą za tym dodatkowe korzyści – jeśli na przykład instalacja nowej wersji serwisu internetowego nie wymaga ręcznej interwencji, to można niewielkim wysiłkiem uruchamiać i sprawdzać działanie każdej najmniejszej zmiany.

Podejście agile w świecie kodów

Obecne w świecie software podejście agile, które opiera się na elastyczności (zwinności) w realizacji projektów, powinno przekładać się nie tylko na sposób organizacji pracy. Metodologia ta powinna dotyczyć też warsztatu technologicznego pozwalającego na szybkie wprowadzanie zmian. A to możliwe jest dopiero przy pewnym poziomie automatyzacji procesów IT.

Jak wspomnieliśmy w artykule o API, lenistwo jest cnotą programisty. Trudno więc wymagać, aby do każdej aplikacji powstawał pisany od zera zestaw skryptów obsługujący jej cykl życia. To po prostu oznaczałoby zbyt wiele powtarzalnej pracy, nawet jeśli pracą tą jest programowanie.

Z jednej strony z pomocą przychodzą dostawcy usług chmurowych. W miarę rozwoju swojej oferty proponują oni poszczególne ze wspomnianych elementów wymagających automatyzacji jako gotowe usługi swojej platformy, jak na przykład automatyczne kopie zapasowe. Z drugiej zaś strony, tworzone są uniwersalne narzędzia potrafiące obsłużyć API usług cloud od różnych dostawców. Powstają one zarówno jako oddolne inicjatywy Open Source, jak i w formie produktów komercyjnych.

IaC, czyli jeden program do wszystkiego

Szczególnym przykładem automatyzacji w IT są narzędzia i usługi z kategorii Infrastructure as Code (IaC), z ang. „infrastruktura jako kod”. IaC to szwajcarski scyzoryk w świecie chmur typu IaaS i PaaS. Może powołać do życia najróżniejsze elementy składowe, skonfigurować i połączyć w całość, tworząc, jak za dotknięciem magicznej różdżki, gotowe środowisko dla danej aplikacji.

Nie ma jednak nic za darmo – za tę wszechstronność trzeba zapłacić pewnym wysiłkiem umysłowym: nie dostajemy gotowego przycisku „uruchom”. Wspomnianą magię Infrastructure as a Code trzeba zasilić, podając narzędziu opis środowiska, które chcemy finalnie otrzymać.

IaC a programowanie deklaratywne

Gdzie więc różnica, w stosunku do pisania własnej aplikacji wykonującej to samo zadanie? Tworzymy opis, a nie procedurę. To podejście nazywane programowaniem deklaratywnym można przyrównać do rozmowy z architektem o tym, jak ma wyglądać dom, w porównaniu do wydawania poleceń ekipom budowlanym. Przeciwieństwem programowania deklaratywnego jest imperatywne, w przypadku, którego trzeba wskazać komputerowi krok po kroku, co ma robić, a nie tylko wskazać oczekiwany efekt i jego cel.

Narzędzia typu Infrastructure as Code, podobnie jak inne, bywają wbudowaną usługą danej platformy chmurowej jak CloudFormation w AWS czy Heat w ramach OpenStack. Rozwiązania IaC występują również w formie uniwersalnych narzędzi.

W tej kategorii prym wiedzie Terraform, narzędzie Open Source wspierane przez cenioną przez programistów firmę HashiCorp. Pozwala on na zarządzanie najróżniejszymi typami usług cloud, w tym VMware vCloud Director. Umożliwia to zautomatyzowaną obsługę narzędzi chmurowych Integrated Computing Standard dostarczanych przez Integrated Solutions z Data Center Orange.

Oceń artykuł

Masz pytania? Wypełnij formularz. Nasz zespół ekspertów służy pomocą.

Popularne tagi

Tagi

Mogą Cię również zainteresować

  • Jakie są najnowsze metody szyfrowania danych w chmurze?

    Jakie są najnowsze metody szyfrowania danych w chmurze?
    Jakie są najnowsze metody szyfrowania danych w chmurze?
    Cloud 12 marca 2024

    Cloud

    Szyfrowanie w chmurze stanowi jeden z najskuteczniejszych sposobów ochrony firmowych danych. Wciąż korzysta z niego jednak tylko co trzecie polskie […]

  • Sieci programowalne komputerowo – technologia SDN

    Sieci programowalne komputerowo – technologia SDN
    Sieci programowalne komputerowo – technologia SDN
    Cloud 1 lutego 2024

    Cloud

    W ciągu ostatnich lat firmy i instytucje przeniosły do chmur i aplikacji wiele procesów, które dotąd były prowadzone offline. Klasyczne […]

  • Wszystko, co musisz wiedzieć o bezpieczeństwie natywnym w chmurze

    Wszystko, co musisz wiedzieć o bezpieczeństwie natywnym w chmurze
    Wszystko, co musisz wiedzieć o bezpieczeństwie natywnym w chmurze
    Cloud 14 listopada 2023

    Cloud

    Dynamiczna ewolucja krajobrazu teleinformatycznego zmusza organizacje do wdrażania coraz skuteczniejszych cyberzabezpieczeń. Z pomocą w rozwiązywaniu problemów z bezpieczeństwem infrastruktury IT […]

  • Mgła obliczeniowa vs chmura obliczeniowa – podobieństwa i różnice

    Mgła obliczeniowa vs chmura obliczeniowa – podobieństwa i różnice
    Mgła obliczeniowa vs chmura obliczeniowa – podobieństwa i różnice
    Cloud 4 września 2023

    Cloud

    Wraz z rozwojem technologii powstały różne modele przetwarzania danych, z których główne to mgła obliczeniowa i chmura obliczeniowa. Oba zapewniają […]