Taki obrazek przywita Cię na stronę związaną z certyfikacją odnośnie HashiCorp Certified: Terraform Associate (003).
Jak możemy wyczytać:
Ten certyfikat jest przeznaczony dla inżynierów chmury specjalizujących się w operacjach, IT lub programowaniu, którzy znają podstawowe pojęcia i umiejętności związane z HashiCorp Terraform. Ta osoba rozumie różnicę w funkcjonalności między Terraform Cloud, Terraform Enterprise i Open Source Terraform.
A zatem ten certyfikat jest potwierdzeniem umiejętności oraz tego że rozumiesz i umiesz posługiwać się terraform. Narzędziem do zarządzania infrastrukturą w kodzie... czy za pomocą kodu. Ale czy warto, czy daje to coś nam (oczywiście posiadanie certyfikatu - bo trzymanie konfiguracji w kodzie to jak najbardziej :)) - postaram się odpowiedzieć na te i inne pytania w tym artykule. Do mniejszego artykułu powstał też Vlog, jak ktoś lubi bardziej słuchać to znajdziesz go na moim kanale na YouTube.
Ważność certyfikatu
Warto zaznaczyć na wstępie że certyfikat jest ważny tylko przez dwa lata (24 miesiące) - tego dnia którego zdałeś egzamin pozytywnie za dwa lata dokładnie straci ważność i będziesz mógł (musiał - by posługiwać się dalej poświadczeniami w postaci certyfikatu) przystąpić do niego ponownie (Tej samej wersji egzaminu lub innej).
Terraform Associate 003 zastępuję Terraform Associate 002 - oczywiście jeżeli jesteś posiadaczem jeszcze ważnego certyfikatu w wersji 002 nie musisz odnawiać go do wersji 003. Możesz zrobić to wtedy gdy 002 straci ważność.
Wymagania wstępne
Terraform na swojej stronie pisze o dwóch punktach jeśli chodzi o wymagania wstępne, a są nimi:
Podstawowe umiejętności posługiwania się terminalem
Podstawowe zrozumienie architektury on-premise i chmury
Co do pierwszego punktu - jak już zainstalowałeś terraforma w celu poznania tego narzędzia i jeszcze nie myślałeś o egzaminie to ten punk masz już zaliczony. Sama instalacja nie jest jakimś mega trudnym krokiem i jest bardzo dobrze opisana w dokumentacji terraforma. Możemy jednak założyć, że jeżeli poradziłeś sobie z tym krokiem nawet z dokumentacją to podstawy terminala masz opanowane. Chyba, że polecenia które , wydawałaś w terminalu są dla Ciebie czarną magią to zapraszam do moich materiałów na kanale YouTube gdzie poruszam zagadnienia związane z terminalem.
Drugi punkt jest bardziej złożony. Jak dokładnie rozumieć "Podstawowe zrozumienie architektury on-premise i chmury" - postaram się wyjaśnić w kilku punktach.
Po pierwsze warto zapoznać się za jakąś chmurą dostępna publicznie (AWS, Azure, DigitalOcean, GCP - czy każdą inną). Jeżeli chodzi o rozwiązani on premise w zupełności wystarczy rozwiązanie w postaci HomeLab. Znajomość infrastruktury chmurowej też na podstawowym poziomie wystarczy. Należy zrozumieć podstawowe pojęcia związane z chmurą. Czym tak naprawdę jest chmura.
Proste wyjaśnienie chmury i koncepcji za nich się kryjących jest porównanie tego do własnej wirtualizacji na swoim komputerze. Czyli współdzielenie zasobów w ramach jednego fizycznego serwera. Oczywiście w większej skali plus dodatkowe warstwy bezpieczeństwa w postaci separacji środowiska czy zasobów. Tak by Klient X nie odczytał danych Klienta Y. A i ty chmurą nie zarządzasz. Tzn zarządzasz ale nie od środka... no dobra inaczej ...
Oczywiście! Chmura publiczna i on-premise to dwa różne podejścia do przechowywania danych i uruchamiania aplikacji.
On-premise (lokalne): Architektura on-premise odnosi się do infrastruktury, która jest utrzymywana i zarządzana wewnątrz firmy lub organizacji. Oznacza to, że wszelkie serwery, urządzenia sieciowe, centra danych i inne zasoby są fizycznie obecne w miejscu pracy. Organizacja jest odpowiedzialna za zakup, konserwację, aktualizację i bezpieczeństwo wszystkich tych zasobów. W przypadku architektury on-premise dane są przechowywane w wewnętrznych serwerach firmy, a aplikacje są uruchamiane na lokalnych maszynach. Ten model daje pełną kontrolę nad infrastrukturą, ale wymaga dużych nakładów finansowych na zakup i utrzymanie sprzętu oraz zasobów ludzkich do zarządzania tymi zasobami.
Chmura publiczna: Chmura publiczna odnosi się do modelu, w którym organizacja korzysta z usług dostarczanych przez zewnętrznego dostawcę, tzw. dostawcę chmury publicznej. Dostawca chmury publicznej utrzymuje infrastrukturę (serwery, sieci, centra danych itp.) i udostępnia ją klientom jako usługę. Klienci mogą przechowywać swoje dane i uruchamiać aplikacje w chmurze publicznej. W przypadku chmury publicznej dane są przechowywane na serwerach dostawcy chmury i są dostępne za pośrednictwem internetu. Klienci korzystają z elastyczności i skalowalności oferowanej przez dostawcę chmury publicznej, a ponoszone koszty zależą od faktycznego korzystania z zasobów.
W skrócie, on-premise oznacza lokalne utrzymanie infrastruktury i przechowywanie danych na lokalnych serwerach, podczas gdy chmura publiczna oznacza korzystanie z usług dostarczanych przez zewnętrznego dostawcę chmury, gdzie dane są przechowywane na serwerach dostawcy.
Po drugie - egzamin terraform nie wymaga od Ciebie bycia specjalista w danej chmurze. Jeżeli umiesz postawić maszynę wirtualną za pomocą GUI dostępnego (AWS, GCP, Azure czy DigitalOcean) i wiesz jak to działa i od czego jest zależna w ramach zasobów którymi dysponujesz w chmurze. Czyli sieć, storage, firewall w postaci Security Group czy innego rozwiązania. To ten punkt i koncept też masz opanowany w stopniu podstawowym.
Ok, czas zatem przejść do samego terraforma :D
Szczegóły egzaminu
Dobra mamy wstępniak - porozmawiajmy teraz o kosztach samym egzaminie oraz formie jego przeprowadzenia.
Format pytń
Egzamin może i składa się z pytań wielokrotnego wyboru. Mamy zawsze informacje ile oczekują od nas zaznaczenia poprawnych odpowiedzi. Gdy jest to jedna prawidłowa odpowiedź, pola do zaznaczania mają kształt koła a gdy jest wielokrotna mają kształt kwadratu. Na końcu pytania jest napisane ile odpowiedzi trzeba zaznaczyć (np.: zaznacz dwie). Pytań jest dokładnie 59 i można do nich wrócić jeżeli czas pozwoli. Pytania można też oznaczyć flagą jeżeli nie damy na nie odpowiedzi lub nie jesteśmy jej do końca pewni.
Pytania są wyświetlane po kolei, jednak mamy możliwość przejścia do dowolnego. W dolnej części mamy pasek nawigacji w postaci numerów pytań. Po kliknięciu przenosi nas do wskazanego. U góry za to panele nawigacyjne z przyciskami następne, poprzednie pytanie.
Czas trwania
Na cały egzamin od jego rozpoczęcia czyli wyświetlenia pierwszego pytania mamy dokładnie 60 minut. Co przy liczbie pytań 57 daje nam po jednej minucie na pytanie. Co w zupełności wystarcza. Oczywiście dobr ą praktyką jest że jeśli od razu nie znasz odpowiedzi na jakieś pytanie to oznacz je flaga i przejdź do następnego. Zdążysz do niego wrócić - a szkoda marnować czasu na zastanawianie się nad odpowiedzią.
Aktualny czas jest cały czas widoczny w górnej części okna - wiec na bierząco jestesmy z aktualnym postępem w naszym kursie.
Cena i język
Koszt egzaminu to 70,50 USD - co przy obecnym kursie dolara (4,07) daje 287 zł - oczywiście ta kwota może się różnić w zależności od przeliczeń danego banku w którym posiadamy kartę oraz od samego kursu dolara.
Egzamin jest prowadzony w języku angielskim, jego interfejs pytania egzaminacyjne jak i pytania od egzaminatora pilnującego przebiegu egzaminu.
Format
Egzamin jest realizowany przez platformę PSI na której trzeba założyć konto (można się zalogować tam za pomocą konta github jeżeli takie posiadamy). Po zalogowaniu możemy umówić, wybrać dogodny termina na zdanie egzaminu. Egzamin jest prowadzony online. I do egzaminu można przystąpić na 30 minut przed planowanym terminem, a przełożyć go możemy na dwa dni przed planowanym terminem. Egzamin odbywa się w pełni online. Weryfikacja podczas egzaminu, przebiegła sprawnie i szybko - zajęło to 10 minut. Osobiście robiłem egzamin na komputerze z rodziny Apple. I tu zalecam korzystać z laptopa. Ja sam realizowałem egzamin przy stole, ponieważ przy biurku mam dwa dodatkowe monitory które podczas egzaminu są niedozwolone oraz dużo innych rzeczy (podkładka klawiatura słuchawki i inne takie rzeczy). I tu weryfikacja przez egzaminatora była szczegółowa. Musiałem pokazać wszystkie ściany łącznie z sufitem i podłogą czy nic tam nie jest naklejone. A z racji tego że egzamin miałem przy stole (jak pokazywałem pokój - egzaminator pewnie to dostrzegł) musiałem też pokazać czy nic nie ma pod stołem na jego rogach/bokach itp.
Pokazuje się też nadgarstki oraz uszy czy nie ma się tam dodatkowych urządzeń. Zegarek oczywiście musiałem zdjąć. Nie wiem jak w przypadku osób z aparatami słuchowymi czy też musiałby taki aparat wyciągnąć / zdjąć podczas egzaminu. Nie doczytałem i nie odnalazła nigdzie takiej informacji. Jednak egzamin i komunikaty z egzaminatorem są prowadzone po przez czat zatem wydaje mi się że tez taki aparat trzeba było by wyciągnąć / odłączyć.
Swoja tożsamość potwierdzamy dowodem osobistym lub prawojazdami. To jest jedyny przedmiot oprócz okularów i wody który może znajdować się dodatkowo n a naszym biurku podczas trwania egzaminu.
Oczywiście podczas egzaminu nikt inny nie może przebywać w pomieszczeniu w którym zdajecie egzamin oprócz was. A zatem należy znaleźć wolny pokój - lub pomieszczenie w którym na 60 minut możecie się zamknąc sami.
Podczas trwania egzaminu monitoruje nas bez przerwy egzaminator. Zatem jak macie tendencje do czytania pytań na głos - lub czytania bez głosu ale poruszania ustami to zalecam tego nie robić ponieważ może to spowodować zakończenie egzaminu z wynikiem negatywnym. Możemy o tym przeczytać w zasadach przeprowadzenia egzaminu które akceptujemy.
Wygląd samej aplikacji z egzaminem jest surowy - tzn bez zbędnych wodotrysków i jakiejś przyciągającej kolorystyki. Za to jest spójnie i przejrzyście.
Sama aplikacja wykrywa inne aplikacje które nie powinny być uruchomione i wyłącza.
Tematyka obowiązująca na egzaminie
Poniżej wkleję dokładny opis ze strony terraform tak by przy tłumaczeniu nie wkradł się jakiś błąd. Oczywiście zalecam co jakiś czas sprawdzić czy wymagania na stronie terraform nie zostały zaktualizowane. Nie będę też omawiał różnic względem egzaminu 002.
Na tym etapie mogę też powiedzieć że zaliczenie zaczyna się od 70% w górę zatem wynik od 70 do 100% daję Ci wynik pozytywny.
Exam objectives
Understand infrastructure as code (IaC) concepts
Explain what IaC is
Describe advantages of IaC patterns
Understand the purpose of Terraform (vs other IaC)
Explain multi-cloud and provider-agnostic benefits
Explain the benefits of state
Understand Terraform basics
Install and version Terraform providers
Describe plugin-based architecture
Write Terraform configuration using multiple providers
Describe how Terraform finds and fetches providers
Use Terraform outside of core workflow
Describe when to use terraform import to import existing infrastructure into your Terraform state
Use terraform state to view Terraform state
Describe when to enable verbose logging and what the outcome/value is
Interact with Terraform modules
Contrast and use different module source options including the public Terraform Module Registry
Interact with module inputs and outputs
Describe variable scope within modules/child modules
Set module version
Use the core Terraform workflow
Describe Terraform workflow ( Write -> Plan -> Create )
Initialize a Terraform working directory (terraform init)
Validate a Terraform configuration (terraform validate)
Generate and review an execution plan for Terraform (terraform plan)
Execute changes to infrastructure with Terraform (terraform apply)
Destroy Terraform managed infrastructure (terraform destroy)
Apply formatting and style adjustments to a configuration (terraform fmt)
Implement and maintain state
Describe default local backend
Describe state locking
Handle backend and cloud integration authentication methods
Differentiate remote state back end options
Manage resource drift and Terraform state
Describe backend block and cloud integration in configuration
Understand secret management in state files
Read, generate, and modify configuration
Demonstrate use of variables and outputs
Describe secure secret injection best practice
Understand the use of collection and structural types
Create and differentiate resource and data configuration
Use resource addressing and resource parameters to connect resources together
Use HCL and Terraform functions to write configuration
Describe built-in dependency management (order of execution based)
Understand Terraform Cloud capabilities
Explain how Terraform Cloud helps to manage infrastructure
Describe how Terraform Cloud enables collaboration and governance
Zacznijmy od końca - Understand Terraform Cloud capabilities.
Nie opuszczał bym tego podpunktu ponieważ na moim egzaminie dostałem kilka pytań z tematyki terraform cloud. Oczywiście nie mówię, że ty dostaniesz mniej czy więcej pytań ale uważam że warto poznać to narzędzie. Terraform Cloud pozwala założyć darmowe konto na zawsze. Zatem warto spróbować skonfigurowac choć jedną swoja konfigurację i używać terraform cloud jako backendu czy też środowiska uruchomieniowego dla terraform plan, apply i destroy.
Understand infrastructure as code (IaC) concepts
Tu musisz sobie postawić pytanie czy umiesz wyjaśnić co to jest IaC oraz jakie są zalety infrastruktury w kodzie. Na co pozwala IaC i jakie korzyści niesie:
Zarządzaj dowolną infrastrukturą - przez wielu providerów, oraz to że możemy ich ze sobą łączyć.
Śledź swoją infrastrukturę - po przez VSC (git) na przykład github, gitlab czy inne tego typu narzędzia
Zautomatyzuj zmiany - integracja z CI/CD
Standaryzuj konfiguracje - pisanie własnych modułów
Współpracować - praca poprzez git.
To najważniejsze punkty - oczywiście warto zapoznać się z dokumentacją i przewodnikiem powtórkowym od Terraform
Understand the purpose of Terraform (vs other IaC)
HashiCorp Terraform to narzędzie infrastruktury jako kodu, które umożliwia definiowanie zasobów infrastruktury w plikach konfiguracyjnych czytelnych dla człowieka, które można wersjonować, ponownie wykorzystywać i udostępniać. Następnie możesz użyć spójnego przepływu pracy, aby bezpiecznie i wydajnie udostępniać infrastrukturę i zarządzać nią przez cały cykl jej życia.
Stan jest kluczowym elementem działania narzędzia do zarządzania infrastrukturą w chmurze, Terraform. Jest niezbędny z kilku powodów:
1. Mapowanie do świata rzeczywistego: Stan umożliwia Terraformowi odwzorowanie konfiguracji na rzeczywiste zasoby w systemie zdalnym. Terraform korzysta z plików stanu, aby wiedzieć, które zasoby reprezentują konkretne obiekty w systemie zdalnym. Te mapowania są jednoznaczne - każdy obiekt zdalny jest powiązany tylko z jednym zasobem w konfiguracji.
2. Przechowywanie metadanych: Stan przechowuje metadane, takie jak zależności między zasobami. Terraform wykorzystuje te informacje do określenia kolejności działań, takich jak niszczenie zasobów. Metadane pomagają też Terraformowi określić, jakie zmiany są potrzebne do osiągnięcia pożądanej konfiguracji.
3. Poprawa wydajności: Terraform wykorzystuje stan do przechowywania wartości atrybutów zasobów, co poprawia wydajność. Dzięki temu, Terraform nie musi wysyłać zapytań do dostawcy o każdy zasób indywidualnie, co jest czasochłonne i może prowadzić do ograniczeń szybkości API.
4. Synchronizacja: W kontekście pracy zespołowej, stan umożliwia wszystkim członkom zespołu pracę na tych samych obiektach zdalnych. Za pomocą zdalnego stanu, Terraform może blokować przypadkowe jednoczesne działania różnych użytkowników, zapewniając jednolity i aktualny stan.
Podsumowując, stan Terraform jest integralnym elementem zarządzania infrastrukturą, umożliwiając efektywne mapowanie, przechowywanie metadanych, poprawę wydajności i synchronizację. Bez stanu, Terraform napotkałby na złożoność i nieskuteczność w realizacji swoich funkcji.
Understand Terraform basics
Instalowanie i wersjonowanie dostawców Terraform
Opisz architekturę opartą na wtyczkach
Napisz konfigurację Terraform przy użyciu wielu dostawców
Opisz, w jaki sposób Terraform wyszukuje i pobiera dostawców
Use Terraform outside of core workflow
Opisz, kiedy użyć terraform importdo zaimportowania istniejącej infrastruktury do stanu Terraform
Służy terraform statedo przeglądania stanu Terraform
Opisz, kiedy włączyć szczegółowe rejestrowanie i jaki jest wynik/wartość
Interact with Terraform modules
Porównaj i wykorzystuj różne opcje źródeł modułów, w tym publiczny rejestr Terraform
Interakcja z wejściami i wyjściami modułu
Opisz zakres zmiennych w modułach/modułach podrzędnych
Ustaw wersję modułu
Use the core Terraform workflow
Opisz przepływ pracy Terraform ( Napisz -> Planuj -> Utwórz )
Inicjowanie katalogu roboczego Terraform ( terraform init)
Sprawdź poprawność konfiguracji Terraform ( terraform validate)
Wygeneruj i przejrzyj plan wykonania dla Terraform ( terraform plan)
Wprowadzaj zmiany w infrastrukturze za pomocą Terraform ( terraform apply)
Zniszcz zarządzaną infrastrukturę Terraform ( terraform destroy)
Stosowanie korekt formatowania i stylu do konfiguracji ( terraform fmt)
Implement and maintain state
Opisz domyślny localbackend
Opisz blokowanie stanu
Obsługuj metody uwierzytelniania integracji backendu i chmury
Rozróżnij opcje zaplecza stanu zdalnego
Zarządzaj dryfem zasobów i stanem Terraform
Opisz backendintegrację blokową i chmurową w konfiguracji
Zrozumienie tajnego zarządzania plikami stanu
Read, generate, and modify configuration
Zademonstruj użycie zmiennych i danych wyjściowych
Opisz najlepszą praktykę bezpiecznego tajnego wstrzykiwania
Zrozumienie zastosowania kolekcji i typów strukturalnych
Twórz i różnicuj resource oraz data konfiguruj
Użyj adresowania zasobów i parametrów zasobów, aby połączyć zasoby razem
Użyj funkcji HCL i Terraform do pisania konfiguracji
Opisz wbudowane zarządzanie zależnościami (w oparciu o kolejność wykonywania)
Jakie mogą pojawić się pytania
Pytania jakie mogą się pojawią będą z zakresu powyższej listy - a oto kilka przykładowych pytań które znajdziemy na stronie terraform https://developer.hashicorp.com/terraform/tutorials/certification-003/associate-questions
oczywiście znacznie więcej znajdziesz w moim kursie dostępnym na stronie https://szkolenia.cloud
Jak zacząć się uczyć i skąd brać materiały do nauki.
Zawsze przy nauce jakiegoś narzędzia polecam dokumentację techniczną i tak samo jest w tym przypadku:
Na początek możemy zacząć tutaj: https://developer.hashicorp.com/terraform
Zalecam też powtórkę które idealnie opisuje zagadnienia i odsyła do właściwych elementów w dokumentacji: https://developer.hashicorp.com/terraform/tutorials/certification-003/associate-review-003
Oczywiście praktyczne przykłady znajdziesz na stronie terraform i w moim kursie - w jednym i drugim po zalogowaniu możesz śledzić swój progress.
Następne kroki
Zapoznaj się z podręcznikiem egzaminacyjnym , aby przećwiczyć wszystkie cele egzaminu. Sprawdź przykładowe pytania , aby przejrzeć format pytań egzaminacyjnych.
Jeśli jesteś gotowy, aby zarejestrować się na egzamin, życzę powodzenia!
Utwórz konto
Kup termin egzaminu
Zarejestruj się na wizytę
Podejść do egzaminu
Podsumowanie
Czy warto podejść do egzaminu - stwierdzam że tak, jeżeli rzeczywiście chcesz ułatwić sobie pracę i ją przyśpieszyć. To poznanie terraforma pozwoli Ci na to. A zdanie egzaminu będzie swoistym uwieńczeniem i potwierdzeniem zdobytej wiedzy. Oczywiście dalsza praca i praktyka pozwoli Ci w pełni wykorzystać wiedzę. Pozdrawiam Piotr Kośka
Comentários