DevOps to dzisiaj standard branży – badania pokazują, że w praktyki z zakresu rozwoju (eng. development) i eksploatacji (operations) jest zaangażowanych 83 proc. programistów. Co trzeci z nich wykorzystuje ciągłą integrację (CI) do automatycznego kompilowania i testowania zmian w kodzie, z kolei 29 proc. wskazuje, że automatyzuje wdrożenia kodu dzięki ciągłemu dostarczaniu (CD). Zupełnie nowe możliwości w tych i innych aspektach związanych z praktykami CI/CD przyniósł rozwój sztucznej inteligencji. Jak nowe narzędzia wpłyną na pracę deweloperów i specjalistów DevOps? Na to pytanie odpowiadają eksperci Linux Polska.
Sztuczna inteligencja dobrze odnajduje się w praktykach CI/CD
Sztuczna inteligencja znalazła szerokie zastosowanie w zasadzie w każdym aspekcie związanym z praktykami CI/CD. Narzędzia AI stanowią wsparcie w zakresie wykrywania opóźnień i błędów w działaniu systemu. Są w stanie identyfikować przyczyny incydentów, a także przewidzieć awarie wdrożenia, dzięki czemu przyspieszają ich identyfikację i naprawę.
Analiza wpływu AI na potoki CI/CD wykazała, że sztuczna inteligencja zmniejsza czas kompilacji średnio o 40 proc., współczynnik niepowodzeń zmian – o 53 proc., z kolei średni czas odzyskiwania – o 67 proc. Dane te pokazują, że głównymi korzyściami wynikającymi z zastosowania sztucznej inteligencji w praktykach CI/CD są oszczędność czasu i zmniejszenie ryzyka wystąpienia błędów w kodzie. Jak podkreśla Dariusz Świąder, Prezes Linux Polska, na tym właśnie polega istota praktyk CI/CD.
– Korzyści te są zasługą nie tylko poprawy współpracy pomiędzy obszarami development i operations – to także efekt automatyzacji wielu procesów. DevOps i CI/CD pomagają organizacjom ograniczyć koszty związane z wytwarzaniem i utrzymaniem oprogramowania, przy jednoczesnym zwiększeniu jego jakości. Pozwala to na szybsze wprowadzanie na rynek nowych produktów, łatwiejsze wykrywanie luk w kodzie, wdrażanie poprawek i sprawne dostarczanie nowych wersji oprogramowania – mówi Dariusz Świąder, Prezes Linux Polska.
Ekspert dodaje, że wdrożenie DevOps i CI/CD w organizacji jest jednak procesem, który wymaga konkretnej wiedzy i umiejętności.
– Wiemy, że wdrożenie DevOps i CI/CD oznacza spore zmiany w kulturze organizacyjnej, co wiąże się z naturalnymi obawami, czasem nawet oporem pracowników. Dlatego też proces transformacji rozpoczynamy od oceny wyjściowej firmy i wskazania obszarów, które wymagają usprawnienia. Dopiero na tej podstawie opracowujemy standardy związane z wytwarzaniem i wdrażaniem oprogramowania, a także rekomendujemy zastosowanie konkretnych praktyk branżowych – wyjaśnia Dariusz Świąder, Prezes Linux Polska.
AI ułatwia ocenę jakości kodu
Sztuczna inteligencja znalazła szerokie zastosowanie w procesie tworzenia i analizy jakości kodu, usprawniając i przyspieszając pracę deweloperów. Narzędzia AI skanują kod pod względem błędów, luk w zabezpieczeniach czy zgodności ze standardami. Są wykorzystywane również w fazie testowania potoków CI/CD – tworzą zróżnicowanie przypadki testowe na podstawie zmian w kodzie, identyfikują niewiarygodne testy, a także priorytetyzują przypadki testowe ze względu na ich znaczenie i wpływ. Nie powinno zatem dziwić, że według badań zastosowanie narzędzi opartych na uczeniu maszynowym zwiększa częstotliwość wdrażania średnio o 300 proc.
Jak wskazuje Paweł Straszkiewicz, DevOps Inżynier w Linux Polska, wszystkie te aspekty przekładają się na skrócenie procesu dostarczania oprogramowania i zwiększenie zaufania klientów.
– Automatyczne testowanie zmian to sposób na eliminację błędów jeszcze przed etapem wdrożenia oprogramowania. Zwiększenie jakości kodu ogranicza ryzyko wystąpienia awarii i błędów wdrożeniowych, co oczywiście wpływa na wzrost zadowolenia i zaufania klientów. Nie bez znaczenia jest tutaj szybkość wszystkich tych procesów, w końcu zamawiającym bardzo często zależy na czasie. Warto jednak mieć na uwadze, że każda firma jest inna i nie ma jednego przepisu na wdrożenie narzędzi CI/CD i testowania. W swojej pracy zwracamy uwagę na indywidualne potrzeby i możliwości organizacji. To dzięki nim możemy opracować najlepsze standardy składowania, kontroli i analizy kodu – wyjaśnia Paweł Straszkiewicz, Linux Polska.
AI ułatwia podejmowanie świadomych decyzji projektowych
Modele oparte na sztucznej inteligencji pomagają w podjęciu wielu decyzji projektowych – nie tylko tych związanych z jakością i bezpieczeństwem kodu. Narzędzia AI są wsparciem dla człowieka w zakresie priorytetyzacji poprawek na etapie powdrożeniowym, czego przykładem jest zautomatyzowana analiza nastrojów użytkowników. Działanie to dostarcza szybkiej informacji o obszarach, które wymagają ulepszenia.
Tomasz Dziedzic, Chief Technology Officer w Linux Polska nie ma wątpliwości, że sztuczna inteligencja będzie wyznaczała kierunek rozwoju CI/CD. Nie zabierze jednak pracy specjalistom – umożliwi im skupienie się na innych działaniach związanych z tworzeniem i utrzymaniem oprogramowania.
– Sztuczna inteligencja to jeden z kilku wiodących trendów w obszarze CI/CD – innymi są przykładowo rosnące znaczenie chmury obliczeniowej w wytwarzaniu oprogramowania oraz nacisk na bezpieczeństwo związane z rosnącą liczbą cyberataków. Nie należy obawiać się rosnącej roli automatyzacji i AI – to właśnie dzięki nim deweloperzy zyskują czas, który mogą przeznaczyć na stworzenie jak najlepszej architektury systemowej i struktury komponentów, a administratorzy mają szansę bardziej zaangażować się w zarządzanie infrastrukturą informatyczną. Usprawnienie procesów, optymalizacja wykorzystania zasobów czy ułatwienie wdrożenia zmian w dostarczanych rozwiązaniach to aspekty, na których organizacja i jej pracownicy mogą tylko skorzystać – podsumowuje Tomasz Dziedzic, Linux Polska.