Mentionsy Mentionsy
Everything as code
Everything as code

Odcinek 9 - Czym jest HCP Terraform, dawniej Terraform Cloud ?

13.08.2024 ·8 min 13 s

Czym jest Terraform Cloud ? Czy można z niego korzystać bezpłatnie ? Jakie są możliwości tej platformy ? W tym odcinku postaram się na wszystkie te pytania odpowiedzieć. Materiały i narzędzia znajdziesz jak zawsze w repozytorium na GitHub: https://github.com/sebastianczech/podcast-everything-as-a-code/tree/main/episode-009.

Cześć, witam cię serdecznie w kolejnym odcinku mojego podcastu Everything as a Code. Dzisiaj chciałbym opowiedzieć o platformie Terraform Cloud, która obecnie nazywa się HCP Terraform, rozszerzając ten skrót HashiCorp Cloud Platform. Jest to nowa nazwa dla Terraform Cloud. Ten termin Terraform Cloud jest bardziej popularny w sieci itd. Czym jest HCP Terraform, inaczej Terraform Cloud? Będę używał tych pojęć zamiennie w trakcie tego odcinka. Więc Terraform Cloud jest usługą zarządzaną przez HashiCorp, która umożliwia użytkownikom zarządzać projektami infrastruktury zbudowanej w oparciu o kod, czyli oczywiście o Terraforma.

Platforma ta dostarcza szereg narzędzi i funkcji przydatnych, zwłaszcza gdy pracujemy w zespole. Z pewnością ułatwia to zarządzanie środowiskiem i korzystanie z Terraforma. W jakim zakresie? Opowiem w dalszej części odcinka. HCP Terraform jest częścią większego ekosystemu jakim jest HCP. Jest tam wiele innych usług takich jak Consul, Packer czy Volt. Tutaj skupię się na części dotyczącej Terraforma. A więc, jakie są główne cechy Terraform Cloud? Przede wszystkim jest to możliwość zarządzania zdalnym stanem.

Jak wiemy, Terraform, budując infrastrukturę, tworzy plik stanu. I ten plik stanu jest wykorzystywany do porównywania tego, co wdrożyliśmy za pomocą kodu, w stosunku do tego, co mamy w murze czy w tym środowisku, dla którego używamy tego Terraforma. Mamy tutaj różnych providerów, więc nie zawsze to jest chmura. Może to być również środowisko on-premowe. Inną cechą Terraform Cloud jest możliwość współpracy i kontroli dostępu, zarządzania uprawnieniami, a także tworzenie tzw. przestrzeni roboczych, inaczej mówiąc workspace'ów, w którym mamy stan, mamy zmienne, pliki konfiguracyjne,

I dzięki temu można zbudować wiele różnych środowisk, wiele różnych workspace'ów np. development, staging, produkcja itp. Terraform Cloud umożliwia nam automatyzowanie wykonania zmian. Możemy dane zmiany umieszczyć w kolejce do wykonania. Możemy te zmiany anulować. Możemy ponownie uruchomić wdrożenie. Co ważne, Terraform Cloud umożliwia również nam integrację z systemami kontroli wersji jak GitHub, GitHub czy Bitbucket. Poza tym możemy tworzyć tzw. policy as a code. Nie lubię tego tłumaczenia, które się często pojawia w internecie, to znaczy polityki jako kod.

Bardziej bym tu powiedział zasady jako kod. Mówię tutaj głównie o OPA, o tym, co możemy definiować w tym standardzie z pomocą języka rego. Być może stworzę kiedyś jeszcze odcinek na temat właśnie policy as a code. W skrócie powiem tylko tyle, że policy as a code umożliwia nam tworzenie różnych reguł np. dotyczących dostępu, autoryzacji itd. I te reguły są budowane oczywiście za pomocą kodu. I tutaj możemy korzystać z sentinella lub reguł dwóch różnych języków, dwóch różnych standardów. Co więcej jeszcze moglibyśmy powiedzieć o cechach charakterystycznych Terraform Cloud? Ostatnią z tych, o których chciałbym wspomnieć, jest szacowanie kosztów zmian.

Ok, wiemy czym Terraform Cloud jest, jakie są jego cechy charakterystyczne. Jak zatem zacząć pracę z tą platformą? Przede wszystkim Zachęcam Cię do zapoznania się z tutorialami, które są na oficjalnej stronie HashiCorp. Link do tych tutoriali znajdziesz rzeczywiście w notatkach do tego odcinka. Zachęcam. Oczywiście musimy również założyć konto. Możemy założyć konto darmowe. Po zalogowaniu się do platformy musimy otworzyć swoją pierwszą przestrzeń roboczą, czyli tzw. workspace, o których wspominałem chwilkę temu. Polecam podejście, w którym kod naszej infrastruktury przechowujemy w repozytorium takim jak GitHub czy GitLab, by od razu starać się, by stosować tę dobrą praktykę, o której mówiłem w poprzednich odcinkach mojego podcastu, by kod, który budujemy, nieważne do czego, czy do infrastruktury, czy do aplikacji i tak dalej, przechowywać w systemie kontroli wersji.

To ułatwia pracę. Gdy mamy utworzone repozytorium, w GitHubie czy w GitLabie, nieważne, mamy je utworzone, konfigurujemy wtedy Terraform Clouda tak, by wskazać, z którego dokładnie repozytorium chcemy pobierać kod naszej infrastruktury. Gdy już to mamy skonfigurowane, możemy uruchomić jej wdrożenie. Jak wspomniałem, w Terraform Cloud można otworzyć konto darmowe, które umożliwia, które daje wsparcie dla kodu HCL, czyli HashiCorp Configuration Language lub do CTKTF, czyli Cloud Development Kit for Terraform. Mamy możliwość tworzenia przestrzeni roboczych.

Ostatnią z rzeczy, które nie możemy zrobić używając darmowej wersji Terraform Cloud, jest możliwość instalacji tej platformy na własnych serwerach. Więcej różnic, informacji o tym, co jest w darmowej wersji, co jest płatnej itd. można oczywiście znaleźć na oficjalnej stronie HashiCorp. Oczywiście link również w notatkach do tego odcinka. Terraform Cloud nie jest jedyną platformą tego rodzaju. Istnieje szerzej jak innych, takie jak nCore, nF0 czy Spacelift. Linki do tych platform również na dodatkach do tego odcinka. Mam nadzieję, że temat Terraform Cloud, czy inaczej HCP Terraform zainteresował Cię. Jeśli do tej pory nie miałeś okazji spróbować jak ta platforma działa, serdecznie Cię zachęcam do zapoznania się z tutorialami i spróbowania.

Jak HashiCorp podszedł do tego tematu? Jak ułatwia pracę z Terraformem, z infrastrukturą jako kod? I to wszystko, co przygotowałem dzisiaj. Dziękuję za wysłuchanie odcinka i zapraszam na kolejne. Do usłyszenia. Cześć.

Pokazano wszystkie 9 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.