CI/CD małej firmie często wydaje się zbędnym luksusem. Ale gdy już go wdrożysz, łatwo popełnić błędy, które zamiast oszczędności przynoszą ukryte koszty. Oto 3 najczęstsze pułapki, które widzę w praktyce.
1. Zbyt rozbudowany pipeline – koszt utrzymania przewyższa korzyści
Małe zespoły często kopiują konfiguracje CI/CD z dużych firm, nie zastanawiając się, czy potrzebują 10 etapów testów i deployów na 5 środowisk. Każdy dodatkowy krok to czas maszyny, który płacisz – i każdy to kolejny punkt awarii.
Przykład: Klient wdrożył pipeline z 8 etapami (lint, testy jednostkowe, integracyjne, e2e, build, deploy na staging, testy wydajnościowe, deploy na produkcję). Średni czas przejścia: 45 minut. Deweloperzy czekali, a koszty runnerów CI wzrosły 3-krotnie w stosunku do tego, co było przed wdrożeniem.
Rozwiązanie: Zacznij od minimum: build + testy jednostkowe + deploy. Dodawaj etapy tylko wtedy, gdy udowodnisz, że łapią realne błędy. Używaj cache’ów i warunkowego uruchamiania (np. testy e2e tylko przy zmianach w konkretnych plikach).
2. Brak zarządzania artefaktami i zależnościami
Prawie każdy projekt korzysta z paczek npm, Composer, PyPI itp. W CI/CD popularnym błędem jest pobieranie tych samych paczek przy każdym uruchomieniu pipeline’u. To marnowanie czasu i transferu.
Przykład: Firma miała pipeline, który za każdym razem instalował zależności od zera. Build trwał 12 minut, z czego 8 minut na npm install. Po dodaniu cache’a dla node_modules czas spadł do 4 minut. Rocznie zaoszczędzili kilkaset dolarów na minutach CI.
Rozwiązanie: Skonfiguruj cache zależności. W GitHub Actions użyj actions/cache, w GitLab CI – cache:key. Pamiętaj też o czyszczeniu starych artefaktów – one też zajmują miejsce i kosztują.
3. Ignorowanie kosztów środowisk testowych
Małe firmy często uruchamiają osobne środowiska staging, testowe i deweloperskie, które działają 24/7. Każde z nich to koszt serwera lub kontenera. Często nie są wykorzystywane przez większość czasu.
Przykład: Startup utrzymywał 3 środowiska: dev (na AWS), staging (na DigitalOcean) i prod. Miesięczny koszt to około 200 dolarów. Staging był używany tylko podczas testów – średnio 2 godziny dziennie. Reszta czasu – martwy koszt.
Rozwiązanie: Używaj tymczasowych środowisk (ephemeral environments) – tworzonych na żądanie dla konkretnego brancha i usuwanych po deployu. Wdrożenie review apps (np. Heroku, GitLab Review Apps) może zredukować koszty o połowę.
Podsumowanie
CI/CD ma sens nawet dla małych firm, ale pod warunkiem, że nie przesadzasz z rozbudową, zarządzasz cache’ami i nie utrzymujesz martwych środowisk. Zanim dodasz kolejny etap, zadaj sobie pytanie: czy to przynosi realną wartość, czy tylko zwiększa koszty?


