DevOps rokasgrāmata iesācējiem

Kāda ir DevOps nozīme, ko tas nozīmē IT profesionāļiem, metožu, ietvaru un rīku apraksts.

DevOps rokasgrāmata iesācējiem

KopÅ” termina DevOps ievieÅ”anas IT pasaulē ir noticis daudz. Lielākajai daļai ekosistēmas atvērtā pirmkoda ir svarÄ«gi pārdomāt, kāpēc tas sākās un ko tas nozÄ«mē karjerai IT jomā.

Kas ir DevOps

Lai gan nav vienotas definÄ«cijas, es uzskatu, ka DevOps ir tehnoloÄ£iju ietvars, kas nodroÅ”ina sadarbÄ«bu starp izstrādes un operāciju komandām, lai ātrāk izvietotu kodu ražoÅ”anas vidēs ar iespēju to atkārtot un automatizēt. Mēs pavadÄ«sim atlikuÅ”o Ŕī raksta daļu, lai izpakotu Å”o pretenziju.

Vārds ā€œDevOpsā€ ir vārdu ā€œizstrādeā€ un ā€œoperācijasā€ kombinācija. 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ākām tirgÅ«. VienkārÅ”i sakot, DevOps ir izstrādes un IT darbÄ«bu saskaņoÅ”ana ar efektÄ«vāku saziņu un sadarbÄ«bu.

DevOps ietver kultÅ«ru, kurā sadarbÄ«ba starp izstrādes, operāciju un biznesa komandām tiek uzskatÄ«ta par kritisku. Runa nav tikai par rÄ«kiem, jo ā€‹ā€‹DevOps organizācijā nepārtraukti sniedz labumu arÄ« klientiem. LÄ«dzās cilvēkiem un procesiem rÄ«ki ir viens no tās pÄ«lāriem. DevOps palielina organizāciju spēju nodroÅ”ināt augstas kvalitātes risinājumus pēc iespējas Ä«sākā laikā. DevOps arÄ« automatizē visus procesus, sākot no izveides lÄ«dz izvietoÅ”anai, lietojumprogrammai vai produktam.

DevOps diskusija koncentrējas uz attiecÄ«bām starp izstrādātājiem, cilvēkiem, kas raksta programmatÅ«ru iztikai, un operatoriem, kas atbild par Ŕīs programmatÅ«ras uzturÄ“Å”anu.

Izaicinājumi izstrādes komandai

Izstrādātāji mēdz būt entuziasma pilni un vēlas ieviest jaunas pieejas un tehnoloģijas, lai risinātu organizatoriskas problēmas. Tomēr viņiem ir arī dažas problēmas:

  • KonkurētspējÄ«gs tirgus rada lielu spiedienu piegādāt produktu laikā.
  • Viņiem ir jārÅ«pējas par ražoÅ”anai gatava koda pārvaldÄ«bu un jaunu funkciju ievieÅ”anu.
  • IzlaiÅ”anas cikls var bÅ«t garÅ”, tāpēc izstrādes komandai pirms lietojumprogrammu ievieÅ”anas ir jāizdara vairāki pieņēmumi. Å ajā scenārijā ir nepiecieÅ”ams vairāk laika, lai atrisinātu problēmas, kas rodas izvietoÅ”anas laikā ražoÅ”anas vai testa vidē.

Izaicinājumi, ar kuriem saskaras operāciju komanda

Operāciju komandas vēsturiski ir koncentrējuŔās uz IT pakalpojumu stabilitāti un uzticamÄ«bu. Tāpēc operāciju komandas meklē stabilitāti, mainot resursus, tehnoloÄ£ijas vai pieejas. Viņu uzdevumos ietilpst:

  • Pārvaldiet resursu pieŔķirÅ”anu, pieaugot pieprasÄ«jumam.
  • Apstrādājiet dizaina vai pielāgoÅ”anas izmaiņas, kas nepiecieÅ”amas lietoÅ”anai ražoÅ”anas vidē.
  • Diagnosticējiet un atrisiniet ražoÅ”anas problēmas pēc lietojumprogrammu paÅ”izvietoÅ”anas.

