Nodea — logo

Deploy

Deploy (także deployment, po polsku: wdrożenie) to proces przeniesienia nowej wersji aplikacji, strony internetowej lub usługi ze środowiska deweloperskiego na serwer docelowy — najczęściej produkcyjny — gdzie zaczyna ona obsługiwać prawdziwych użytkowników. Deploy obejmuje nie tylko skopiowanie plików, ale zwykle także instalację zależności, migracje bazy danych, przebudowę cache i restart usług.

Jak przebiega deploy?

Nowoczesny deployment jest zautomatyzowany w ramach pipeline'u CI/CD. Typowe etapy to:

  1. Build — pobranie kodu z repozytorium, instalacja zależności, kompilacja frontendu, zbudowanie artefaktu (np. obrazu Dockera).
  2. Testy — automatyczne testy jednostkowe i integracyjne blokują wdrożenie wadliwej wersji.
  3. Wdrożenie — przeniesienie artefaktu na serwer: przez rsync, kontener, paczkę lub symlink do nowego katalogu release.
  4. Czynności powdrożeniowe — migracje bazy, czyszczenie cache, przeładowanie procesów (np. PHP-FPM), health-check.

Strategie wdrażania

  • Rolling deploy — stopniowa podmiana instancji, bez przerwy w działaniu.
  • Blue-green — dwa identyczne środowiska; ruch przełącza się na nowe dopiero po weryfikacji, a powrót do starego trwa sekundy.
  • Canary — nowa wersja trafia najpierw do małego odsetka użytkowników.
  • Releases + symlink — każde wdrożenie ląduje w osobnym katalogu, a symlink wskazuje aktywną wersję; rollback to zmiana dowiązania.

Zastosowanie w praktyce

Sposób wdrażania zależy od infrastruktury: na hostingu współdzielonym deploy bywa prostym wgraniem plików przez SFTP lub Git, natomiast na serwerze VPS czy w klastrze kontenerów stosuje się pełną automatyzację z rollbackiem i monitoringiem. Dobrą praktyką jest wdrażanie małych zmian często — mniejsza paczka zmian to łatwiejsza diagnoza, gdy coś pójdzie nie tak — oraz utrzymywanie środowiska staging, które wiernie odwzorowuje produkcję. Kluczowa zasada: każdy deploy musi być powtarzalny i odwracalny, a wersje oznaczone w systemie kontroli wersji.

Powiązane pojęcia

Najczęstsze pytania

Czym różni się deploy od release?

Deploy to techniczne umieszczenie nowej wersji kodu na serwerze. Release to udostępnienie funkcji użytkownikom — dzięki feature flagom kod może być wdrożony na produkcję, ale wyłączony. Rozdzielenie tych pojęć pozwala wdrażać częściej i bezpieczniej.