Traktowanie platformy CI/CD jako darmowego placu zabaw do testowania kodu to jeden z najdroższych grzechów współczesnych zespołów deweloperskich. Sytuacja, w której prosty błąd w składni uruchamia dziesiątki maszyn w chmurze i generuje gigantyczne faktury, wymaga radykalnej zmiany podejścia. Amadeusz Kryze podczas prelekcji na SO/DO MeetUpie przedstawił koncepcję Testing Shift-left – strategię, która pozwala przenieść walidację kodu na stacje robocze programistów. Dowiedz się, jak za pomocą pre-commit hooków i narzędzia Mise drastycznie podnieść success rate pipeline’ów, odciążyć chmurę i okiełznać opór materii w zespole.
Chmura to nie darmowy sandbox
Większość menedżerów żyje w przekonaniu, że systemy CI/CD działają w tle i nie generują odczuwalnych kosztów. Rzeczywistość rozliczeń minutowych u dostawców takich jak GitHub czy Azure bywa brutalna. Amadeusz Kryze wylicza, że w 45-osobowym zespole deweloperskim, przy intensywnym cyklu commitów, maszyny CI potrafią przepalić ponad 33 000 minut obliczeniowych miesięcznie. Sytuacja staje się krytyczna, gdy deweloper zamiast testować kod lokalnie, traktuje CI jako kompilator – wysyłając niesprawdzone zmiany i blokując drogie, wielordzeniowe maszyny tylko po to, by po minucie dowiedzieć się o błędzie w pointerze.
Pre-commit jako strażnik repozytorium
Rozwiązaniem tego problemu jest wdrożenie mechanizmu Git hooks, a dokładniej narzędzia pre-commit. Działa ono bezpośrednio na laptopie programisty i uruchamia wybrane skrypty walidacyjne zanim commit zostanie ostatecznie zapisany w historii. Pre-commit pozwala na błyskawiczne wyłapanie błędów w plikach YAML, usunięcie zbędnych spacji, a co najważniejsze – zablokowanie próby wypchnięcia do sieci wrażliwych danych (np. dzięki integracji z TruffleHog). Jeśli testy zakończą się niepowodzeniem, transakcja zostaje przerwana. Wadliwy kod nigdy nie trafia do chmury, co automatycznie redukuje liczbę bezsensownych uruchomień pipeline’u.
Standaryzacja z MISE, czyli koniec z „u mnie działa”
Przeniesienie testów na środowiska lokalne deweloperów często rodzi opór związany z rozbieżnością wersji narzędzi. Aby uniknąć niekończących się dyskusji o tym, że „u mnie działa, a na CI się sypie”, Amadeusz rekomenduje wdrożenie narzędzia Mise (następcy ASDF). Mise pozwala na ścisłe zdefiniowanie wersji binarek (Javy, Pythona, Terraformu) bezpośrednio w pliku konfiguracyjnym repozytorium. Deweloper otrzymuje środowisko lokalne, które jest idealnym odzwierciedleniem runnera chmurowego. Taka standaryzacja eliminuje techniczny chaos, skraca czas debugowania i daje programistom pewność, że lokalny test zachowa się identycznie w pipeline.
Chcesz zoptymalizować swoje procesy CI/CD?
Efektywne zarządzanie chmurą to nie tylko pisanie skryptów, ale przede wszystkim kontrola kosztów i optymalizacja pracy zespołu. Jeśli chcesz wdrożyć strategię Shift-left na własnym podwórku:
- Szkolenia SO/DO: zapisz się na nasze praktyczne warsztaty, gdzie pod okiem architektów nauczysz się konfigurować zaawansowane pipeline’y, zarządzać sekretami i automatyzować środowiska deweloperskie.
- MeetUpy SO/DO: dołącz do największej społeczności IT w Polsce, wymień się doświadczeniami z praktykami takimi jak Amadeusz Kryze i dowiedz się, jak efektywnie zarządzać budżetem chmurowym.
Sprawdź pełen harmonogram na: https://www.sysopspolska.pl/
Obejrzyj pełne nagranie z prelekcji: QA x DevOps – Testing Shift-left – Amadeusz Kryze