Kā DevOps risina izstrādes un darbības problēmas

Tā vietā, lai vienlaikus ieviestu lielu skaitu lietotņu funkciju, uzņēmumi cenÅ”as noskaidrot, vai tie var piedāvāt saviem klientiem nelielu skaitu funkciju, izmantojot virkni izlaiÅ”anas iterāciju. Å ai pieejai ir vairākas priekÅ”rocÄ«bas, piemēram, labāka programmatÅ«ras kvalitāte, ātrākas klientu atsauksmes utt. Tas savukārt nodroÅ”ina augstu klientu apmierinātÄ«bu. Lai sasniegtu Å”os mērÄ·us, uzņēmumiem ir nepiecieÅ”ams:

  • Samaziniet kļūmju lÄ«meni, izlaižot jaunus izdevumus
  • Palieliniet izvietoÅ”anas biežumu
  • Jaunas lietojumprogrammas izlaiÅ”anas gadÄ«jumā panākiet ātrāku vidējo atkopÅ”anas laiku.
  • Samaziniet laiku labojumiem

DevOps veic visus Å”os uzdevumus un palÄ«dz nodroÅ”ināt nepārtrauktu piegādi. Organizācijas izmanto DevOps, lai sasniegtu tādu produktivitātes lÄ«meni, kāds nebija iedomājams tikai pirms dažiem gadiem. Tie veic desmitiem, simtiem un pat tÅ«kstoÅ”iem izvietoÅ”anu dienā, vienlaikus nodroÅ”inot pasaules lÄ«meņa uzticamÄ«bu, stabilitāti un droŔību. (Uzziniet vairāk par partiju izmēriem un to ietekme uz programmatÅ«ras piegādi).

DevOps mēģina atrisināt dažādas problēmas, kas izriet no iepriekŔējām metodēm, tostarp:

  • Darba izolācija starp attÄ«stÄ«bas un operāciju komandām
  • TestÄ“Å”ana un izvietoÅ”ana ir atseviŔķas fāzes, kas notiek pēc projektÄ“Å”anas un izveides un prasa vairāk laika nekā izveides cikli.
  • PārmērÄ«gs laiks, kas pavadÄ«ts testÄ“Å”anai, izvietoÅ”anai un projektÄ“Å”anai, tā vietā, lai koncentrētos uz galveno biznesa pakalpojumu izveidi
  • Manuāla koda izvietoÅ”ana, kas rada kļūdas ražoÅ”anā
  • AtŔķirÄ«bas izstrādes un darbÄ«bas komandu grafikos, kas izraisa papildu kavÄ“Å”anos

DevOps rokasgrāmata iesācējiem

Konfrontācija starp DevOps, Agile un tradicionālo IT

DevOps bieži tiek apspriests saistÄ«bā ar citām IT praksēm, Ä«paÅ”i Agile un Waterfall IT.

Agile ir programmatÅ«ras ražoÅ”anas principu, vērtÄ«bu un prakses kopums. Tātad, piemēram, ja jums ir ideja, kuru vēlaties pārveidot par programmatÅ«ru, varat izmantot Agile principus un vērtÄ«bas. Taču Ŕī programmatÅ«ra var darboties tikai izstrādes vai testÄ“Å”anas vidē. Jums ir nepiecieÅ”ams vienkārÅ”s, droÅ”s veids, kā ātri un atkārtoti pārvietot programmatÅ«ru uz ražoÅ”anu, un tas ir iespējams, izmantojot DevOps rÄ«kus un metodes. Agile programmatÅ«ras izstrāde koncentrējas uz izstrādes procesiem, un DevOps ir atbildÄ«gs par izstrādi un izvietoÅ”anu visdroŔākajā un uzticamākajā veidā.

