DevOps (od Development i Operations) to kultura pracy i zestaw praktyk, które zrastają w jedno dwa zespoły tradycyjnie patrzące na siebie krzywo: programistów piszących kod i administratorów odpowiadających za to, żeby ten kod działał na produkcji. Celem jest dostarczanie oprogramowania szybciej, częściej i bez budzenia się w nocy do awarii. DevOps to nie stanowisko ani magiczne narzędzie — to sposób organizacji pracy, w którym automatyzacja, współodpowiedzialność i ciągła informacja zwrotna zastępują rzucanie kodu „przez mur” do innego działu.
Jak to działa w praktyce
Sercem DevOps są pipeline’y CI/CD (Continuous Integration / Continuous Delivery). Continuous Integration oznacza, że każdy commit automatycznie odpala buildy i testy, więc błąd wychodzi w kilka minut, a nie po tygodniu. Continuous Delivery dokłada do tego automatyczne wdrażanie na kolejne środowiska. Do tego dochodzi Infrastructure as Code (np. Terraform, Ansible), gdzie serwery i sieć opisujesz w plikach tekstowych zamiast klikać po panelach, oraz monitoring i logowanie, żeby wiedzieć, co się dzieje, zanim zadzwoni klient.
Filozoficznie DevOps stoi na trzech filarach często skracanych do People, Process, Tools — najpierw ludzie i komunikacja, potem proces, a narzędzia na końcu. Odwrócenie tej kolejności to klasyczna pułapka.
Konkretny przykład
Wyobraź sobie aplikację w Node.js trzymaną na GitHubie. Dodajesz plik workflow dla GitHub Actions, który po każdym git push uruchamia testy i — jeśli przejdą — buduje obraz Dockera i wypycha go na serwer:
npm test— testy jednostkowe odpalane automatyczniedocker build -t app:latest .— pakowanie aplikacji w obraz- wdrożenie na klaster Kubernetes przez
kubectl apply -f deployment.yaml
Od momentu wciśnięcia push do działającej nowej wersji mija kilka minut, a Ty nie logujesz się ręcznie na żaden serwer. To jest właśnie ten „szybko i niezawodnie”.
Częste mity i na co uważać
„Zatrudnimy DevOpsa i będzie DevOps.” Nie. DevOps to kultura całego zespołu, a nie jedna osoba, która klika w Jenkinsa. „DevOps to to samo co bycie adminem.” Też nie — chodzi o współpracę i automatyzację, a nie o przemianowanie stanowiska. Uważaj też na automatyzację bez monitoringu: szybkie wdrożenia bez wglądu w to, co się dzieje na produkcji, to wdrożenia szybko psujące się na produkcji. I pamiętaj — narzędzia bez zmiany sposobu myślenia zespołu niczego nie naprawią.
Pojęcia powiązane
CI/CD, Infrastructure as Code, konteneryzacja (Docker, Kubernetes), SRE (Site Reliability Engineering), GitOps, pipeline, monitoring i observability, oraz Agile, z którego DevOps wyrasta ideowo.