Artikel

Ta DevOps till nästa nivå med artificiell intelligens (AI)

De snabbt föränderliga affärsekosystemen, regulatoriska miljöer och konsumentanpassningen av IT-mandat har förbättrat vårt IT-systems flexibilitet, säkerhet och motståndskraft som aldrig förr.

Hittills har vi sett artificiell intelligens (AI) förändra alla aspekter av verksamheten och verksamheten, de underliggande IT-systemen och utvecklingsprocesserna. Även om SDLC-processen redan effektiviseras och accelereras med hjälp av Agile och DevOps, kvarstår utmaningar kring rådande tankesätt och kompetensluckor för att uppnå hyperautomatisering och konsekvent dra nytta av klassens bästa tekniska praxis.

Intressant nog kan AI och maskininlärning (ML) komma till undsättning genom att fånga stora bitar av data som genereras av olika mjukvarutekniker, inklusive CI/CD-verktyg för att skapa modeller och upptäcka mönster. Dessa modeller kan användas för att lokalisera anomalier, förutsäga misslyckanden och tillhandahålla åtgärdande, vilket gör det möjligt för oss att göra ett kvanthopp mot att bygga högpresterande autonoma system. 

Låt oss titta på hur olika stadier av DevOps kan dra nytta av AI:

1. Kontinuerlig planering

Affärsintressenter förväntar sig att applikationer ger ny funktionalitet och löser problem snabbt. Kontinuerlig planering säkerställer att input tas emot i olika strukturerade och ostrukturerade former, inklusive funktions- eller tjänsteförfrågningar, problembiljetter, användarfeedback, undersökningar och marknadsanalyser. Dessa indata utvärderas ständigt, omvandlas till användarberättelser och flyttas till produktbackloggen.

Natural Language Processing (NLP) kan utnyttjas för att tolka ostrukturerade indata som kan komma via e-post, röstmeddelanden, samtal till agenter och kommentarer på webbplatsen. Det hjälper bättre att fånga användarens krav och smärtpunkter med relevant avsikt. Vidare kan dessa indata aggregeras och sammanfattas för att ge insikter till produktägare och andra företagsintressenter, vilket gör det möjligt för dem att planera och prioritera funktioner och buggfixar för efterföljande utgåvor.

 

2. Kontinuerlig integration

Det här steget involverar att integrera kod från olika utvecklare och generera inkrementella builds regelbundet för att minimera risken. En chatbot med kapacitet för Natural Language Generation (NLG) hjälper till att trigga bygger på efterfrågan och skicka anpassade varningar och aviseringar vid problem eller misslyckanden. Vidare kan historiska data från tidigare kodbekräftelser, konstruktioner och genererade loggar analyseras för att förstå mönster och skapa hot spots för att undvika liknande fallgropar i framtiden. Statisk kodanalys och enhetstestning är två andra viktiga aktiviteter som kan dra nytta av AI. När kodanalys har utlösts i bakgrunden och slutförts efter att en utvecklare har begått koden, kan resultaten matas in i en konversationsmotor. Den kan sammanfatta resultaten med hjälp av en textsammanfattningsmotor som konverterats till röst, vilket vägleder utvecklaren att förbättra kodkvaliteten före testning. 

 

3. Kontinuerlig testning

AI kan tillämpas effektivt i kvalitetssäkringsprocessen (QA) för att utöka mindre uppenbara men kritiska hjälpaktiviteter utöver testkörning och rapportering. Testingenjörer kan till exempel kompletteras med en intelligent assistent för att klassificera defekter och detektera eventuella dubbletter automatiskt under testkörningen. Detta kan avsevärt optimera defektutlösningsprocessen, som annars är besvärlig och tidskrävande.

För misslyckade tester kan loggar analyseras för att upptäcka återkommande mönster, skapa och träna modeller för att förutsäga orsakerna till fel i framtida testkörningar. För system i produktion, där de flesta testfall redan är tillgängliga, kan NLP användas för att konvertera dessa testfall till skript som direkt kan konsumeras av populära automatiserade testramverk som Selenium eller Appium. Vidare kan liknande tester grupperas i kluster baserat på mönster som härrör från semantisk likhet och historia av framgång eller misslyckande för att spara exekveringstid och optimera regressionstestning.

 

