DevOps ceļvedis iesācējiem

Kāds ir DevOps nozīmīgums, ko tas nozīmē IT speciālistiem, metožu, ietvaru un rīku apraksts.

DevOps ceļvedis iesācējiem

Kopš brīža, kad termins DevOps nostiprinājās IT pasaulē, ir noticis daudz kas. Ņemot vērā, ka liela daļa ekosistēmas ir atvērtā koda, svarīgi ir pārskatīt, kāpēc tas sākās un ko tas nozīmē karjerai IT.

Kas ir DevOps

Lai gan nav vienotas definīcijas, es uzskatu, ka DevOps ir tehnoloģiju struktūra, kas nodrošina sadarbību starp izstrādātāju un operāciju komandām, lai ātrāk izvietotu kodu ražošanas vidēs ar atkārtojamības un automatizācijas iespējām. Atlikušajā rakstā mēs iztērēsim laiku, lai izklāstītu šo apgalvojumu.

Vārds „DevOps” ir apvienojums no vārdiem „izstrāde” (development) un „operācijas” (operations). DevOps palīdz palielināt lietojumprogrammu un pakalpojumu piegādes ātrumu. Tas ļauj organizācijām efektīvi apkalpot savus klientus un kļūt konkurētspējīgākiem tirgū. Vienkārši sakot, DevOps ir saskaņotība starp izstrādi un IT operācijām ar efektīvāku mijiedarbību un sadarbību.

DevOps paredz tādu kultūru, kurā sadarbība starp izstrādātāju, operatoru un biznesa komandām tiek uzskatīta par kritiski svarīgu aspektu. Tas ir ne tikai par rīkiem, jo DevOps organizācijā pastāvīgi sniedz labumu arī klientiem. Rīki ir viens no tā pamatiem, līdzās cilvēkiem un procesiem. DevOps palielina organizāciju spējas sniegt augstas kvalitātes risinājumus īsākajos termiņos. Turklāt DevOps automatizē visus procesus no izstrādes līdz izvietošanai, lietojumprogrammai vai produktam.

Diskusija par DevOps ir koncentrēta uz attiecībām starp izstrādātājiem, cilvēkiem, kuri raksta programmatūru dzīvei, un operatoriem, kas ir atbildīgi par šīs programmatūras atbalstīšanu.

Izstrādātāju komandas izaicinājumi

Izstrādātāji parasti entuziastiski un ar vēlmi ievieš jaunas metodes un tehnoloģijas organizāciju problēmu risināšanai. Tomēr viņi arī saskaras ar noteiktiem izaicinājumiem:

  • Konkurences tirgus rada lielu spiedienu savlaicīgai produkta piegādei.
  • Viņiem jāparūpējas par ražošanai gatava koda pārvaldību un jaunu funkciju ieviešanu.
  • Izlaides cikls var būt garš, tāpēc izstrādātāju komandai ir jāveic daži pieņēmumi pirms lietojumprogrammu ieviešanas. Šādā scenārijā nepieciešams lielāks laika rezervs, lai risinātu problēmas, kas rodas ražošanas vai testēšanas vidē.

Problēmas, ar kurām saskaras operāciju grupa

Operāciju grupas vēsturiski ir orientētas uz IT pakalpojumu stabilitāti un drošību. Tāpēc operāciju komandas cenšas nodrošināt stabilitāti, veicot izmaiņas resursos, tehnoloģijās vai pieejās. Viņu uzdevumi ietver:

  • Resursu sadales pārvaldība, pieaugot pieprasījumam.
  • Izmaiņu apstrāde dizaina vai konfigurācijas izmaiņām, kas nepieciešamas ražošanas vidē.
  • Problēmu diagnosticēšana un risināšana, kas saistītas ar ražošanu, pēc lietojumprogrammu pašizvietošanas.

Kā DevOps risina izstrādes un operāciju problēmas

