Automatyzacja wdrożeń z Claude Code
Twój zespół właśnie zmergował dużego feature brancha. Deploy na staging poszedł gładko, ale produkcja wymaga innego tagu Docker, trzech zmiennych środowiskowych, których nigdy nie pamiętasz, migracji bazy danych, która musi się wykonać przed startem nowego kodu, i powiadomienia na Slacku po zakończeniu. Ostatnim razem ktoś pomylił tag obrazu i wdrożył build z ubiegłego wtorku. Poprzednim razem migracja uruchomiła się po deployu i użytkownicy widzieli błędy 500 przez jedenaście minut. Wdrożenia nie powinny wymagać listy kontrolnej przyklejonej do monitora.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Powtarzalny workflow promptów do generowania skryptów deploy, Dockerfile’ów i pipeline’ów GitHub Actions z Claude Code
- Prompty do skopiowania generujące konfiguracje specyficzne dla środowisk, kroki wdrożenia blue-green i automatyczne wyzwalacze wycofania
- Standard wdrożeniowy sterowany przez
CLAUDE.md, którego Claude Code przestrzega za każdym razem, aby nowi inżynierowie otrzymywali taką samą jakość od pierwszego dnia
Generowanie produkcyjnego Dockerfile
Dział zatytułowany „Generowanie produkcyjnego Dockerfile”Większość Dockerfile’ów dla Node.js zaczyna się jako kopiuj-wklej ze Stack Overflow i nigdy się nie poprawia. Claude Code potrafi wygenerować zoptymalizowany, wieloetapowy build bezpośrednio z twojego package.json i struktury źródłowej.
Claude Code czyta pliki twojego projektu, wykrywa czy używasz npm, yarn czy pnpm na podstawie obecnego lockfile’a i tworzy Dockerfile dostosowany do twojego faktycznego stacku — nie generyczny szablon. Jeśli masz katalog prisma/, doda krok Prisma generate; jeśli masz folder public/, skopiuje statyczne zasoby we właściwe miejsce.
Po wygenerowaniu pliku przez Claude, zweryfikuj go lokalnie:
docker build -t myapp:test . && docker run --rm -p 3000:3000 myapp:testNastępnie poproś Claude Code o iterację:
The image is 340 MB. Reduce the size by switching the runtime stage to distroless or alpine with only the minimal packages needed.Ta pętla — generuj, buduj, mierz, poprawiaj — to moment, w którym Claude Code naprawdę błyszczy. Każda iteracja trwa sekundy, ponieważ Claude ma już pełny kontekst.
Skryptowanie wdrożeń w wielu środowiskach
Dział zatytułowany „Skryptowanie wdrożeń w wielu środowiskach”Rzeczywiste projekty mają co najmniej trzy środowiska: development, staging, produkcja. Różnice konfiguracyjne między nimi są stałym źródłem błędów.
Claude Code tworzy skrypt shellowy obsługujący cały cykl życia. Co kluczowe, kończy działanie wcześniej w przypadku błędu zamiast kontynuować i tworzyć stan połowicznego wdrożenia. Możesz przekierować wyjście tego skryptu na Slacka lub do logu CI.
Dla zespołów używających infrastructure-as-code, poproś Claude Code o wygenerowanie odpowiednika w Terraform lub Pulumi:
Convert this deploy.sh approach into a Pulumi TypeScript program that manages the same three environments as stacks. Use the aws and kubernetes providers.Pipeline GitHub Actions od zera
Dział zatytułowany „Pipeline GitHub Actions od zera”Claude Code ma dogłębną wiedzę o składni GitHub Actions, włącznie z reużywalnymi workflow, regułami ochrony środowisk i kontrolą współbieżności. Zamiast kopiować plik YAML z innego repozytorium i liczyć, że zadziała, opisz czego potrzebujesz.
Claude Code generuje kompletny plik workflow. Kilka rzeczy do zweryfikowania po wygenerowaniu:
- Sprawdź, czy blok
permissionszawieraid-token: writedla OIDC ipackages: writedla GHCR. - Potwierdź, że blok
environment: productionjest obecny w jobie wdrażania produkcyjnego — to właśnie włącza bramkę zatwierdzenia ręcznego w GitHub. - Zweryfikuj, że grupa współbieżności używa
${{ github.workflow }}-${{ github.ref }}, aby deploye PR i deploye main nie blokowały się nawzajem.
Wdrożenia blue-green
Dział zatytułowany „Wdrożenia blue-green”Wdrażanie bez przestoju brzmi świetnie, dopóki nie musisz sam zaimplementować przełączenia ruchu. Claude Code potrafi wygenerować pełny skrypt orkiestracji blue-green włącznie z walidacją kondycji.
We run two Kubernetes deployments: myapp-blue and myapp-green. Write a blue-green deploy script that determines which deployment is currently receiving traffic from the myapp Service, deploys the new image to the inactive deployment, waits for all pods to pass readiness checks, switches the Service selector to the new deployment, then monitors error rates for 2 minutes via our Prometheus endpoint. If the error rate exceeds 1%, switch traffic back to the old deployment and exit 1.Kluczowa kwestia to poinformowanie Claude Code o twoim endpoincie monitoringu. Bez tego skrypt po prostu przełączyłby ruch i liczył na najlepsze. Z nim dostajesz automatyczne wycofanie oparte na rzeczywistych danych.
Procedury wycofania
Dział zatytułowany „Procedury wycofania”Każdy skrypt deploy powinien mieć odpowiadający mu rollback. Claude Code potrafi wygenerować oba jednocześnie.
Ten wzorzec — zapisywanie stanu przed jego zmianą — to coś, co doświadczeni inżynierowie budują instynktownie, ale juniorzy często pomijają. Claude Code uwzględnia to, gdy prosisz o parę rollback, ponieważ styl w twoim CLAUDE.md (lub sam prompt) jawnie definiuje to wymaganie.
Kodowanie standardów w CLAUDE.md
Dział zatytułowany „Kodowanie standardów w CLAUDE.md”Prawdziwa siła Claude Code w kontekście wdrożeń to spójność. Dodaj standardy wdrożeniowe do CLAUDE.md swojego projektu:
## Deployment Standards
- All Docker images must use multi-stage builds with a non-root user- Production deploys require a health check validation step- Every deploy script must have a corresponding rollback script- Database migrations run BEFORE the new code is deployed- All deploy scripts exit on first error (set -euo pipefail)- Image tags use git SHA, never 'latest' in production- Secrets come from environment variables, never hardcodedZ tymi regułami na miejscu, każdy prompt do Claude Code dotyczący wdrożenia automatycznie dziedziczy te ograniczenia. Nowy inżynier pytający “create a deploy script for the payments service” otrzymuje taką samą jakość wyników, jaką napisałby senior.
Gdy coś idzie nie tak
Dział zatytułowany „Gdy coś idzie nie tak”Claude generuje Dockerfile, który działa lokalnie, ale nie w CI. Zazwyczaj dzieje się tak, ponieważ runner CI ma inną architekturę (ARM vs x86). Dodaj --platform linux/amd64 do kroku budowania lub poproś Claude Code o dodanie wieloplatformowego builda docker buildx.
Skrypt deploy kończy się sukcesem, ale aplikacja crashuje na starcie. Claude Code nie widzi zachowania runtime. Po wygenerowaniu skryptu deploy zawsze uruchom go w środowisku nieprodukcyjnym. Dodaj krok smoke testu (curl na health endpoint, sprawdź kod wyjścia) i poproś Claude o dodanie go, jeśli tego nie zrobił.
Workflow GitHub Actions spala zbyt wiele minut. Claude Code jest dokładny, co czasami oznacza uruchamianie testów sekwencyjnie, gdy mogłyby być równoległe. Powiedz Claude o swoim ograniczeniu: “Our GitHub Actions budget is limited, so use a matrix strategy and run lint/type-check/test as separate jobs that start simultaneously.”
Brakuje zmiennych środowiskowych na produkcji. Claude Code generuje odwołania do zmiennych środowiskowych, ale nie może zweryfikować, czy istnieją w twoim celu wdrożeniowym. Po wygenerowaniu skryptu deploy uruchom grep -oP 'DOLLAR_SIGN{?\K[A-Z_]+' deploy.sh (zastępując DOLLAR_SIGN rzeczywistym znakiem), aby wylistować wszystkie używane zmienne i potwierdzić, że każda jest ustawiona.