4. Kontinuerlig driftsättning

Tekniken spelade en avgörande roll för automatisering av programvarudistribution från den tid då distributionsjobben utlöstes manuellt med handskrivna skript till denna dag och åldern för en automatiserad flerstegsinstallation med ett klick. Trots detta framsteg förblir misslyckade och suboptimala implementeringar med frekventa återställningar ett problem för många organisationer som leder till försenade lanseringar och förlorade intäkter. AI kan vara avgörande för att hantera komplexiteten i implementeringar och minska felfrekvensen.

Till exempel kan ontologier för en organisations infratillgångar, inklusive mjukvara, databaser och hårdvara, skapas för olika miljöer som dev-test, iscensättning och produktion. Det är möjligt att använda en kombination av ämnesexpertens kunskap, Configuration Management Databases (CMDB) och nätverksupptäcktsverktyg. System- och applikationsspecifika loggar som genererats under tidigare implementeringar kan lagras, analyseras och analyseras tillsammans med ontologielement för att förutsäga möjliga fel i framtida implementeringar. Dessa misslyckanden kan jämföras med faktiska utbyggnadsresultat för att identifiera nya mönster baserat på vilka lärdomar som kan tillämpas för att vidta förebyggande åtgärder för att göra framtida driftsättningar mer förutsägbara och tillförlitliga.

 

5. Kontinuerlig övervakning och återkoppling

Genom att övervaka produktionsutgåvor kan produktägare, kvalitetssäkring och utvecklingsteam förstå hur applikationerna fungerar och används. Enorma data i form av varningar, incidenter, loggar, händelser och mätvärden genereras från applikationer, beroende system, verktyg och andra nätverkskomponenter. AI kan hjälpa till att generera insikter från denna stora datapool genom att skapa utbildade modeller med hjälp av övervakat och oövervakat lärande. Dessa modeller kan hjälpa till att identifiera avvikande beteende, som kan orsaka potentiella sårbarheter och misslyckanden.

Dessutom kan explicit feedback om problem som slutanvändare möter erhållas med hjälp av olika kanaler som e-post, textmeddelanden och röstbaserade interaktiva konversationer. Denna feedback och användningsmönster kan bearbetas för att utföra sentiment- och användbarhetsanalyser bättre samtidigt som man förstår kundens upplevelse av produkten eller tjänsten. Så småningom kan resultatet av denna analys användas som en kritisk input för perfekt underhåll eller skapande av nya användarberättelser som leder till förbättring av användarupplevelsen.

Slutsats

Digital teknik förändrar redan idag företag inom olika branscher. DevOps spelar en avgörande roll i denna omvandlingshistoria genom att se till att produkter och tjänster baserade på nygamla teknologier är redo för konsumtion sömlöst och tillförlitligt. AI lovar att ta DevOps-rörelsen till nästa nivå genom att tillföra intelligens baserad på bästa praxis och eliminera mänskliga fel och systemfel. Detta kan inte bara påskynda konceptet till implementeringscykeln avsevärt utan göra det möjligt för oss att förverkliga det till synes ouppnåeliga målet att bygga flexibla, självlärande och lyhörda autonoma system.

 

Aman Chandra

Vice President
Intelligent Automation & Testing

Aman har över 25 års erfarenhet av IT-branschen som omfattar digital ingenjörskonst, intelligent automation och leveransexcellens. Han leder för närvarande DevOps och Quality Engineering praktiken på Virtusa, som ansvarar för konsult- och rådgivningstjänster, kompetensutveckling och lösningsteknik för globala kunder. Aman har flera patent på sin kredit när det gäller att tillämpa AI/ML-tekniker för att automatisera och optimera SDLC-processen.

Virtusa kan hjälpa din organisation att modernisera och skala upp sina DevOps-praxis med hjälp av AI/ML-tekniker
Läs mer Kontakta oss
Relaterat innehåll