Tradicionālā Å«denskrituma modeļa salÄ«dzināŔana ar DevOps ir labs veids, kā izprast DevOps sniegtās priekÅ”rocÄ«bas. Tālāk sniegtajā piemērā tiek pieņemts, ka lietojumprogramma bÅ«s pieejama pēc četrām nedēļām, izstrāde ir pabeigta par 85%, lietojumprogramma bÅ«s pieejama tieÅ”saistē, un serveru iegādes process koda nosÅ«tÄ«Å”anai ir tikko sācies.

Tradicionālie procesi
Procesi pakalpojumā DevOps

Pēc jaunu serveru pasÅ«tÄ«juma veikÅ”anas izstrādes komanda strādā pie testÄ“Å”anas. Darba grupa strādā pie plaŔās dokumentācijas, kas uzņēmumiem nepiecieÅ”ama infrastruktÅ«ras izvietoÅ”anai.
Kad ir veikts jaunu serveru pasūtījums, izstrādes un operāciju komandas strādā kopā, lai instalētu jaunos serverus. Tas ļauj labāk izprast savas infrastruktūras prasības.

Informācija par kļūmjpārlēci, dublÄ“Å”anu, datu centru atraÅ”anās vietām un uzglabāŔanas prasÄ«bām ir maldinoÅ”a, jo nav informācijas no izstrādes komandas, kurai bÅ«tu dziļas zināŔanas par domēnu.
Detalizēta informācija par kļūmjpārlēci, dublÄ“Å”anu, avāriju atkopÅ”anu, datu centru atraÅ”anās vietām un uzglabāŔanas prasÄ«bām ir zināma un pareiza, pateicoties izstrādes komandas ieguldÄ«jumam.

Operāciju komandai nav ne jausmas par izstrādes komandas progresu. Viņa arī izstrādā uzraudzības plānu, pamatojoties uz savām idejām.

Operāciju komanda pilnībā apzinās izstrādes komandas progresu. Viņa arī sadarbojas ar izstrādes komandu, un viņi strādā kopā, lai izstrādātu uzraudzības plānu, kas atbilst IT un biznesa vajadzībām. Viņi izmanto arī lietojumprogrammu veiktspējas uzraudzības (APM) rīkus.

Slodzes pārbaude, kas veikta pirms lietojumprogrammas palaiÅ”anas, izraisa lietojumprogrammas avāriju, aizkavējot tās palaiÅ”anu.
Slodzes pārbaude, kas veikta pirms lietojumprogrammas palaiÅ”anas, izraisa sliktu veiktspēju. Izstrādes komanda ātri novērÅ” problēmas, un lietojumprogramma tiek palaista laikā.

DevOps dzīves cikls

DevOps ietver noteiktu vispārpieņemtu praksi.

Nepārtraukta plānoŔana

Nepārtraukta plānoÅ”ana balstās uz ekonomiskiem principiem, lai sāktu ar mazumiņu, identificējot resursus un rezultātus, kas nepiecieÅ”ami, lai pārbaudÄ«tu uzņēmuma vai vÄ«zijas vērtÄ«bu, nepārtraukti pielāgotos, novērtētu progresu, mācÄ«tos no klientu vajadzÄ«bām, mainÄ«tu virzienu pēc vajadzÄ«bas, lai pielāgotos veiklÄ«bai, un no jauna izstrādātu biznesa plānu.

Kopīga attīstība

SadarbÄ«bas izstrādes process ļauj uzņēmumiem, izstrādes komandām un testÄ“Å”anas komandām, kas atrodas dažādās laika zonās, nepārtraukti piegādāt kvalitatÄ«vu programmatÅ«ru. Tas ietver vairāku platformu izstrādi, vairāku valodu programmÄ“Å”anas atbalstu, lietotāja stāstu izveidi, ideju izstrādi un dzÄ«ves cikla pārvaldÄ«bu. SadarbÄ«bas attÄ«stÄ«ba ietver nepārtrauktas integrācijas procesu un praksi, kas veicina biežu koda integrāciju un automatizētas bÅ«ves. Bieži izvietojot kodu lietojumprogrammā, integrācijas problēmas tiek identificētas dzÄ«ves cikla sākumā (kad tās ir vieglāk novērst), un kopējais integrācijas darbs tiek samazināts, izmantojot nepārtrauktu atgriezenisko saiti, jo projekts uzrāda nepārtrauktu un redzamu progresu.