Tā vietā, lai izlaistu lielu funkciju kopumu vienlaikus, uzņēmumi cenšas noskaidrot, vai viņi var izvietot nelielu funkciju skaitu saviem klientiem, izmantojot izlaidumu sēriju. Šādam pieejam ir vairākas priekšrocības, piemēram, labāka programmatūras kvalitāte, ātrāka atgriezeniskā saite no klientiem u.c. Tas, savukārt, nodrošina augstu klientu apmierinātības līmeni. Lai sasniegtu šos mērķus, uzņēmumiem ir nepieciešams:

  • Samazināt jauno izlaidumu atteikumu procentu
  • Palielināt izvietošanas biežumu
  • Sasniegt ātrāku vidējo atjaunošanās laiku pēc jauna lietojumprogrammas izlaiduma.
  • Samazināt laiku labojumiem

DevOps veic visas šīs funkcijas un palīdz nodrošināt nepārtrauktu piegādi. Organizācijas izmanto DevOps, lai sasniegtu tādus veiktspējas līmeņus, kas vēl pirms dažiem gadiem bija iedomājami. Tie veic desmitiem, simtiem un pat tūkstošiem izvietojumu dienā, nodrošinot pasaules klases uzticamību, stabilitāti un drošību. (Uzziniet vairāk par partijas izmēriem un to ietekmi uz programmatūras piegādi).

DevOps mēģina atrisināt dažādas problēmas, kas rodas, izmantojot iepriekšējās metodoloģijas, tostarp:

  • Izstrādātāju un operatoru komandu izolēta darbība
  • Testēšana un izvietošana kā atsevišķas fāzes, kas tiek veiktas pēc projektēšanas un montāžas un prasa vairāk laika nekā montāžas cikli.
  • Pārmērīgas laika izmaksas testēšanā, izvietošana un projektēšanā, nevis fokusēšanās uz galveno biznesa pakalpojumu radīšanu
  • Rokas koda izvietošana, kas rada kļūdas ražošanā
  • Atšķirības izstrādes grupu un operāciju grafikos, kas izraisa papildu aizkaves

DevOps ceļvedis iesācējiem

DevOps, Agile un tradicionālās IT pretstatīšana

DevOps bieži tiek apspriests saistībā ar citām IT praksēm, īpaši ar elastīgu un kaskādes IT infrastruktūru.

Agile ir principu, vērtību un programmatūras ražošanas metožu kopums. Piemēram, ja jums ir ideja, kuru vēlaties pārvērst programmatūrā, jūs varat izmantot Agile principus un vērtības. Bet šī programmatūra var darboties tikai izstrādes vai testēšanas vidē. Jums ir nepieciešams vienkāršs un drošs veids, kā ātri un ar augstu atkārtojamību pārvietot programmatūru ražošanas vidē, un ceļš ved caur DevOps rīkiem un metodēm. Elastīgā programmatūras izstrādes metodoloģija ir vērsta uz izstrādes procesiem, bet DevOps atbild par izstrādi un izvietošanu – visdrošāko un uzticamāko veidu.

Tradicionālās kaskādes modeļa salīdzinājums ar DevOps ir labs veids, kā saprast, kādas priekšrocības sniedz DevOps. Nākamajā piemērā pieņem, ka lietojumprogramma tiks palaista pēc četrām nedēļām, izstrāde ir pabeigta par 85%, lietojumprogramma tiks palaista, un serveru iepirkšanas process, lai nosūtītu kodu, tikko ir uzsākts.

Tradicionālie procesi
Procesi DevOps

Pēc jauniešu serveru pasūtījuma veikšanas izstrādātāju komanda strādā pie testēšanas. Operatīvā grupa strādā pie visaptverošās dokumentācijas, kas nepieciešama uzņēmumos infrastruktūras izvietošanai.
Pēc pasūtījuma ievietošanas jauniem serveriem izstrādātāju un operatoru komandas kopīgi strādā pie procesiem un dokumentācijas jaunā servera uzstādīšanai. Tas ļauj labāk izprast infrastruktūras prasības.

Informācija par atjaunošanu pēc neveiksmēm, pārmērību, datu centru atrašanās vietām un krātuves prasībām ir neprecīza, jo nav datu no izstrādātāju komandas, kurai ir dziļas zināšanas par pielietojumu.
Detalizēta informācija par kļūmju pārvarēšanu, pārmērībām, avārijas atjaunošanu, datu centru atrašanās vietām un krātuves prasībām ir zināma un precīza, pateicoties izstrādātāju komandas ieguldījumam.

Operatīvā grupa nav informēta par izstrādātāju komandas progresu. Tā arī izstrādā uzraudzības plānu, pamatojoties uz savām idejām.

