DevOps

Kultura i zestaw praktyk łączących zespoły programistów i administratorów w celu szybszego i niezawodnego dostarczania oprogramowania. Kładzie nacisk na automatyzację i współpracę.

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 automatycznie
  • docker 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.