DevOps – co to jest?
DevOps to podejście do tworzenia oprogramowania, które łączy działania związane z rozwojem (Dev, ang. Development) oraz eksploatacją (Ops, ang. Operations) w celu ułatwienia współpracy między zespołami odpowiedzialnymi za te etapy. DevOps opiera się na zasadach komunikacji, współpracy i integracji, które mają na celu przyspieszenie procesu dostarczania oprogramowania, zwiększenie jego jakości oraz poprawę doświadczeń użytkowników.
W praktyce DevOps często obejmuje automatyzację procesów, monitorowanie systemów, ciągłą integrację (CI, ang. Continuous Integration) i ciągłe wdrażanie (CD, ang. Continuous Deployment).
W tradycyjnym podejściu programista zwykle pracuje samodzielnie nad kodem. Po napisaniu kodu lokalnie na swoim komputerze programista przekazuje go do zespołu administracyjnego, który zajmuje się konfiguracją serwerów, bazy danych i innych infrastrukturalnych aspektów.
Jednak w DevOpsie współpraca między programistami a zespołem administracyjnym jest znacznie bliższa i bardziej zintegrowana. Od samego początku projektu wszyscy członkowie zespołu, w tym programiści i administratorzy, spotykają się razem, aby omówić wymagania aplikacji oraz infrastruktury, na której będzie działać. Zespoły DevOpsowe są odpowiedzialne zarówno za rozwój oprogramowania, jak i utrzymanie infrastruktury/aplikacji na produkcji.
Skrócenie procesu integracji (CI), który polega na częstym, regularnym włączaniu zmian do głównego repozytorium i każdorazowej automatycznej weryfikacji, poprzez wykonanie testów pozwala na szybką walidację. Udany proces CI oznacza, że nowe zmiany w kodzie aplikacji są regularnie budowane, testowane i scalane we wspólnym repozytorium. Jest to rozwiązanie problemu jednoczesnego tworzenia zbyt wielu gałęzi aplikacji, które mogą kolidować ze sobą.
„CD” w CI/CD odnosi się do ciągłego dostarczania i/lub ciągłego wdrażania, które są powiązanymi pojęciami, które czasami są używane zamiennie. Ciągłe dostarczanie zwykle oznacza, że zmiany programisty w aplikacji są automatycznie testowane pod kątem błędów i przesyłane do repozytorium, gdzie mogą być następnie wdrażane w działającym środowisku produkcyjnym. Ciągłe wdrażanie (drugi możliwy „CD”) może odnosić się do automatycznego uwalniania zmian programisty z repozytorium do produkcji, gdzie jest to użyteczne dla klientów. Rozwiązuje problem z ręcznymi procesami, które spowalniają dostarczanie aplikacji.