Operatīvā grupa ir pilnībā informēta par progresu, ko izstrādātāju komanda ir sasniegusi. Tā arī sadarbojas ar izstrādātāju komandu, un kopīgi izstrādā uzraudzības plānu, kas apmierina IT un biznesa prasības. Viņi arī izmanto lietojumprogrammu veiktspējas uzraudzības rīkus (APM).

Slodzes tests, kas veikts pirms lietojumprogrammas palaišanas, noved pie lietojumprogrammas kļūmes, kas kavē tās palaišanu.
Slodzes tests, kas veikts pirms lietojumprogrammas palaišanas, noved pie veiktspējas samazināšanās. Izstrādātāju komanda ātri novērš šaurās vietas, un lietojumprogramma tiek palaista laikā.

DevOps dzīves cikls

DevOps nozīmē noteiktu vispārpieņemtu praksi pieņemšanu.

Nepārtraukta plānošana

Nepārtraukta plānošana balstās uz liekā izvairīšanās principiem, lai uzsāktu ar mazumi, nosakot resursus un rezultātus, kas nepieciešami biznesa vērtības vai redzējuma pārbaudei, pastāvīgai pielāgošanai, progresu mērīšanai, klientu vajadzību izpētei, virziena maiņai pēc vajadzības, ņemot vērā mobilitāti, kā arī biznesa plāna atjaunināšanai.

Kopīga izstrāde

Kopā izstrādes process ļauj uzņēmumam, izstrādātāju komandām un testēšanas komandām, kas izvietotas dažādās laika zonās, nepārtraukti piegādāt kvalitatīvu programmatūru. Tas ietver daudzplatformu izstrādi, atbalstu programmēšanai dažādās valodās, lietotāja stāstu izveidi, ideju attīstību un dzīves cikla pārvaldību. Kopā izstrāde ietver procesu un praksi nepārtrauktai integrācijai, kas veicina biežu koda integrāciju un automātisku apkopošanu. Bieža koda ieviešana lietojumprogrammā palīdz atklāt integrācijas problēmas agrīnā dzīves cikla posmā (kad tās ir vieglāk labot), un kopējās integrācijas pūles tiek samazinātas, pateicoties nepārtrauktai atgriezeniskajai saitei, jo projekts demonstrē nepārtrauktu un vizuāli pamanāmu progresu.

Nepārtraukta testēšana

Nepārtraukta testēšana samazina testēšanas izmaksas, palīdzot izstrādātāju komandām balansēt starp ātrumu un kvalitāti. Tā arī novērš testēšanas saskares punktus, izmantojot pakalpojumu virtualizāciju, un atvieglo virtualizētu testēšanas vidi izveidi, ko var viegli koplietot, izvērst un atjaunot mainoties sistēmām. Šīs iespējas samazina izmaksas, kas saistītas ar testēšanas vidi inicializāciju un apkopi, kā arī īsina testēšanas cikla laiku, ļaujot veikt integrācijas testēšanu agrīnajos dzīves cikla posmos.

Nepārtraukta izlaide un izvēršana

Šīs metodes nodrošina vienu no galvenajām praksēm: nepārtrauktu izlaidi un izvēršanu. Tās veido nepārtrauktu konveijeru, kas automatizē svarīgākos procesus. Tas samazina manuālo operāciju skaitu, gaidīšanas laiku resursiem un pārbūves apjomu, ļaujot izvēršanu veikt ar vienu pogas nospiešanu, kas nodrošina lielāku izlaides apjomu, kļūdu samazinājumu un pilnīgu caurspīdīgumu.

Automatizācija spēlē galveno lomu, nodrošinot stabilu un uzticamu programmatūras izstrādni. Viens no būtiskākajiem uzdevumiem ir uzlabot manuālos procesus, piemēram, būvēšanu, regresiju, izvietošanu un infrastruktūras izveidi, un tos automatizēt. Tas prasa versiju kontroli avota kodā, testēšanas un izvietošanas skriptus, infrastruktūras un lietojumprogrammu konfigurācijas datus, kā arī bibliotekas un pakotnes, no kurām atkarīgs lietojums. Vēl viens būtisks faktors ir spēja pieprasīt visu vidi stāvokli.