Nepārtraukta pārbaude

Nepārtraukta testÄ“Å”ana samazina testÄ“Å”anas izmaksas, palÄ«dzot izstrādātāju komandām lÄ«dzsvarot ātrumu un kvalitāti. Tas arÄ« novērÅ” testÄ“Å”anas vājās vietas, izmantojot pakalpojumu virtualizāciju, un ļauj viegli izveidot virtualizētas testa vides, kuras var viegli koplietot, izvietot un atjaunināt, mainoties sistēmām. Å Ä«s iespējas samazina testÄ“Å”anas vides nodroÅ”ināŔanas un uzturÄ“Å”anas izmaksas un saÄ«sina testa cikla laikus, ļaujot integrācijas testÄ“Å”anai notikt agrākā dzÄ«ves cikla posmā.

Nepārtraukta izlaiŔana un izvietoŔana

Å Ä«s metodes nodroÅ”ina pamatpraksi: nepārtrauktu izlaiÅ”anu un izvietoÅ”anu. To nodroÅ”ina nepārtraukts cauruļvads, kas automatizē galvenos procesus. Tas samazina manuālās darbÄ«bas, resursu gaidÄ«Å”anas laiku un pārstrādi, nodroÅ”inot izvietoÅ”anu, nospiežot pogu, tādējādi radot vairāk laidienu, mazāk kļūdu un pilnÄ«gu caurspÄ«dÄ«gumu.

Automatizācijai ir galvenā loma stabilas un uzticamas programmatÅ«ras izlaiÅ”anas nodroÅ”ināŔanā. Viens no lielākajiem izaicinājumiem ir veikt manuālus procesus, piemēram, veidoÅ”anu, regresiju, izvietoÅ”anu un infrastruktÅ«ras izveidi, un tos automatizēt. Tam nepiecieÅ”ama pirmkoda versijas kontrole; testÄ“Å”anas un izvietoÅ”anas scenāriji; infrastruktÅ«ras un lietojumprogrammu konfigurācijas dati; un bibliotēkas un pakotnes, no kurām ir atkarÄ«ga lietojumprogramma. Vēl viens svarÄ«gs faktors ir iespēja noskaidrot visu vidi stāvokli.

Nepārtraukta uzraudzība

Nepārtrauktā uzraudzÄ«ba nodroÅ”ina uzņēmuma lÄ«meņa pārskatus, kas palÄ«dz izstrādātāju komandām izprast lietojumprogrammu pieejamÄ«bu un veiktspēju ražoÅ”anas vidēs, pirms tās tiek izvietotas ražoÅ”anā. AgrÄ«na atgriezeniskā saite, ko nodroÅ”ina nepārtraukta uzraudzÄ«ba, ir ļoti svarÄ«ga, lai samazinātu kļūdu izmaksas un virzÄ«tu projektus pareizajā virzienā. Å Ä« prakse bieži ietver uzraudzÄ«bas rÄ«kus, kas parasti atklāj metriku, kas saistÄ«ta ar lietojumprogrammu veiktspēju.

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

Nepārtraukta atgriezeniskā saite un optimizācija nodroÅ”ina vizuālu klientu plÅ«smas attēlojumu un precÄ«zi nosaka problemātiskās jomas. Atsauksmes var iekļaut gan pirmspārdoÅ”anas, gan pēcpārdoÅ”anas posmos, lai palielinātu vērtÄ«bu un nodroÅ”inātu veiksmÄ«gu vēl vairāk darÄ«jumu. Tas viss nodroÅ”ina tÅ«lÄ«tēju klientu problēmu galveno iemeslu vizualizāciju, kas ietekmē viņu uzvedÄ«bu un ietekmi uz uzņēmējdarbÄ«bu.

DevOps rokasgrāmata iesācējiem

DevOps priekŔrocības

DevOps var palÄ«dzēt izveidot vidi, kurā izstrādātāji un operācijas strādā kā komanda, lai sasniegtu kopÄ«gus mērÄ·us. SvarÄ«gs pavērsiens Å”ajā procesā ir nepārtrauktas integrācijas un nepārtrauktas piegādes (CI/CD) ievieÅ”ana. Å Ä«s metodes ļaus komandām ātrāk laist programmatÅ«ru tirgÅ« ar mazāku kļūdu skaitu.

Svarīgas DevOps priekŔrocības ir:

  • ParedzamÄ«ba: DevOps piedāvā ievērojami zemāku kļūmju lÄ«meni jauniem laidieniem.
  • UzturamÄ«ba: DevOps ļauj viegli atkopt, ja jaunais laidiens neizdodas vai lietojumprogramma nedarbojas.
  • ReproducējamÄ«ba: bÅ«vējuma vai koda versijas kontrole ļauj pēc vajadzÄ«bas atjaunot iepriekŔējās versijas.
  • Augstāka kvalitāte: infrastruktÅ«ras problēmu risināŔana uzlabo lietojumprogrammu izstrādes kvalitāti.
  • Laiks lÄ«dz tirgum: programmatÅ«ras piegādes optimizÄ“Å”ana samazina laiku lÄ«dz tirgum par 50%.
  • Riska samazināŔana: droŔības ievieÅ”ana programmatÅ«ras dzÄ«ves ciklā samazina defektu skaitu visā dzÄ«ves ciklā.
  • Izmaksu efektivitāte: tiekÅ”anās pēc izmaksu efektivitātes programmatÅ«ras izstrādē piesaista augstāko vadÄ«bu.
  • Stabilitāte: programmatÅ«ras sistēma ir stabilāka, droŔāka, un izmaiņas var pārbaudÄ«t.
  • Lielākas kodu bāzes sadalÄ«Å”ana pārvaldāmās daļās: DevOps pamatā ir elastÄ«gas izstrādes metodes, kas ļauj sadalÄ«t lielu kodu bāzi mazākās, pārvaldāmās daļās.

DevOps principi

DevOps pieņemÅ”ana radÄ«ja vairākus principus, kas ir attÄ«stÄ«juÅ”ies (un turpina attÄ«stÄ«ties). Lielākā daļa risinājumu nodroÅ”inātāju ir izstrādājuÅ”i savas dažādu metožu modifikācijas. Visi Å”ie principi ir balstÄ«ti uz holistisku pieeju DevOps, un jebkura lieluma organizācijas var tos izmantot.

Izstrādāt un testēt ražoÅ”anai lÄ«dzÄ«gā vidē

Ideja ir ļaut izstrādes un kvalitātes nodroÅ”ināŔanas (QA) komandām izstrādāt un testēt sistēmas, kas darbojas kā ražoÅ”anas sistēmas, lai tās varētu redzēt, kā lietojumprogramma darbojas un darbojas ilgi pirms tā ir gatava izvietoÅ”anai.

Lai risinātu trÄ«s galvenās iespējamās problēmas, lietojumprogramma ir jāsavieno ar ražoÅ”anas sistēmām pēc iespējas agrāk tās dzÄ«ves ciklā. Pirmkārt, tas ļauj pārbaudÄ«t lietojumprogrammu vidē, kas ir tuvu reālajai videi. Otrkārt, tas ļauj iepriekÅ” pārbaudÄ«t un apstiprināt lietojumprogrammu piegādes procesus. TreÅ”kārt, tas ļauj operāciju komandai dzÄ«ves cikla sākumā pārbaudÄ«t, kā viņu vide darbosies, kad lietojumprogrammas tiks izvietotas, tādējādi ļaujot izveidot ļoti pielāgotu, uz lietojumprogrammām orientētu vidi.

Izvietot ar atkārtojamiem, uzticamiem procesiem

