Mentionsy Mentionsy
Everything as code
Everything as code

Odcinek 5 - Testowanie infrastruktury, piramida testów

21.05.2024 ·13 min 11 s · 4 rozdziały

Czy warto testować kod infrastruktury ? Czym jest piramida testów ? Jakie narzędzia można użyć do testowania kodu Terraform ? Na każde z tych pytań postaram się odpowiedzieć w odcinku, z kolei kod z testami oraz linki znajdziesz w materiałach dostępnych na GitHub: https://github.com/sebastianczech/podcast-everything-as-a-code/tree/main/episode-005

6:55 · Testowanie infrastruktury - korzyści 3

Bardzo serdecznie zachęcam, by spojrzeć do materiałów odcinka, które są dostępne w opisie tego podcastu. Tam znajdziecie przykład kodu Terraforma dla platformy AWS, który właśnie definiuje zmienne zasoby I dla tych zmiennych zasobów określałem reguły walidacji. Przykładami jak to można od strony technicznej zdefiniować i jak można to wykorzystać budując własny kod. Serdecznie do tego zachęcam. Wykonując testy kontraktowe tutaj już musimy wykonać komendę Terraform Plan, bo na tym etapie są sprawdzane reguły walidacji dla zmiennych czy też dla zasobów, więc tutaj zachodzi już komunikacja między naszą maszyną lokalną a środowiskiem chmurowym, dlatego, że oczywiście komenda Terraform Plan nie wdraża tych zasobów w chmurze, czyli wykonujemy te sprawdzenia lokalnie i zanim uruchomimy komendę Terraform Apply,

Jest to nowość w Terraformie, nie jest to jeszcze szeroko stosowane, natomiast ja oczywiście również przygotowałem materiał do tego odcinka, przykłady jak takie moki definiować. Więc w dodatkach do tego odcinka znajdziecie, jak mockować na przykład odpowiedź z AWS IAM Policy, przykład takiego JSON-a, którego zaszywamy w kodzie naszej infrastruktury, jak też mockować zasoby i jak takie testy, których mocków używają, wykonywać oraz wywoływać. Mam nadzieję, że to się Wam przyda. Zachęcam do tego przede wszystkim z tego powodu, że jest to nowość w Terraformie 1.7. I warto, wydaje mi się, te nowości zaraz z testowaniem aplikować w kodzie infrastruktury, którą budujemy.

Poza tym z typów testów, o których chciałbym powiedzieć w kontekście Terraforma są testy całościowe. I tutaj mamy dwie możliwości. To jest Terraform Test oraz Terraform Checks. Terraform Test to jest nowa komenda. Dostępne od Terraformy 1.6, która pozwala nam uruchamiać testy budowane w języku HCL. I oczywiście te testy wdrażają te infrastruktury w chmurze. Po zakończeniu testów są te zasoby usuwane, więc w porównaniu do tych mocków, o których mówiłem chwilkę wcześniej, tutaj te zasoby są wdrażane, więc mogą się pojawić jakieś koszty. To w zależności od tego, jakie chmury, gdzie te zasoby wdrażamy. Terraform Checks z kolei jest to nowy blok w kodzie HCL, który pozwala nam wykonać, na przykład po wdrożeniu Lambda do chmury AWS, pozwala na przykład sprawdzić, czy ten adres URL Lambda jest na przykład dostępny.

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