Nepārtraukta uzraudzība

Nepārtraukta uzraudzība nodrošina korporatīvā līmeņa pārskatu veidošanu, kas palīdz izstrādātāju komandām saprast lietojumprogrammu pieejamību un veiktspēju ražošanas vidē vēl pirms tās tiek izvietotas ražošanā. Agrīna atgriezeniskā saite, ko nodrošina nepārtraukta uzraudzība, ir izšķiroša kļūdu izmaksu samazināšanai un projektu vadības pareizajā virzienā veikšanai. Šī prakse bieži ietver novērošanas rīkus, kuri parasti atklāj rādītājus, kas saistīti ar lietojumprogrammu veiktspēju.

Pastāvīga atgriezeniskā saite un optimizācija

Nepārtraukta atgriezeniskā saite un optimizācija nodrošina vizuālu attēlojumu par klientu plūsmu un precīzu problēmu vietu identificēšanu. Atgriezeniskā saite var tikt iekļauta gan pirmspārdošanas, gan pēcpārdošanas posmos, lai maksimāli palielinātu vērtību un nodrošinātu veiksmīgu vēl lielākas darījumu pabeigšanu. Viss tas nodrošina tūlītēju vizualizāciju par klientu problēmu pamatcēloņiem, kas ietekmē viņu uzvedību un ietekmi uz biznesu.

DevOps ceļvedis iesācējiem

DevOps priekšrocības

DevOps var veicināt vides izveidi, kur izstrādātāji un operatori strādā kā viena komanda, lai panāktu kopīgus mērķus. Būtisks posms šajā procesā ir nepārtrauktas integrācijas un nepārtrauktas piegādes (CI/CD) ieviešana. Šīs metodes ļaus komandām ātrāk izvietot programmatūru tirgū ar mazāk kļūdām.

Būtiskas DevOps priekšrocības ir:

  • Prognozējamība: DevOps piedāvā būtiski zemāku kļūmju frekvenci jaunu izlaišanas versiju izveidē.
  • Uzturējamība: DevOps nodrošina vieglu atjaunošanos šādos gadījumos kā jauno izlaišanu vai lietojumprogrammas izslēgšanu.
  • Atkārtojams process: Versiju kontroles sistēma ļauj atjaunot iepriekšējās versijas pēc vajadzības.
  • Augstāka kvalitāte: Infrastruktūras problēmu risināšana uzlabo lietojumprogrammu izstrādes kvalitāti.
  • Laika samazināšana tirgū: Programmatūras piegādes optimizācija samazina laiku tirgū par 50%.
  • Riska samazināšana: Drošības nodrošināšana programmatūras izstrādes ciklā samazina defektu skaitu visā cikla gaitā.
  • Ekonomiskā efektivitāte: Centība uz ekonomiskas efektivitātes nodrošināšanu programmatūras izstrādē patīk augstākajam vadībai.
  • Noturība: Programmatūras sistēma ir stabilāka, drošāka, un izmaiņas var pārbaudīt.
  • Lielāka koda bāze tiek sadalīta pārvaldāmās daļās: DevOps balstās uz elastīgas izstrādes metodēm, kas ļauj sadalīt lielu koda bāzi mazākās un pārvaldāmās daļās.

DevOps principi

DevOps pieņemšana ir radījusi vairākus principus, kas ir attīstījušies (un joprojām turpina attīstīties). Lielākā daļa risinājumu piegādātāju ir izstrādājuši savas modifikācijas dažādām metodēm. Visi šie principi balstās uz holistisku pieeju DevOps, ko var izmantot organizācijas, neatkarīgi no to lieluma.

Izstrādājiet un testējiet vidē, kas līdzīga ražošanas videi

Pamatā ir tas, lai ļautu izstrādātāju komandām un kvalitātes nodrošināšanas speciālistiem izstrādāt un testēt sistēmas, kuras uzvedas kā ražošanas sistēmas, lai viņi varētu redzēt, kā lietojumprogramma darbojas un strādā krietni pirms tās izplatīšanas.

