Nadążyć za cyfrową transformacją, zdaniem eksperta Altimetrik Polska, szczególny nacisk należy położyć na 6 elementów tej metodologii.
Jeszcze kilka lat temu wiele firm traktowało DevOps jako krótkotrwały trend. Dziś staje się on podstawą stabilnego biznesu IT. Wdrożenie na stałe rozwiązań usprawniających pracę i pozwalających na zminimalizowanie ryzyka błędu ludzkiego rozważają zarówno korporacje jak i mniejsi rynkowi gracze. Zdaniem eksperta Altimetrik Polska, szczególny nacisk należy położyć na sześć elementów tej metodologii.
Metodyka DevOps zakłada, że dwa działy (rozwijania oprogramowania oraz zarządzania systemami) współpracują ze sobą. Takie połączenie ma przyczynić się do lepszej synergii i komunikacji. Ma także przełożyć się na dostarczenie klientowi lepszego produktu. W praktyce oznacza to szybsze tempo wdrażania i rozwiązywania incydentów, a także poprawę kluczowych wskaźników wydajności (KPI).
Do niedawna niewielu przedstawicieli biznesu traktowało DevOps poważnie. Być może dlatego, że gdy w 2008 roku DevOps pojawił się przestrzeni biznesowej, eksperci i firmy IT poznawali bliżej możliwości rozwiązań chmurowych i skupiali się na tym, jak tworzyć aplikacje, aby przede wszystkim były wydajne.
DevOps wpływa na poprawę standardów, ale wymaga dobrych praktyk
Z raportu „2021 State of DevOps” wynika, że ponad dekadę temu, ok. 10 proc. globalnych firm definiowało siebie jako takie, które posiadają wysoko rozwinięte praktyki DevOps. W roku 2021 odsetek ten wyniósł 18 proc.
Raport wykazał też, że organizacje, które wykorzystywały standardy DevOps, zauważły, że z czasem potrzebowały mniej czasu na wprowadzenie zmian lub odzyskanie danych (mniej niż godzinę), a ich wskaźnik niepowodzeń nie przekracza 5 proc. Okazało się również, że zespoły DevOps są bardziej skłonne do wypracowywania standardów – aż 87 proc. organizacji o wysokiej dojrzałości tych praktyk, posiada wspólne narzędzia, języki i metodologie. Są też bardziej skłonne do jasnego ustanawiania ról, planów i celów dla swojej pracy. Co więcej, dbają o to, aby członkowie zespołów byli zaznajomieni z odpowiedzialnością, która na nich spoczywa.
Ponieważ DevOps jest procesem, który ciągle ewoluuje i nie ma swojego horyzontu czasowego, aby dobrze działał, wymaga stosowania określonych praktyk. Piotr Trautman, DevOps Engineer z Altimetrik Polska, przytacza sześć dobrych praktyk, które dla biznesu są szczególnie istotne:
- Automatyzacja
Jest to podstawowa praktyka, na której opiera się metodologia DevOps. Zdaniem eks-perta Altimetrik Polska, w przypadku DevOps, automatyzacja powinna być stosowana na szeroką skalę. Jednym z powodów jest to, że maszyna, w odróżnieniu od człowieka, nie popełni błędu przeoczenia. W dodatku wiele zadań wykona o wiele szybciej od niego, jest także w stanie błyskawicznie wyłapać oraz reagować na pojawiające się problemy.
– Współcześnie, inżynierowie DevOps skupiają się głównie na praktykach CI/CD (Continuous Integration oraz Continuous Delivery, czyli ciągłej integracji i implementacji). Sektor integracji, budowania, testowania i wdrażania jest bowiem niezwykle ważny ze względu na możliwość częstszego dostarczania pewnych, przetestowanych i sprawdzonych zmian w kodzie – wyjaśnia Trautman.
Jak dodaje, zbiór praktyk CI/CD dąży także do testowania zbudowanych aplikacji. Testowanie automatyczne jest zaliczane do jego ważnych aspektów. Ogranicza ono ryzyko wprowadzenia niestabilnego lub “brudnego” kodu do środowiska produkcyjnego.
Automatyzacja infrastruktury pozwala nie tylko na tworzenie samych środowisk, ale także ich modyfikację. Nie musi to być tylko środowisko testowe, bo automatyzowane są również obszary deweloperskie i produkcyjne. Reprezentacja kodowa infrastruktury pozwala na prowadzenie historii w jakimś systemie dystrybucji kodu, co z kolei sprowadza się do standardów GitOps.
- Mikroserwisy i konteneryzacja
Mikroserwisy oferują inne podejście do tworzenia i wdrażania aplikacji, które jest do-stosowane do wymagań nowoczesnej chmury w zakresie elastyczności, skali i niezawodności. Aplikacja jest rozłożona na niezależne komponenty, które współpracują ze sobą w celu dostarczenia ogólnej funkcjonalności aplikacji.
Termin ten podkreśla, że aplikacje powinny być złożone z usług na tyle małych, aby odzwierciedlały niezależne problemy oraz implementowały pojedynczą funkcję.
Z kolei konteneryzacja jest izolowanym, przenośnym środowiskiem operacyjnym. Każdy uruchomiony kontener to praktycznie “pracująca” aplikacja (z własnym hostem – właścicielem). Posiada on wydzieloną przestrzeń roboczą oraz dodatkową izolację, która oddziela od innych tego typu jednostek. Kontener wygląda i zachowuje się jak nowo zainstalowane oprogramowanie, jednak jego skalowanie jest szybsze oraz bar-dziej efektywne względem zawartych w nim zasobów.
- Monitoring
Monitorowanie DevOps obejmuje nadzór nad całym procesem rozwoju od planowania, rozwoju, integracji i testowania, wdrożenia i eksploatacji. Wiąże się to z pełnym i bieżącym podglądem stanu aplikacji, usług i infrastruktury w środowisku produkcyjnym. Ważnymi elementami monitorowania aplikacji i usług są strumieniowanie w czasie rzeczywistym, odtwarzanie danych historycznych i wizualizacje.
– Ta praktyka pozwala zespołom szybko lub natychmiast reagować na każde pogorszenie jakości obsługi klienta. Co ważniejsze, umożliwia wykrywanie problemów na wczesnym etapie oraz ograniczanie przerw – podkreśla ekspert z Altimetrik Poland.
- GitOps
Jeśli chodzi o wygodę i wydajność, to tu odpowiedź jest jedna: GitOps. Są to standardy do zarządzania infrastrukturą i konfiguracjami aplikacji przy użyciu Git – systemu kontroli wersji typu open source. GitOps działa poprzez użycie Git jako Single Source of Truth (SSOT, czyli czynność przenoszenia wszystkich danych firmy do jednego miejsca) dla deklaratywnej infrastruktury i aplikacji.
W efekcie, GitOps umożliwia automatyczne zarządzanie dostarczaniem i wdrażaniem infrastruktury. Repozytorium zawiera cały stan systemu, dzięki czemu ślad zmian w stanie systemu jest widoczny i możliwy do skontrolowania.
- Serverless
Model serverless pozwala programistom budować i uruchamiać aplikacje bez konieczności zarządzania serwerami.
– Choć w tym modelu nadal istnieją serwery, to są one wyłączone z procesu tworzenia aplikacji. Dostawca usługi chmurowej zajmuje się rutynową pracą związaną z do-starczaniem, utrzymywaniem i skalowaniem infrastruktury serwerowej. Programiści mogą po prostu zapakować swój kod w kontenery do wdrożenia – podkreśla Piotr Trautman.
Co ważne, aplikacje modelu serverless mogą automatycznie skalować się w górę i w dół w zależności od potrzeb. Oferty od dostawców chmury funkcjonują na ogół w modelu on-demand, czyli na żądanie klienta. Dla firmy oznacza to, że funkcja, jeśli nie została uruchomiona, nic nie kosztuje.
- Cloud-native
Obecnie przy tworzeniu aplikacji kluczowe jest wykorzystanie narzędzi, które zapewniają elastyczność, skalowalność i odporność. Takim narzędziem jest z pewnością chmura obliczeniowa.
Cloud-native obejmuje różne techniki, których inżynierowie używają do tworzenia aplikacji. W przeciwieństwie jednak do tradycyjnej architektury dostosowanej do centrum danych w siedzibie firmy, chmura publiczna pozwala zredukować koszty. Zapewnia także lepszą integrację, pozwalając się skupić wyłącznie na rozwoju biznesu.
Przyszłość biznesu należy do DevOps
Ze względu na postępującą cyfryzację biznesu, w ciągu najbliższej dekady będziemy mieli do czynienia z transformacją na niespotykaną dotąd skalę. Istnieje duże prawdopodobieństwo, że za sterami tych inicjatyw coraz częściej będą stawać doświadczone zespoły DevOps, stając się nierzadko rdzeniem tych inicjatyw. Coraz więcej przedstawicieli biznesu zaczyna bowiem rozumieć, że aby budować aplikacje szybciej i sprawniej niż kiedykolwiek, warto sięgnąć po niedocenianą dotąd metodykę.
GSMA świętuje kolejną edycję MWC 2022 na żywo w Barcelonie i przedstawia wydarzenie w liczbach.