Å is princips ļauj izstrādes un operāciju komandām atbalstÄ«t veiklus programmatÅ«ras izstrādes procesus visā programmatÅ«ras dzÄ«ves ciklā. Automatizācijai ir izŔķiroÅ”a nozÄ«me iteratÄ«vu, uzticamu un atkārtojamu procesu radÄ«Å”anā. Tāpēc organizācijai ir jāizveido piegādes cauruļvads, kas nodroÅ”ina nepārtrauktu, automatizētu izvietoÅ”anu un testÄ“Å”anu. Bieža izvietoÅ”ana arÄ« ļauj komandām pārbaudÄ«t izvietoÅ”anas procesus, tādējādi samazinot izvietoÅ”anas kļūmju risku tieÅ”o izlaidumu laikā.

Darba kvalitātes uzraudzība un pārbaude

Organizācijas labi pārrauga lietojumprogrammas ražoÅ”anā, jo tām ir rÄ«ki, kas reāllaikā tver metriku un galvenos veiktspējas rādÄ«tājus (KPI). Å is princips pārceļ uzraudzÄ«bu dzÄ«ves cikla sākumā, nodroÅ”inot, ka automatizētā testÄ“Å”ana procesa sākumā uzrauga lietojumprogrammas funkcionālos un nefunkcionālos atribÅ«tus. Ikreiz, kad lietojumprogramma tiek pārbaudÄ«ta un izvietota, ir jāpārbauda un jāanalizē kvalitātes rādÄ«tāji. UzraudzÄ«bas rÄ«ki nodroÅ”ina agrÄ«nu brÄ«dinājumu par darbÄ«bas un kvalitātes problēmām, kas var rasties ražoÅ”anas laikā. Å ie rādÄ«tāji ir jāapkopo tādā formātā, kas ir pieejams un saprotams visām ieinteresētajām pusēm.

Atsauksmju cilpu uzlaboŔana

Viens no DevOps procesu mērÄ·iem ir ļaut organizācijām reaģēt un veikt izmaiņas ātrāk. ProgrammatÅ«ras piegādē, lai sasniegtu Å”o mērÄ·i, organizācijai ir savlaicÄ«gi jāsaņem atsauksmes un pēc tam ātri jāmācās no katras veiktās darbÄ«bas. Å is princips nosaka, ka organizācijām ir jāizveido saziņas kanāli, kas ļauj ieinteresētajām personām piekļūt un mijiedarboties ar atgriezenisko saiti. Izstrādi var veikt, pielāgojot savus projekta plānus vai prioritātes. RažoÅ”ana var darboties, 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: Gits, Gerits, Bugzilla; Jenkins un citi atvērtā pirmkoda rÄ«ki CI/CD
  • Montāža: Apache Maven, Gradle, Apache Ant, Packer
  • Testi: JUnit, gurÄ·is, selēns, Apache JMeter

Ops

  • IzlaiÅ”ana, izvietoÅ”ana, darbÄ«bas: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper utt., Netflix Archaius, Terraform
  • UzraudzÄ«ba: Grafana, Prometheus, Nagios, InfluxDB, Fluentd un citi, kas minēti Å”ajā rokasgrāmatā

(*Operāciju rÄ«ki ir numurēti operāciju komandu lietoÅ”anas secÄ«bā, taču to rÄ«ki pārklājas ar izlaiÅ”anas un izvietoÅ”anas rÄ«ku dzÄ«ves cikla posmiem. Lai atvieglotu lasÄ«Å”anu, numerācija ir noņemta.)

Noslēgumā

DevOps ir arvien populārāka metodoloÄ£ija, kuras mērÄ·is ir apvienot izstrādātājus un operācijas kā vienu vienÄ«bu. Tas ir unikāls, atŔķiras no tradicionālajām IT operācijām un papildina Agile (bet nav tik elastÄ«gs).

DevOps rokasgrāmata iesācējiem

ApgÅ«stot maksas tieÅ”saistes kursus no SkillFactory, uzziniet, kā iegÅ«t pieprasÄ«tu profesiju no jauna vai iegÅ«t augstāku lÄ«meni prasmju un atalgojuma ziņā:

vairāk kursu

Informācija

Avots: www.habr.com

Pievieno komentāru