Lietojumam jābūt pievienotam ražošanas sistēmām pēc iespējas agrāk dzīves cikla laikā, lai risinātu trīs galvenās potenciālās problēmas. Pirmkārt, tas ļauj testēt lietojumu vidē, kas ir tuvu reālajai videi. Otrkārt, tas ļauj iepriekš testēt un pārbaudīt lietojuma piegādes procesus. Treškārt, tas ļauj operāciju komandai agrīnā dzīves cikla posmā pārbaudīt, kā viņu vide uzvedīsies, kad lietojumi tiks izvietoti, tādējādi ļaujot viņiem izveidot rūpīgi konfigurētu, uz lietojumprogrammu vērstu vidi.

Izvietošana ar reproducējamām, uzticamām procedūrām

Šis princips ļauj izstrādātāju un operatoru komandām uzturēt elastīgas programmatūras izstrādes procedūras visā dzīves ciklā. Automatizācija ir būtiska, lai izveidotu iteratīvas, uzticamas un reproducējamas procedūras. Tādēļ organizācijai jāizveido piegādes caurule, kas nodrošina nepārtrauktu automatizētu izvietošanu un testēšanu. Bieža izvietošana arī ļauj komandām testēt izvietošanas procesus, tādējādi samazinot neizdošanās risku reālu relīžu laikā.

Uzraudzība un kvalitātes pārbaude

Organizācijas ir labas lietojumu uzraudzībā ražošanā, jo tām ir rīki, kas reālajā laikā reģistrē rādītājus un galvenos snieguma rādītājus (KPI). Šis princips pārnes uzraudzību agrīnajos dzīves cikla posmos, nodrošinot, ka automatizētā testēšana seko līdzi lietojuma funkcionālajiem un nefunkcionālajiem atribūtiem procesa agrīnajos posmos. Ikreiz, kad lietojums tiek testēts un izvietots, kvalitātes rādītāji ir jāpēta un jāanalizē. Uzraudzības rīki nodrošina agra brīdinājuma sistēmas par ražošanas procesos radušām problēmām attiecībā uz operācijas un kvalitāti. Šie rādītāji jāapkopo formātā, kas ir pieejams un saprotams visiem ieinteresētajiem.

Atsauksmes ciklu uzlabošana

Viens no DevOps procesu mērķiem ir ļaut organizācijām ātrāk reaģēt un veikt izmaiņas. Programmatūras piegādē šis mērķis prasa, lai organizācija saņemtu atgriezenisko saiti agrīnā posmā un pēc tam ātri mācītos no katra paveiktā soļa. Šis princips prasa no organizācijām izveidot komunikācijas kanālus, kuri ļauj ieinteresētajām pusēm piekļūt un mijiedarboties, balstoties uz atgriezenisko saiti. Izstrāde var tikt veikta, pielāgojot projektēšanas plānus vai prioritātes. Ražošana var rīkoties, uzlabojot ražošanas vidi.

Dev

  • Plānošana: Kanboard, Wekan un citas Trello alternatīvas; GitLab, Tuleap, Redmine un citas JIRA alternatīvas; Mattermost, Roit.im, IRC un citas Slack alternatīvas.
  • Koda rakstīšana: Git, Gerrit, Bugzilla; Jenkins un citi atvērtā koda rīki CI/CD.
  • Būvēšana: Apache Maven, Gradle, Apache Ant, Packer.
  • Testi: JUnit, Cucumber, Selenium, Apache JMeter.

Ops

  • Izlaišana, izvietošana, operācijas: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform.
  • Uzraudzība: Grafana, Prometheus, Nagios, InfluxDB, Fluentd, un citi, kas ir apskatīti šajā rokasgrāmatā.

(* Rīki operācijām tika numurēti saskaņā ar to izmantošanu operatīvajās komandās, bet to rīku komplekts pārklājas ar izlaiduma un izvietošanas ciklu posmiem. Lasāmības ērtībai numurācija tika noņemta.)

Noslēgumā

DevOps ir arvien populārāka metodoloģija, kuras mērķis ir apvienot izstrādātājus un operatorus vienā veselumā. Tā ir unikāla, atšķiras no tradicionālām IT operācijām un papildina Agile (bet nav tik elastīga).

DevOps ceļvedis iesācējiem

Uzziniet detalizēti, kā iegūt pieprasītu profesiju no nulles vai uzlabot savas prasmes un algas, apgūstot maksas tiešsaistes kursus SkillFactory:

vēl kursi

Noderīgas

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster