Pse nevojitet DevOps dhe cilët janë specialistët e DevOps?

Kur një aplikacion nuk funksionon, gjëja e fundit që dëshironi të dëgjoni nga kolegët tuaj është shprehja "problemi është në anën tuaj". Si rezultat, përdoruesit vuajnë - dhe atyre nuk u intereson se cila pjesë e ekipit është përgjegjëse për prishjen. Kultura DevOps u shfaq pikërisht për të bashkuar zhvillimin dhe mbështetjen rreth një përgjegjësie të përbashkët për produktin përfundimtar.

Cilat praktika përfshihen në konceptin e DevOps dhe pse janë të nevojshme? Çfarë bëjnë inxhinierët DevOps dhe çfarë duhet të jenë në gjendje të bëjnë? Ekspertët nga EPAM u përgjigjen këtyre dhe pyetjeve të tjera: Kirill Sergeev, inxhinier sistemesh dhe ungjilltar i DevOps, dhe Igor Boyko, inxhinier kryesor i sistemeve dhe koordinator i një prej ekipeve DevOps të kompanisë.

Pse nevojitet DevOps dhe cilët janë specialistët e DevOps?

Pse nevojitet DevOps?

Më parë, ekzistonte një pengesë midis zhvilluesve dhe mbështetjes (të ashtuquajturat operacione). Tingëllon paradoksale, por ata kishin qëllime dhe KPI të ndryshme, megjithëse po bënin të njëjtën gjë. Qëllimi i zhvillimit ishte zbatimi i kërkesave të biznesit sa më shpejt të jetë e mundur dhe shtimi i tyre në një produkt funksional. Mbështetja ishte përgjegjëse për të siguruar që aplikacioni të funksiononte në mënyrë të qëndrueshme - dhe çdo ndryshim rrezikonte stabilitetin. Ka një konflikt interesi - DevOps u shfaq për ta zgjidhur atë.

Çfarë është DevOps?

Është një pyetje e mirë – dhe e diskutueshme: bota ende nuk ka rënë dakord përfundimisht për këtë. EPAM beson se DevOps kombinon teknologjitë, proceset dhe një kulturë ndërveprimi brenda një ekipi. Kjo shoqatë synon të japë vazhdimisht vlerë për përdoruesit përfundimtarë.

Kirill Sergeev: “Zhvilluesit shkruajnë kodin, testuesit e rishikojnë atë dhe administratorët vendosin produktin përfundimtar në prodhim. Për një kohë të gjatë, këto pjesë të ekipit ishin disi të shpërndara dhe më pas lindi ideja për t'i bashkuar ato përmes një procesi të përbashkët. Kështu u shfaqën praktikat e DevOps.”

Erdhi dita kur zhvilluesit dhe inxhinierët e sistemit u interesuan për punën e njëri-tjetrit. Barriera midis prodhimit dhe mbështetjes filloi të zhdukej. Kështu u shfaq DevOps, i cili përfshin praktikat, kulturën dhe ndërveprimin e ekipit.

Pse nevojitet DevOps dhe cilët janë specialistët e DevOps?

Cili është thelbi i kulturës DevOps?

Fakti është se përgjegjësia për rezultatin përfundimtar është e secilit anëtar të ekipit. Gjëja më interesante dhe e vështirë në filozofinë e DevOps është të kuptosh se një person specifik nuk është vetëm përgjegjës për fazën e tij të punës, por është përgjegjës për mënyrën se si do të funksionojë i gjithë produkti. Problemi nuk qëndron në anën e askujt - ai ndahet dhe secili anëtar i ekipit ndihmon për ta zgjidhur atë.

Gjëja më e rëndësishme në një kulturë DevOps është zgjidhja e problemit, jo vetëm aplikimi i praktikave të DevOps. Për më tepër, këto praktika nuk zbatohen "në anën e dikujt", por në të gjithë produktin. Një projekt nuk ka nevojë për një inxhinier DevOps në vetvete - ai ka nevojë për një zgjidhje për një problem, dhe roli i një inxhinieri DevOps mund të shpërndahet midis disa anëtarëve të ekipit me specializime të ndryshme.

Cilat janë llojet e praktikave DevOps?

Praktikat e DevOps mbulojnë të gjitha fazat e ciklit jetësor të softuerit.

Igor Bojko: “Rasti ideal është kur fillojmë të përdorim praktikat e DevOps pikërisht në fillimin e një projekti. Së bashku me arkitektët, ne planifikojmë se çfarë lloj peizazhi arkitektonik do të ketë aplikacioni, ku do të vendoset dhe si të shkallëzohet dhe zgjedhim një platformë. Në ditët e sotme, arkitektura e mikroshërbimeve është në modë - për të ne zgjedhim një sistem orkestrimi: duhet të jeni në gjendje të menaxhoni secilin element të aplikacionit veçmas dhe ta përditësoni atë në mënyrë të pavarur nga të tjerët. Një praktikë tjetër është "infrastruktura si kod". Ky është emri për një qasje në të cilën infrastruktura e projektit krijohet dhe menaxhohet duke përdorur kodin, në vend që përmes ndërveprimit të drejtpërdrejtë me serverët.

Më pas kalojmë në fazën e zhvillimit. Një nga praktikat më të mëdha këtu është ndërtimi i CI/CD: ju duhet të ndihmoni zhvilluesit të integrojnë ndryshimet në produkt shpejt, në pjesë të vogla, më shpesh dhe pa dhimbje. CI/CD mbulon rishikimin e kodit, ngarkimin e masterit në bazën e kodit dhe vendosjen e aplikacionit në mjediset e testimit dhe prodhimit.

Në fazat CI/CD, kodi kalon përmes portave cilësore. Me ndihmën e tyre, ata kontrollojnë që kodi që del nga stacioni i punës i zhvilluesit plotëson kriteret e specifikuara të cilësisë. Testimi i njësisë dhe UI shtohet këtu. Për vendosje të shpejtë, pa dhimbje dhe të fokusuar të produktit, ju mund të zgjidhni llojin e duhur të vendosjes.

Praktikuesit e DevOps gjithashtu kanë një vend në fazën e mbështetjes së produktit të përfunduar. Ato përdoren për monitorim, reagime, siguri dhe prezantim të ndryshimeve. DevOps i shikon të gjitha këto detyra nga një perspektivë e përmirësimit të vazhdueshëm. Ne minimizojmë operacionet e përsëritura dhe i automatizojmë ato. Kjo përfshin gjithashtu migrimet, zgjerimin e aplikacionit dhe mbështetjen e performancës.”

Cilat janë përfitimet e praktikave të DevOps?

Nëse do të shkruanim një libër shkollor mbi praktikat moderne të DevOps, do të kishte tre pika në faqen e parë: automatizimi, përshpejtimi i lëshimeve dhe reagimet e shpejta nga përdoruesit.

Kirill Sergeev: “Gjëja e parë është automatizimi. Ne mund të automatizojmë të gjitha ndërveprimet në ekip: shkruam kodin - e përshkroi - e kontrolluam - e instaluam - mblodhëm komente - u kthyem në fillim. E gjithë kjo është automatike.

E dyta është përshpejtimi i lëshimit dhe madje thjeshtimi i zhvillimit. Është gjithmonë e rëndësishme për klientin që produkti të hyjë në treg sa më shpejt të jetë e mundur dhe të fillojë të ofrojë përfitime më herët se sa analogët e konkurrentëve. Procesi i dorëzimit të produktit mund të përmirësohet pafundësisht: zvogëloni kohën, shtoni shenja kontrolli shtesë, përmirësoni monitorimin.

Së treti është përshpejtimi i reagimeve të përdoruesve. Nëse ai ka komente, ne mund të bëjmë menjëherë rregullime dhe të përditësojmë aplikacionin menjëherë.”

Pse nevojitet DevOps dhe cilët janë specialistët e DevOps?

Si lidhen konceptet e "inxhinier sistemesh", "inxhinier ndërtimi" dhe "inxhinier DevOps"?

Ato mbivendosen, por i përkasin zonave paksa të ndryshme.

Inxhinieri i sistemeve në EPAM është një pozicion. Ato vijnë në nivele të ndryshme: nga specialisti i ri deri te specialisti kryesor.

Një inxhinier ndërtimi është më shumë një rol që mund të kryhet në një projekt. Tani kështu quhen njerëzit përgjegjës për CI/CD.

Një inxhinier DevOps është një specialist që zbaton praktikat e DevOps në një projekt.

Nëse i përmbledhim të gjitha, marrim diçka të tillë: një person në pozicionin e një inxhinieri sistemesh luan rolin e një inxhinieri ndërtimi në një projekt dhe është i përfshirë në zbatimin e praktikave të DevOps atje.

Çfarë bën saktësisht një inxhinier DevOps?

Inxhinierët e DevOps bashkojnë të gjitha pjesët që përbëjnë një projekt. Ata i dinë specifikat e punës së programuesve, testuesve, administratorëve të sistemit dhe ndihmojnë në thjeshtimin e punës së tyre. Ata i kuptojnë nevojat dhe kërkesat e biznesit, rolin e tij në procesin e zhvillimit - dhe e ndërtojnë procesin duke marrë parasysh interesat e klientit.

Ne folëm shumë për automatizimin - kjo është ajo me të cilën merren para së gjithash inxhinierët e DevOps. Kjo është një pikë shumë e madhe, e cila ndër të tjera përfshin edhe përgatitjen e ambientit.

Kirill Sergeev: “Përpara zbatimit të përditësimeve në produkt, ato duhet të testohen në një mjedis të palëve të treta. Është përgatitur nga inxhinierët DevOps. Ata futin një kulturë DevOps në projektin në tërësi: ata prezantojnë praktikat e DevOps në të gjitha shtresat e projekteve të tyre. Këto tre parime: automatizimi, thjeshtimi, përshpejtimi - ato sjellin kudo që mund të arrijnë.

Çfarë duhet të dijë një inxhinier DevOps?

Në përgjithësi, ai duhet të ketë njohuri nga fusha të ndryshme: programimi, puna me sistemet operative, bazat e të dhënave, sistemet e montimit dhe konfigurimit. Këto plotësohen nga aftësia për të punuar me infrastrukturën cloud, sistemet e orkestrimit dhe monitorimit.

1. Gjuhët e programimit

Inxhinierët e DevOps dinë disa gjuhë bazë për automatizimin dhe, për shembull, mund t'i thonë një programuesi: "Si thua të instalosh kodin jo me dorë, por duke përdorur skriptin tonë, i cili automatizon gjithçka? Ne do të përgatisim një skedar konfigurimi për të, do të jetë i përshtatshëm për ju dhe ne për ta lexuar, dhe ne do të jemi në gjendje ta ndryshojmë atë në çdo kohë. Ne gjithashtu do të shohim se kush, kur dhe pse bën ndryshime në të.”

Një inxhinier DevOps mund të mësojë një ose më shumë nga këto gjuhë: Python, Groovy, Bash, Powershell, Ruby, Go. Nuk është e nevojshme t'i njihni ato në një nivel të thellë - mjaftojnë bazat e sintaksës, parimet OOP dhe aftësia për të shkruar skripta të thjeshta për automatizim.

2. Sistemet operative

Një inxhinier DevOps duhet të kuptojë se në cilin server do të instalohet produkti, në cilin mjedis do të funksionojë dhe me cilat shërbime do të ndërveprojë. Ju mund të zgjidhni të specializoheni në Windows ose në familjen Linux.

3. Sistemet e kontrollit të versionit

Pa njohuri për një sistem të kontrollit të versionit, një inxhinier DevOps nuk është askund. Git është një nga sistemet më të njohura për momentin.

4. Ofruesit e reve kompjuterike

AWS, Google, Azure - veçanërisht nëse po flasim për drejtimin e Windows.

Kirill Sergeev: “Ofruesit e cloud na ofrojnë serverë virtualë që përshtaten në mënyrë të përkryer në CI/CD.

Instalimi i dhjetë serverëve fizikë kërkon rreth njëqind operacione manuale. Çdo server duhet të lansohet manualisht, të instalohet dhe të konfigurohet sistemi operativ i kërkuar, të instalohet aplikacioni ynë në këta dhjetë serverë dhe më pas të kontrollohet dyfish gjithçka dhjetë herë. Shërbimet Cloud e zëvendësojnë këtë procedurë me dhjetë rreshta kodi dhe një inxhinier i mirë DevOps duhet të jetë në gjendje të operojë me to. Kjo kursen kohë, përpjekje dhe para – si për klientin ashtu edhe për kompaninë.”

5. Sistemet e orkestrimit: Docker dhe Kubernetes

Kirill Sergeev: “Serverët virtualë janë të ndarë në kontejnerë, në secilin prej të cilëve mund të instalojmë aplikacionin tonë. Kur ka shumë kontejnerë, duhet t'i menaxhoni: ndizni njërin, fikni një tjetër, bëni kopje rezervë diku. Kjo bëhet mjaft komplekse dhe kërkon një sistem orkestrimi.

Më parë, çdo aplikacion trajtohej nga një server i veçantë - çdo ndryshim në funksionimin e tij mund të ndikojë në shërbimin e aplikacionit. Falë kontejnerëve, aplikacionet izolohen dhe funksionojnë veçmas - secila në makinën e vet virtuale. Nëse ndodh një dështim, nuk ka nevojë të humbni kohë duke kërkuar shkakun. Është më e lehtë të shkatërrosh enën e vjetër dhe të shtosh një të re.”

6. Sistemet e konfigurimit: Chef, Ansible, Puppet

Kur ju duhet të mbani një flotë të tërë serverësh, ju duhet të bëni shumë të njëjtin lloj operacionesh. Është e gjatë dhe e vështirë, dhe puna manuale gjithashtu rrit mundësinë e gabimit. Këtu vijnë në shpëtim sistemet e konfigurimit. Me ndihmën e tyre, ata krijojnë një skript që është i lehtë për t'u lexuar për programuesit, inxhinierët DevOps dhe administratorët e sistemit. Ky skript ndihmon për të kryer të njëjtat operacione në serverë automatikisht. Kjo redukton operacionet manuale (dhe për rrjedhojë gabimet).

Çfarë lloj karriere mund të ndërtojë një inxhinier DevOps?

Ju mund të zhvilloheni si horizontalisht ashtu edhe vertikalisht.

Igor Bojko: “Nga pikëpamja e zhvillimit horizontal, inxhinierët DevOps tani kanë perspektivat më të gjera. Gjithçka po ndryshon vazhdimisht dhe ju mund të ndërtoni aftësi në fusha të ndryshme: nga sistemet e kontrollit të versioneve te monitorimi, nga menaxhimi i konfigurimit te bazat e të dhënave.

Ju mund të bëheni një arkitekt sistemi nëse një punonjës është i interesuar të kuptojë se si funksionon një aplikacion në të gjitha fazat e ciklit të tij jetësor - nga zhvillimi tek mbështetja.

Si të bëheni inxhinier DevOps?

  1. Lexoni Manualin e Projektit Phoenix dhe DevOps. Këto janë shtyllat e vërteta të filozofisë DevOps, ku e para është një vepër fiksioni.
  2. Mësoni teknologjitë nga lista e mësipërme: vetë ose përmes kurseve online.
  3. Bashkohuni si inxhinier DevOps për një projekt me burim të hapur.
  4. Praktikoni dhe ofroni praktika DevOps në projektet tuaja personale dhe të punës.

Burimi: www.habr.com

Shto një koment