Tento článek si klade za cíl přiblížit poslední vývoj v oblasti AI1 použité v kontextu DevOps. Další text se tedy specificky zaměřujena relativně úzkou, ale bouřlivě se rozvíjející doménu DevOps, nikoli na AI obecně. Vysvětlíme si nejprve základní definice v obouoblastech AI i DevOps, pak se zaměříme na důvody nasazení AI v DevOps a případy užití. Dále budeme diskutovat o výhodách,nevýhodách, rizicích a výzvách při nasazení AI a probereme, jak AI v DevOps nejlépe implementovat. Jedna kapitola budevěnována oblasti bezpečnosti a celý článek zakončíme odhadem budoucího vývoje a trendů.
DevOps ITSMS AIOps AI Automatizace
Úvod do problematiky
Poslední cca dva až tři roky znamenaly velké změny, a to nejenom v oblasti covidu, obrovské inflace, války na Ukrajině, ale hlavně v oblasti bouřlivě se rozvíjejících technologií. Jednou z nich je oblast AI. V posledních letech jsme zaznamenali nejen raketový nástup softwarových nástrojů v oblasti AI určených pro koncové uživatele (poskytované často zdarma), ale také rozvoj využití AI pro automatizaci a řešení rutinních úkolů ve velkých firmách (toto je nabízeno na komerční bázi).
Zahrnuje to nejen oblast technologickou (software, ale třeba i specializovaný hardware), ale hlavně změnu myšlení a fungování organizace, která AI uplatňuje. Velmi trefně to komentuje poradenská a konzultační firma Gartner ve své klíčové poznámce na konferenci ITExpo 2023. Ve svém dokumentu [1] Gartner glosuje nasazení AI jako změnu rozhraní mezi lidmi a stroji2. Generativní AI (dále jen Gen AI) znamená start rozsáhlé potenciální disrupce businessu3, která pro každou firmu přináší jak nové příležitosti, tak i hrozby. Je pak na managementu (primárně CEO či CIO), jakou roli AI přisoudí.
Definice
Abychom pochopili další text, uvádím některé klíčové definice v oblasti AI.
Pozn.: Definice patřící do oblasti metodik a nejlepších praktik (ITIL, DevOps, SRE, …) zde nejsou vysvětlovány, protože se předpokládá jejich znalost u čtenářů DSM. DevOps – viz [2].
1. Definice termínů používaných umělou inteligencí
Umělá inteligence (Artificial Intelligence/AI)
AI je oblast počítačové vědy zabývající se vývojem systémů, které jsou schopny provádět úkoly běžně vyžadující lidskou inteligenci, jako je uvažování, plánování nebo kreativita. Cílem AI je vytvářet počítačové programy nebo systémy, které dokáží přijímat data, analyzovat je, učit se z nich a přizpůsobovat se podle nových informací nebo podnětů. Jednotlivé části AI jsou uvedeny na Obr. 1.
AI zahrnuje různé techniky a přístupy včetně ML, neuronových sítí, expertních systémů, logického programování a mnoha dalších. AI má mnoho aplikací v různých odvětvích, jako jsou autonomní vozidla, zdravotní péče, finance, obchod, robotika a mnoho dalších.
Strojové učení (Machine Learning/ML)
ML je podoblast AI zabývající se vývojem algoritmů a technik, které umožňují počítačům „učit se“ z dat a získávat schopnost zlepšovat svůj výkon s rostoucím množstvím dat, aniž by tak byly explicitně naprogramovány.
Hluboké učení (Deep Learning/DL)
DL je podoblast AI, která se zabývá vytvářením a trénováním neuronových sítí s velkým počtem vrstev (tzv. hlubokých neuronových sítí). Hlavním cílem DL je naučit počítače automaticky extrahovat vysokoúrovňové funkce nebo reprezentace dat pomocí více vrstev transformací.
Slabá umělá inteligence (Weak AI)
Také nazývaná úzká AI je zaměřena na konkrétní úkoly a oblasti, jako je rozpoznávání řeči, překlad jazyka, doporučování produktů nebo autonomní řízení vozidel. Slabá AI není schopna obecné inteligence nebo porozumění různým úkolům mimo své konkrétní oblasti.
Obr. 1: komponenty AI
Pozn.: Slabá AI se poměrně často používá v oblasti DevOps.
Silná umělá inteligence (Strong AI)
Také známá jako obecná AI (Artificial General Intelligence/ AGI) je teoretický model, který by byl schopen porozumění, učení a řešení úkolů na stejné úrovni jako lidské bytosti. AGI by byla schopna aplikovat své znalosti na širokou škálu úkolů a prostředí, nikoli jen na jednu konkrétní oblast.
Super inteligence (Superintelligence)
Je úroveň AI, která by překonala intelektuální schopnosti nejchytřejších lidských bytostí ve všech oblastech včetně tvůrčího myšlení, vynalézavosti a rozumování. Tento koncept je často diskutován v kontextu budoucího vývoje AI. Pro oblast DevOps se nepoužívá.
Generativní umělá inteligence (Generative AI, Gen AI)
Generativní AI je podkategorií AI, která se zaměřuje na tvorbu nových dat, obrazů, zvuků nebo textu na základě vzorů a znalostí z dat, která byla v minulosti zpracována. Tímto způsobem generativní AI vytváří nové obsahy, které nejsou přímo závislé na existujících datech, ale jsou odvozeny z jejich struktury a vzorů. Konvenční AI modely jsou zaměřeny na klasifikaci, predikci nebo optimalizaci na základě existujících dat, zatímco generativní AI se zaměřuje na tvorbu nových dat. Gen AI může být použita pro generování obsahu, syntézu obrazů, tvorbu textu, nebo dokonce pro generování hudby a uměleckých děl. Pro oblast DevOps se nepoužívá nebo pouze omezeně v oblasti podpůrných SW.
Velký jazykový model (Large Language Model/LLM)
Jedná se o algoritmický model AI, který je vycvičen na obrovském množství textových dat v různých jazykových verzích a je schopný porozumět a generovat text podobný lidskému uvažování. Pozn.: Existuje také jednoduchý jazykový model (Simple Language Model/SLM).
2. Definice z oblasti Dev(Sec)Ops/ITSM
Pozn.: Záměrně zde používám dva vzájemně do jisté míry příbuzné a komplementární termíny – DevOps a ITSM, resp. abychom byli přesnější DevOps a ITIL.
ITSM (IT Service Management – správa služeb IT)
Sada specializovaných organizačních schopností zajišťujících hodnotu pro zákazníky ve formě služeb IT. DevOps je zkratka pro „Development“ (vývoj) a „Operations“ (provoz). Jedná se o metodiku, která spojuje vývojáře softwaru (development) a provozní pracovníky (operations) do jednoho týmu s cílem zlepšit a zrychlit proces vývoje softwaru a nasazení aplikací do provozu.
Jak ITSM, tak i DevOps mohou produkovat služby (design, provoz a podpora) a poskytovat je interním a externím zákazníkům. Tradičně se však ITSM odkazuje na procesní rámec ITIL V3 a používá se v kontextu velkých firem typu Enterprise. Naopak DevOps či DevSecOps se odkazuje na metodiky Lean IT a Agile a používá se spíše v kontextu malých firem typu Unicorn.
Pozn.: V poslední verzi ITIL 4 jsou tyto rozdíly mezi ITSM a DevOps smazány a používají se hodně záměnným způsobem. Při implementaci ITSM se může použít buďto ITIL, anebo DevOps jako nejlepší praktika. Můžeme také použít určitý hybrid obou přístupů. Další detaily např. zde [3].
Při automatizaci se hodně využívá AI – používá se termín AI-augmented DevOps, tedy něco jako DevOps rozšířený o prvky AI.
Umělá inteligence pro provoz IT (Artificial Intelligence for IT Operations/AIOps)
AIOps je zkratka pro nasazení AI pro provoz IT. Jedná se o oblast IT, která využívá techniky AI, ML a automatizace k optimalizaci správy a provozu IT infrastruktury a služeb. AIOps integruje data a informace z různých zdrojů včetně logů, metrik, událostí, topologií a chování systémů, a využívá je k poskytování cenných informací pro IT týmy. Tím umožňuje rychlé reakce na změny a potenciální problémy v IT prostředí a přispívá ke zlepšení celkového výkonu a dostupnosti IT služeb. AIOps je také schopen identifikovat a odstraňovat zbytečné rušení, což může vést k nižším nákladům na provoz a údržbu IT infrastruktury.
Operace strojového učení (Machine learning operations/MLOps)
MLOps je sada praktik, které automatizují a zjednodušují řídicí toky (workflow) ML a jejich rozmisťování. Jedná se v podstatě o analogii využití CI/CD pipeline pro účely nasazování nových verzí ML, nikoli běžného aplikačního softwaru.
Nasazení AI
AI lze použít pro podpůrné nástroje DevOps/ITSM různým způsobem.
1. Stávající stav AI v DevOps
Aktuální stav rutinního využívání AI v oblasti DevOps je stále ještě ne úplně prozkoumanou a odzkoušenou oblastí. Máme mnoho organizací experimentujícími s různými způsoby, jak integrovat AI do jednotlivých fází cyklu DevOps. Jedná se jak o zákaznické organizace, které pomocí DevOps a AI4 řeší vývoj a dodávku zákaznického softwaru, ale také firmy dodávající podpůrné softwarové nástroje (specificky v oblasti CI/CD či IaC), nyní nově integrované s technologií AI.
Typy AI používané v DevOps
- Machine Learning/ML.
- Deep Learning/DL.
- Natural Language Processing/NLP – práce s AI pomocí přirozeného jazyka.
- Computer Vision.
- Chatbots – vývojáři mohou komunikovat s chatboty, což by mělo urychlit řešení problémů.
- Virtuální asistenti – lze automatizovat monotónní operace, jako je kontrola žurnálových souborů či modifikace kódu.
Nasazení AI podle účelu
- Generativní – generuje nová data.
- Prediktivní – umožňuje předvídat trendy.
- Hluboké učení (DL) – strojové učení v neurální síti.
- Klasifikace – určena pouze k účelům klasifikace vstupních dat.
- Regrese – cílem regrese je najít nejlépe padnoucí přímku nebo křivku, která představuje vztah mezi nezávislými a závislými proměnnými zadanými ve vstupních datech.
Nasazení různých typů modelů v AI
- Konzumování generativního modelu jako zabudované API u nezávislého dodavatele SW (ISV/Independent SW Vendor), např. ChatGPT prostřednictvím O365.
- Zabudování API volajícího modulu do zákaznických aplikací, např. ChatGPT API.
- Rozšíření existujícího Gen AI LLM.
- Vybudování modelu na míru.
2. Integrace AI do DevOps/ITSM
Z pohledu konkrétního použití AI v nástrojích DevOps/ITSM uvažujeme o následujících třech formách integrace:
Pokládání dotazů na uživatelské (zákaznické) úrovni
Tohle je asi klasika notoricky známá z nasazení nástrojů typu OpenAI ChatGPT nebo Microsoft Copilot [4]. Jedná se o čistě manuální přístup, AI není do DevOps v tomto případě nijak integrovaná. Nasazení AI zpravidla znamená, že ji používáte jako zdroj dat v rámci správy znalostí (Knowledge management), případně si necháváte radit známá řešení (permanentní nebo dočasná5 řešení), popř. provádíte rozhodování v souladu s tím, co vám doporučuje AI.
Integrace funkcí AI dodávaných třetími stranami do podpůrného softwaru pro DevOps
V praxi tato forma odpovídá situaci, kdy určité funkční bloky podpůrného softwarového nástroje jsou pomocí různých forem API otevřeny a umožňují načítat data od externích dodavatelů či volat pro specifické funkce specifický software třetích stran6.
Kompletní zakomponování zpravidla Weak AI do podpůrného softwaru pro DevOps
V tomto případě se jedná o zabudování funkcí AI přímo do kódu těchto aplikací. Buďto jde o situaci, kdy je sem zabudován i specifický model LLM, anebo je zajištěna integrace na systémy AI třetích stran.
3. Proč nasadit AI v DevOps?
Průzkum GlobalSecOps 2022 odhalil pozoruhodnou statistiku – procento postupů DevOps využívajících AI a ML se téměř zdvojnásobilo z pouhých 16 % v roce 2020 na 24 % v roce 2022. Toto rychlé přijetí podtrhuje, jak zásadní se AI pro pokročilé DevOps stává. [5]
Stávající stav AI v oblasti DevOps je stále v nějakém brzkém stádiu7, ale už jsou na trhu příklady firem, které vidí reálné přínosy AI. Ta se stává postupně sofistikovanější disciplínou a bude se pozicovat do role nástroje, který je nezbytný pro další rozvoj organizace a zachování její konkurenční schopnosti na rychle se rozvíjejícím trhu.
Existují dvě kategorie důvodů nasazení AI – businesový a technický (IT):
- Businesové výzvy – příklady:
- Redukce chybějících znalostí a lidí (jak v businessu, tak i IT).
- Zlepšení zákaznické spokojenosti – CX.
- Redukce nákladů.
- Zvýšení výsledné kvality produktů jako konkurenční výhody.
- Technické výzvy – příklady:
- Zvýšení kvality kódu.
- Zvýšení frekvence releasů.
- Potvrzená znalost/automatizace nejlepších praktik.
AI v DevOps nabízí několik přesvědčivých důvodů pro její přijetí. Za prvé si DevOps klade za cíl dosáhnout maximální efektivity prostřednictvím automatizace. Technologie AI/ ML vynikají v automatizaci opakujících se úloh. Začleněním AI/ML do pracovních postupů DevOps mohou týmy těžit z členů „virtuálních týmů8“ dedikovaných konkrétním úkolům, kteří věnují mimořádnou pozornost detailům a mají schopnost neúnavně pracovat bez přestávek.
Dalším z primárních důvodů pro přijetí AI v oblasti DevOps je redukce zpoždění softwarových releasů. Typicky týmy DevOps detekují kritické, ale časově velmi náročné kroky, jako je testování, revize kódu či vývoj kódu jako největší příčiny zpoždění. AI/ML zde může sehrávat důležitou roli v zjednodušování procesů (automatizace, optimalizace, eliminace zbytného), a dosahovat tak rychlejších a přesnějších výsledků.
AI v DevOps navíc umožňuje týmům využívat pokročilé analytické a prediktivní schopnosti. Programy AI se mohou podívat na spoustu informací, najít vzory a poskytnout užitečné informace pro rozhodování. Tento přístup založený na datech umožňuje týmům řešit potenciální problémy, lépe využívat zdroje a činit chytrá rozhodnutí v průběhu procesu vývoje softwaru.
Nástroje založené na AI mohou také zlepšit bezpečnostní postupy v DevOps. Využitím algoritmů ML lze zranitelnosti
identifikovat, stanovit priority a účinněji je řešit. AI může pomoci automatizovat detekci zranitelnosti, označovat potenciální hrozby a pomáhat při nápravných opatřeních, čímž posílí celkovou pozici zabezpečení softwarových produktů. Příkladem může být pohled známé firmy GitLab [6].
Pozn.: Této problematice by se měl věnovat separátní díl tohoto článku v některém z dalších čísel DSM.
Mezi výhody, které jsme viděli, patří zlepšená efektivita, snížení chyb a lepší spolupráce a komunikace.
Jednou z nejrozšířenějších aplikací AI v DevOps je automatické testování a nepřetržitá integrace (Continuous Integration/ CI). Nástroje pro automatizaci testování využívající AI dokážou automaticky identifikovat a spouštět testovací případy, což snižuje čas a úsilí potřebné pro ruční testování. To může vést k rychlejším cyklům releasů a lepší kvalitě softwaru.
Další oblastí, kde se v DevOps používá AI, je monitorování a analýza protokolů. Monitorovací nástroje využívající AI dokážou automaticky detekovat a diagnostikovat problémy, čímž zkracují čas potřebný k identifikaci a řešení problémů. Nástroje pro analýzu protokolů poháněné AI mohou navíc automaticky klasifikovat, seskupovat a extrahovat poznatky z dat protokolů, které lze použít k řešení problémů.
AI se také používá v oblasti samo-opravných a samo-optimalizačních systémů. Systémy s AI dokážou automaticky detekovat poruchy a zotavit se z nich, čímž zkracují dobu výpadků a zlepšují dostupnost systémů.
Kromě toho mohou systémy s AI automaticky optimalizovat výkon analýzou dat o využití systému a předpovědí budoucích požadavků na zdroje (prediktivní AI).
Kromě těchto specifických aplikací mohou organizace používat univerzální platformy a nástroje AI k její integraci do svého procesu DevOps.
4. Využití AI v oblasti DevOps/ITSM
Než začneme, musím vysvětlit, proč používám termíny DevOps a ITSM víceméně záměnným způsobem (viz Box 1). Úplně prapůvodně tvořil DevOps (datujeme jej od cca roku 2013) alternativu k ITIL V3. V roce 2019, kdy vznikl ITIL 4, však došlo ke sloučení těchto dvou přístupů do jednoho.
Podle celé řady firem působících v oblasti DevOps bude v roce 2024 velká většina DevOps týmů používat jak software pro vývoj a dodávku aplikací, tak i infrastruktury se zabudovanými prvky AI v oblasti platforem AIOps. Koncept „provozu“ průběžné dodávky (Continuous Delivery) se vyvinul v živoucí přístup k vytváření softwaru a jeho distribuci soustředící se na automatizaci týmové práce a konstantní zlepšování. To umožňuje organizacím dodávat softwarové produkty efektivně a konsistentně. Jak se AI stává stále populárnější, týmy DevOps ji používají za účelem lepší a rychlejší práce.
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
Použité zdroje:
[ 1 ] Gartner: We Shape AI, AI Shapes Us:2023 IT Symposium/Xpo Keynote Insights
[ 2 ] Data Security Management – série článků na DevOps – 2018/3, 2018/4, 2019/1, 2019/2, 2019/3, 2019/4, 2020/1 a 2020/2
[ 3 ] Upguard – https://www.upguard.com/blog/itil-vs-devops; Atlassian – https://www.atlassian.com/itsm/itil/devops-vs-itil; Freshworks – https://www.freshworks.com/explore-ex/devops-vs-itil/
[ 4 ] Microsoft Copilot Cheat Sheet: Benefits, Price and Versions (techrepublic.com)
[ 5 ] Agilemania – How can DevOps take advantage of artificial intelligence? Agilemania – https://agilemania.com/advantages-of-ai-in-devops#:~:text= You%20can%20use%20AI%20to,resource%20management%2C%20and%20enhancing%20security.
[ 6 ] GitLab – Why AI in DevOps is here to stay (gitlab.com)
Poznámky pod čarou:
- Artificial Intelligence – umělá inteligence
- Zde primárně míněny počítače
- Změna obchodních procesů
- Zpravidla open-source softwarové nástroje pro CI/CD a veřejně dostupné LLM, popř. modely používající specifická firemní a/nebo zákaznická data.
- Workaround
- Včetně volání LLM
- Dle společnosti Gartner je AI na pomyslném vrcholu diagramu AI Hype.
- Míněn agent AI