DevOps është integrimi dhe automatizimi i zhvillimit të softuerëve dhe operacioneve të teknologjisë së informacionit. DevOps përfshin detyrat e nevojshme për zhvillimin e softuerëve dhe mund të çojë si në shkurtimin e kohës së zhvillimit ashtu edhe në përmirësimin e ciklit jetësor të zhvillimit. Sipas arkitektit amerikan të softuerëve Neal Ford, DevOps, veçanërisht përmes ofrimit të vazhdueshëm, përdor parimin "sillni problemin përpara" duke trajtuar detyrat sfiduese herët, duke nxitur automatizimin dhe duke mundësuar zbulimin e shpejtë të problemeve.
Edhe pse debatohet, DevOps karakterizohet përgjithësisht nga tre parime kryesore: pronësia e përbashkët, automatizimi i rrjedhës së punës dhe reagimet e shpejta.
Nga një perspektivë akademike, Len Bass, Ingo Weber dhe Liming Zhu - tre studiues të shkencave kompjuterike nga CSIRO dhe Instituti i Inxhinierisë së Softuerëve - e përcaktuan DevOps si "një sërë praktikash që synojnë të zvogëlojnë kohën midis kryerjes së një ndryshimi në një sistem dhe vendosjes së ndryshimit në prodhim normal, duke siguruar njëkohësisht cilësi të lartë".
Megjithatë, termi përdoret në kontekste të shumta. Në formën e tij më të suksesshme, DevOps është një kombinim i praktikave specifike, ndryshimit të kulturës dhe mjeteve.
Histori
Propozimet për të kombinuar metodologjitë e zhvillimit të softuerëve me konceptet e vendosjes dhe operacioneve u shfaqën për herë të parë në fund të viteve '80 dhe fillim të viteve '90.
Në vitin 2009, konferenca e parë DevOps Days u mbajt në Ghent të Belgjikës. Konferenca u themelua nga konsulenti dhe praktikuesi belg i IT-së, Patrick Debois. Konferenca tani është përhapur në vende të tjera.
Në vitin 2012, raporti i parë "Gjendja e DevOps" u botua nga Alanna Brown në Puppet Labs.
Në vitin 2016, metrikat DORA për rendimentin (frekuenca e vendosjes, koha e përgatitjes për ndryshime) dhe stabilitetin (koha mesatare për t'u rikuperuar, shkalla e dështimit të ndryshimeve) u botuan në raportin e Gjendjes së DevOps të atij viti. Megjithatë, metodologjia dhe metrikat e hulumtimit u kritikuan nga disa ekspertë. Në përgjigje të këtyre kritikave, raporti i Gjendjes së DevOps i vitit 2023 publikoi ndryshime që përditësuan metrikën e stabilitetit "koha mesatare për t'u rikuperuar" në "koha e rikuperimit të vendosjes së dështuar", duke pranuar konfuzionin që kishte shkaktuar metrika e mëparshme.
Raporti i vitit 2024 ristrukturoi kornizën e metrikave duke e zhvendosur kohën e rikuperimit të implementimit të dështuar nga stabiliteti në rendiment dhe duke futur një metrikë të re "shkalle ripërpunimi" që mat përqindjen e implementimeve të paplanifikuara të bëra për të rregulluar problemet e dukshme për përdoruesit. Në vitin 2025, DORA hoqi dorë nga ndarja e ekipeve në nivele performance dhe në vend të kësaj prezantoi shtatë arketipe ekipesh që kombinojnë metrikat e ofrimit me faktorë njerëzorë si lodhja, fërkimi dhe vlera e perceptuar.
Metrika relevante
DevOps Research and Assessment (DORA) ka zhvilluar një sërë metrikash që synojnë të matin efikasitetin dhe besueshmërinë e zhvillimit të softuerëve. Këto metrika përfshijnë:
Frekuenca e Vendosjes: Koha midis vendosjeve të kodit.
Koha Mesatare e Përgatitjes për Ndryshime: Koha midis kryerjes së kodit dhe vendosjes.
Shkalla e Dështimit të Ndryshimeve: Përqindja e vendosjeve që shkaktojnë probleme në prodhim.
Koha e Rimëkëmbjes pas Dështimit të Vendosjes (më parë Koha Mesatare për Rimëkëmbje)
Besueshmëria: Mat performancën operative duke u përqendruar në disponueshmërinë dhe përmbushjen e pritjeve të përdoruesit.
Marrëdhënia me qasjet e tjera
Shumë nga idetë themelore të DevOps janë të ngjashme me praktika të tjera të njohura, të tilla si cikli Planifiko-Bëj-Kontrollo-Vepro i Lean dhe Deming, Mënyra Toyota dhe qasja Agile e ndarjes së komponentëve dhe madhësive të serive. Ndryshe nga qasja përshkruese "nga lart-poshtë" dhe kuadri i ngurtë i ITIL në vitet 1990, DevOps është "nga poshtë-lart" dhe fleksibël, pasi është krijuar nga inxhinierët e softuerëve për nevojat e tyre.
I shkathët
Motivimet për atë që është bërë DevOps modern dhe disa praktika standarde të DevOps, të tilla si ndërtimi dhe testimi i automatizuar, integrimi i vazhdueshëm dhe ofrimi i vazhdueshëm, e kanë origjinën në botën Agile, e cila jozyrtarisht daton që nga vitet 1990 dhe zyrtarisht që nga viti 2001. Ekipet e zhvillimit Agile që përdorin metoda të tilla si programimi ekstrem nuk mund ta "kënaqnin klientin përmes ofrimit të hershëm dhe të vazhdueshëm të softuerit të vlefshëm" përveç nëse merrnin përgjegjësinë për operacionet dhe infrastrukturën për aplikacionet e tyre, duke automatizuar pjesën më të madhe të asaj pune. Meqenëse Scrum doli si kuadri dominues Agile në fillim të viteve 2000 dhe hoqi dorë nga praktikat inxhinierike që ishin pjesë e shumë ekipeve Agile, vrulli për të automatizuar operacionet dhe funksionet e infrastrukturës u nda nga Agile dhe u zgjerua në atë që është bërë DevOps modern. Sot, DevOps përqendrohet në vendosjen e softuerëve të zhvilluar, të pavarur nga metodologjia.
ArchOps
ArchOps fillon nga artefaktet e arkitekturës së softuerit në vend të kodit burimor për vendosjen operative, në ndryshim nga DevOps. ArchOps pohon se modelet arkitekturore janë entitete të klasit të parë në zhvillimin, vendosjen dhe operacionet e softuerit.
Integrim dhe Ofrim i Vazhdueshëm (CI/CD)
CI/CD është po aq kritik për suksesin e DevOps sa automatizimi. Për më tepër, bashkëpunimi dhe komunikimi i përmirësuar midis dhe brenda ekipeve i ndihmon ata të arrijnë një kohë më të shpejtë në treg me rreziqe të reduktuara.
DevOps i Bazës së të Dhënave
Baza e të dhënave DevOps zbaton parimet DevOps dhe CI/CD drejtpërdrejt në zhvillimin dhe operacionet e bazës së të dhënave. Integrimi i ndryshimeve të skemës, migrimeve, të dhënave referuese dhe përditësimeve të tjera të shtresës së të dhënave në të njëjtat kanale të kontrolluara nga versioni dhe të automatizuara që përdoren për kodin e aplikacionit mundëson vendosje më të besueshme. Kjo qasje gjithashtu mundëson koordinim të përmirësuar midis ndryshimeve të aplikacionit dhe të të dhënave.
Praktikat tipike të DevOps në bazën e të dhënave përfshijnë vendosjen e përkufizimeve të skemës së bazës së të dhënave nën kontrollin e versionit, zbatimin e testeve të automatizuara (siç janë testet e njësive ose validimi i migrimit) në ndryshimet e bazës së të dhënave dhe vendosjen e këtyre ndryshimeve përmes kanaleve CI/CD. Këto praktika zvogëlojnë atë që zakonisht quhet "ndryshim skeme" midis sistemeve të zhvillimit dhe prodhimit dhe ulin rrezikun e dështimeve të vendosjes.
Zhvillues të Mobilëve
Mobile DevOps është një metodologji që zbaton parimet e DevOps në zhvillimin e aplikacioneve mobile. DevOps tradicional përqendrohet në përmirësimin e procesit të përgjithshëm të zhvillimit të softuerëve, por zhvillimi mobil ka sfida unike që kërkojnë një qasje të përshtatur. Mobile DevOps nuk është thjesht një degë e DevOps specifike për zhvillimin e aplikacioneve mobile, por më tepër një zgjerim dhe riinterpretim i filozofisë DevOps të përshtatur për kërkesat specifike të celularit.
Inxhinieri e Besueshmërisë së Vendndodhjes
Në vitin 2003, Google zhvilloi inxhinierinë e besueshmërisë së faqes (SRE), një qasje për publikimin e vazhdueshëm të veçorive të reja në sisteme në shkallë të gjerë dhe me disponueshmëri të lartë, duke ruajtur një përvojë të përdoruesit fundor me cilësi të lartë. Ndërsa SRE i paraprin zhvillimit të DevOps, ato në përgjithësi shihen si të lidhura me njëra-tjetrën. Disa nga autorët origjinalë të disiplinës e konsiderojnë SRE si një zbatim të DevOps.
Sistemi i Prodhimit Toyota, Mendimi i Lean, Kaizen
Sistemi i Prodhimit Toyota (TPS) frymëzoi të menduarit e lehtë me fokusin e tij në përmirësimin e vazhdueshëm, kaizen, rrjedhshmërinë dhe sasitë e vogla. Parimi i kordonit andon për krijimin e reagimeve të shpejta, grumbullimin dhe zgjidhjen e problemeve buron nga TPS.
DevSecOps, Zhvendosja e Sigurisë Majtas
Siç nënkupton edhe vetë emri, DevSecOps integron DevOps brenda praktikave të sigurisë. Ndryshe nga një model tradicional i ekipit të sigurisë së centralizuar, çdo ekip shpërndarjeje është i autorizuar të përfshijë kontrollet e sakta të sigurisë në shpërndarjen e softuerit të tyre. Ekipet kryejnë teste dhe zbatojnë praktikat e sigurisë më herët në ciklin jetësor të zhvillimit, prandaj edhe termi "zhvendosje majtas". Siguria testohet në tre fusha kryesore: statike, përbërje softueri dhe dinamike.



