DevOps ni nani na haihitajiki wakati gani?

DevOps ni nani na haihitajiki wakati gani?

DevOps imekuwa mada maarufu sana katika miaka michache iliyopita. Watu wengi wanaota ndoto ya kujiunga nayo, lakini, kama inavyoonyesha mazoezi, mara nyingi kwa sababu ya kiwango cha mishahara.

Baadhi ya watu wanaorodhesha DevOps kwenye wasifu wao, ingawa hawajui au kuelewa kiini cha neno hilo kila wakati. Watu wengine wanafikiri kwamba baada ya kusoma Ansible, GitLab, Jenkins, Terraform na kadhalika (orodha inaweza kuendelea kulingana na ladha yako), mara moja utakuwa "devopsist". Hii ni, bila shaka, si kweli.

Kwa miaka michache iliyopita, nimehusika zaidi katika utekelezaji wa DevOps katika makampuni mbalimbali. Kabla ya hapo, alifanya kazi kwa zaidi ya miaka 20 katika nyadhifa kuanzia msimamizi wa mfumo hadi mkurugenzi wa IT. Kwa sasa ni Mhandisi Kiongozi wa DevOps katika Playgendary.

DevOps ni nani

Wazo la kuandika nakala liliibuka baada ya swali lingine: "DevOps ni nani?" Bado hakuna neno lililowekwa la nini au ni nani. Baadhi ya majibu tayari yako katika hili video. Kwanza, nitaangazia mambo makuu kutoka kwayo, na kisha nitashiriki uchunguzi na mawazo yangu.

DevOps si mtaalamu ambaye anaweza kuajiriwa, si seti ya huduma, na si idara ya watengenezaji na wahandisi.

DevOps ni falsafa na mbinu.

Kwa maneno mengine, ni seti ya mazoea ambayo husaidia wasanidi kuingiliana kikamilifu na wasimamizi wa mfumo. Hiyo ni, kuunganisha na kuunganisha taratibu za kazi kwa kila mmoja.

Pamoja na ujio wa DevOps, muundo na majukumu ya wataalamu yalibakia sawa (kuna watengenezaji, kuna wahandisi), lakini sheria za mwingiliano zimebadilika. Mipaka kati ya idara imefifia.

Malengo ya DevOps yanaweza kuelezewa katika pointi tatu:

  • Programu lazima isasishwe mara kwa mara.
  • Programu lazima ifanyike haraka.
  • Programu inapaswa kupelekwa kwa urahisi na kwa muda mfupi.

Hakuna zana moja ya DevOps. Kusanidi, kutoa na kusoma bidhaa kadhaa haimaanishi kuwa DevOps imeonekana kwenye kampuni. Kuna zana nyingi na zote hutumiwa katika hatua tofauti, lakini hutumikia kusudi moja la kawaida.

DevOps ni nani na haihitajiki wakati gani?
Na hii ni sehemu tu ya zana za DevOps

Nimekuwa nikihoji watu kwa nafasi ya mhandisi wa DevOps kwa zaidi ya miaka 2 sasa, na nimegundua jinsi ilivyo muhimu kuelewa kwa uwazi kiini cha neno hilo. Nimekusanya uzoefu maalum, uchunguzi na mawazo ambayo ninataka kushiriki.

Kutoka kwa uzoefu wa mahojiano, naona picha ifuatayo: wataalamu wanaochukulia DevOps kama jina la kazi kwa kawaida huwa na kutoelewana na wenzao.

Kulikuwa na mfano wa kushangaza. Kijana alikuja kwenye mahojiano na maneno mengi ya busara kwenye wasifu wake. Katika kazi zake tatu za mwisho, alikuwa na uzoefu wa miezi 5-6. Niliacha vituo viwili kwa sababu "havikuanza." Lakini kuhusu kampuni ya tatu, alisema kuwa hakuna mtu anayemuelewa huko: watengenezaji wanaandika msimbo kwenye Windows, na mkurugenzi analazimisha kanuni hii "imefungwa" kwenye Docker ya kawaida na kujengwa kwenye bomba la CI / CD. Mwanadada huyo alisema mambo mengi mabaya juu ya mahali pake pa kazi na wenzake - nilitaka tu kujibu: "Kwa hivyo hautauza tembo."

Kisha nikamuuliza swali ambalo liko juu kwenye orodha yangu kwa kila mgombea.

- Je, DevOps ina maana gani kwako binafsi?
- Kwa ujumla au ninaionaje?

Nilipendezwa na maoni yake binafsi. Alijua nadharia na asili ya neno hilo, lakini hakukubaliana nao vikali. Aliamini DevOps ilikuwa jina la kazi. Hapa ndipo mzizi wa matatizo yake ulipo. Pamoja na wataalamu wengine wenye maoni sawa.

Waajiri, baada ya kusikia mengi kuhusu "uchawi wa DevOps", wanataka kupata mtu ambaye atakuja na kuunda "uchawi" huu. Na waombaji kutoka kwa kitengo cha "DevOps ni kazi" hawaelewi kuwa kwa njia hii hawataweza kukidhi matarajio. Na, kwa ujumla, waliandika DevOps kwenye wasifu wao kwa sababu ni mtindo na wanalipa sana.

Mbinu na falsafa ya DevOps

Mbinu inaweza kuwa ya kinadharia na ya vitendo. Kwa upande wetu, ni ya pili. Kama nilivyotaja hapo juu, DevOps ni seti ya mazoea na mikakati inayotumiwa kufikia malengo yaliyotajwa. Na katika kila kesi, kulingana na michakato ya biashara ya kampuni, inaweza kutofautiana kwa kiasi kikubwa. Ambayo haifanyi kuwa bora au mbaya zaidi.

Mbinu ya DevOps ni njia pekee ya kufikia malengo.

Sasa kuhusu falsafa ya DevOps ni nini. Na hili pengine ni swali gumu zaidi.

Ni vigumu sana kutunga jibu fupi na fupi, kwa sababu bado halijarasimishwa. Na kwa kuwa wafuasi wa falsafa ya DevOps wanajishughulisha zaidi na mazoezi, hakuna wakati wa kufalsafa. Hata hivyo, hii ni mchakato muhimu sana. Aidha, inahusiana moja kwa moja na shughuli za uhandisi. Kuna hata eneo maalum la maarifa - falsafa ya teknolojia.

Hakukuwa na somo kama hilo katika chuo kikuu changu, ilibidi nisome kila kitu peke yangu kwa kutumia nyenzo ambazo ningeweza kupata katika miaka ya 90. Mada ni ya hiari kwa elimu ya uhandisi, kwa hivyo ukosefu wa urasimishaji wa jibu. Lakini watu hao ambao wamezama sana katika DevOps huanza kuhisi "roho" fulani au "ufahamu usio na ufahamu" wa michakato yote ya kampuni.

Kwa kutumia uzoefu wangu mwenyewe, nilijaribu kurasimisha baadhi ya "postulates" za falsafa hii. Matokeo yake ni yafuatayo:

  • DevOps sio kitu huru ambacho kinaweza kugawanywa katika eneo tofauti la maarifa au shughuli.
  • Wafanyakazi wote wa kampuni wanapaswa kuongozwa na mbinu ya DevOps wanapopanga shughuli zao.
  • DevOps huathiri michakato yote ndani ya kampuni.
  • DevOps ipo ili kupunguza gharama za muda kwa michakato yoyote ndani ya kampuni ili kuhakikisha maendeleo ya huduma zake na faraja ya juu ya mteja.
  • DevOps, katika lugha ya kisasa, ni nafasi ya kila mfanyakazi wa kampuni, inayolenga kupunguza gharama za muda na kuboresha ubora wa bidhaa za TEHAMA zinazotuzunguka.

Nadhani "postulates" zangu ni mada tofauti ya majadiliano. Lakini sasa kuna kitu cha kujenga.

Nini DevOps Inafanya

Neno kuu hapa ni mawasiliano. Kuna mawasiliano mengi, ambayo mwanzilishi wake anapaswa kuwa mhandisi huyo wa DevOps. Kwanini hivyo? Kwa sababu hii ni falsafa na mbinu, na kisha tu maarifa ya uhandisi.

Siwezi kuongea kwa kujiamini 100% kuhusu soko la ajira la Magharibi. Lakini najua mengi kuhusu soko la DevOps nchini Urusi. Mbali na mamia ya mahojiano, katika kipindi cha mwaka mmoja na nusu uliopita nimeshiriki katika mamia ya mauzo ya kiufundi ya huduma ya "Utekelezaji wa DevOps" kwa makampuni makubwa ya Kirusi na benki.

Huko Urusi, DevOps bado ni mada mchanga sana, lakini tayari ina mwelekeo. Kwa kadiri ninavyojua, huko Moscow pekee uhaba wa wataalam kama hao mnamo 2019 ulikuwa zaidi ya watu 1000. Na neno Kubernetes kwa waajiri ni karibu kama kitambaa chekundu cha fahali. Wafuasi wa chombo hiki wako tayari kuitumia hata pale ambapo sio lazima na faida ya kiuchumi. Mwajiri haelewi kila wakati katika hali zipi ni kipi kinafaa zaidi kutumia, na kwa uwekaji sahihi, kudumisha nguzo ya Kubernetes hugharimu mara 2-3 zaidi ya kupeleka maombi kwa kutumia mpango wa kawaida wa nguzo. Itumie pale unapoihitaji sana.

DevOps ni nani na haihitajiki wakati gani?

Utekelezaji wa DevOps ni ghali katika suala la pesa. Na inahalalishwa pale tu inapoleta manufaa ya kiuchumi katika maeneo mengine, na sio yenyewe.

Wahandisi wa DevOps, kwa kweli, ni waanzilishi - ndio wanapaswa kuwa wa kwanza kutekeleza mbinu hii katika kampuni na kuunda michakato. Ili hii ifanikiwe, mtaalamu lazima aingiliane kila wakati na wafanyikazi na wenzake katika viwango vyote. Kama ninavyosema kawaida, wafanyikazi wote wa kampuni wanapaswa kuhusika katika mchakato wa utekelezaji wa DevOps: kutoka kwa mwanamke wa kusafisha hadi Mkurugenzi Mtendaji. Na hii ni sharti. Ikiwa mwanachama mdogo zaidi wa timu hajui na kuelewa DevOps ni nini na kwa nini hatua fulani za shirika zinafanywa, basi utekelezaji uliofanikiwa hautafanya kazi.

Pia, mhandisi wa DevOps anahitaji kutumia rasilimali ya utawala mara kwa mara. Kwa mfano, kushinda "upinzani wa mazingira" - wakati timu haiko tayari kukubali zana na mbinu za DevOps.

Msanidi anapaswa kuandika nambari na majaribio pekee. Ili kufanya hivyo, haitaji kompyuta ndogo yenye nguvu nyingi ambayo atatumia na kusaidia ndani ya nchi miundombinu yote ya mradi. Kwa mfano, msanidi wa mbele huweka vipengele vyote vya programu kwenye kompyuta yake ya mbali, ikiwa ni pamoja na hifadhidata, emulator ya S3 (minio), nk. Hiyo ni, anatumia muda mwingi kudumisha miundombinu hii ya ndani na anajitahidi peke yake na matatizo yote ya ufumbuzi huo. Badala ya kutengeneza nambari ya mbele. Watu kama hao wanaweza kuwa sugu kwa mabadiliko yoyote.

Lakini kuna timu ambazo, kinyume chake, zinafurahi kuanzisha zana na mbinu mpya, na kushiriki kikamilifu katika mchakato huu. Ingawa hata katika kesi hii, mawasiliano kati ya mhandisi wa DevOps na timu hayakughairiwa.

Wakati DevOps haihitajiki

Kuna hali wakati DevOps haihitajiki. Huu ni ukweli - unahitaji kueleweka na kukubalika.

Kwanza kabisa, hii inatumika kwa makampuni yoyote (hasa biashara ndogo ndogo), wakati faida yao haitegemei moja kwa moja kuwepo au kutokuwepo kwa bidhaa za IT zinazotoa huduma za habari kwa wateja. Na hapa hatuzungumzii tovuti ya kampuni, iwe "kadi ya biashara" tuli au yenye vitalu vya habari vya nguvu, nk.

DevOps inahitajika wakati kuridhika kwa mteja wako na hamu yake ya kurudi kwako tena kunategemea upatikanaji wa huduma hizi za habari kwa kuingiliana na mteja, ubora na ulengaji wao.

Mfano wa kushangaza ni benki moja inayojulikana sana. Kampuni haina ofisi za mteja za kawaida, mtiririko wa hati unafanywa kupitia barua au barua, na wafanyikazi wengi hufanya kazi kutoka nyumbani. Kampuni imekoma kuwa benki tu na, kwa maoni yangu, imegeuka kuwa kampuni ya IT yenye teknolojia za DevOps zilizoendelea.

Mifano na mihadhara mingine mingi inaweza kupatikana katika rekodi za mikutano ya mada na makongamano. Nilitembelea baadhi yao kibinafsi - hii ni uzoefu muhimu sana kwa wale ambao wanataka kuendeleza katika mwelekeo huu. Hapa kuna viungo vya chaneli za YouTube zilizo na mihadhara na nyenzo nzuri kwenye DevOps:

Sasa angalia biashara yako na ufikirie juu ya hili: Je, kampuni yako na faida zake hutegemea kwa kiasi gani bidhaa za IT kuwezesha mwingiliano wa wateja?

Ikiwa kampuni yako inauza samaki katika duka dogo na bidhaa pekee ya IT ni 1C mbili: Mipangilio ya Biashara (Uhasibu na UNF), basi haileti mantiki kuzungumza kuhusu DevOps.

Ikiwa unafanya kazi katika biashara kubwa ya biashara na utengenezaji (kwa mfano, unazalisha bunduki za uwindaji), basi unapaswa kufikiri juu yake. Unaweza kuchukua hatua na kuwasilisha kwa usimamizi wako matarajio ya kutekeleza DevOps. Naam, na wakati huo huo, kuongoza mchakato huu. Msimamo makini ni mojawapo ya kanuni muhimu za falsafa ya DevOps.

Ukubwa na kiasi cha mauzo ya kifedha ya kila mwaka sio kigezo kikuu cha kubainisha ikiwa kampuni yako inahitaji DevOps.

Hebu fikiria biashara kubwa ya viwanda ambayo haiingiliani moja kwa moja na wateja. Kwa mfano, baadhi ya watengenezaji magari na makampuni ya kutengeneza magari. Sina hakika sasa, lakini kutokana na uzoefu wangu wa zamani, kwa miaka mingi mwingiliano wote wa wateja ulifanyika kupitia barua pepe na simu.

Wateja wao ni orodha ndogo ya wafanyabiashara wa magari. Na kila mmoja hupewa mtaalamu kutoka kwa mtengenezaji. Mtiririko wote wa hati ya ndani hufanyika kupitia SAP ERP. Wafanyakazi wa ndani kimsingi ni wateja wa mfumo wa habari. Lakini hii IS inadhibitiwa na njia za kitamaduni za kusimamia mifumo ya nguzo. Ambayo haijumuishi uwezekano wa kutumia mazoea ya DevOps.

Kwa hivyo hitimisho: kwa biashara kama hizi, utekelezaji wa DevOps sio jambo muhimu sana, ikiwa tunakumbuka malengo ya mbinu tangu mwanzo wa kifungu. Lakini sikatai kuwa wanatumia zana za DevOps leo.

Kwa upande mwingine, kuna makampuni mengi madogo ambayo yanatengeneza programu kwa kutumia mbinu ya DevOps, falsafa, mazoea na zana. Na wanaamini kwamba gharama ya kutekeleza DevOps ni gharama inayowawezesha kushindana kwa ufanisi katika soko la programu. Mifano ya makampuni hayo yanaweza kuonekana hapa.

Kigezo kikuu cha kuelewa ikiwa DevOps inahitajika: bidhaa zako za TEHAMA zina thamani gani kwa kampuni na wateja.

Ikiwa bidhaa kuu ya kampuni inayozalisha faida ni programu, unahitaji DevOps. Na sio muhimu sana ikiwa unapata pesa halisi kwa kutumia bidhaa zingine. Hii pia inajumuisha maduka ya mtandaoni au programu za simu zenye michezo.

Michezo yoyote ipo kutokana na ufadhili: moja kwa moja au isiyo ya moja kwa moja kutoka kwa wachezaji. Katika Playgendary, tunatengeneza michezo ya rununu isiyolipishwa na zaidi ya watu 200 wanaohusika moja kwa moja katika uundaji wake. Je, tunatumiaje DevOps?

Ndio, sawa kabisa na ilivyoelezwa hapo juu. Mimi huwasiliana kila mara na wasanidi programu na wanaojaribu, na hutoa mafunzo ya ndani kwa wafanyakazi kuhusu mbinu na zana za DevOps.

Sasa tunatumia Jenkins kikamilifu kama zana ya mabomba ya CI/CD kwa ajili ya kutekeleza mabomba yote ya kuunganisha kwa Unity na utumaji kwenye Duka la Programu na Soko la Google Play. Zaidi kutoka kwa zana ya kawaida ya zana:

  • Asana - kwa usimamizi wa mradi. Muunganisho na Jenkins umesanidiwa.
  • Google Meet - kwa mikutano ya video.
  • Slack - kwa mawasiliano na arifa mbalimbali, ikiwa ni pamoja na arifa kutoka kwa Jenkins.
  • Atlassian Confluence - kwa nyaraka na kazi ya kikundi.

Mipango yetu ya haraka ni pamoja na kutambulisha uchanganuzi wa msimbo tuli kwa kutumia SonarQube na kufanya majaribio ya kiolesura otomatiki kwa kutumia Selenium katika hatua ya Ujumuishaji Unaoendelea.

Badala ya hitimisho

Ningependa kumalizia na wazo lifuatalo: ili kuwa mhandisi wa DevOps aliyehitimu sana, ni muhimu kujifunza jinsi ya kuwasiliana kuishi na watu.

Mhandisi wa DevOps ni mchezaji wa timu. Na hakuna kingine. Mpango wa kuwasiliana na wenzake unapaswa kutoka kwake, na sio chini ya ushawishi wa hali fulani. Mtaalamu wa DevOps lazima aone na kupendekeza suluhisho bora kwa timu.

Na ndiyo, utekelezaji wa ufumbuzi wowote utahitaji majadiliano mengi, na mwisho inaweza kubadilika kabisa. Kukua kwa kujitegemea, kupendekeza na kutekeleza maoni yake, mtu kama huyo ni wa kuongeza thamani kwa timu na kwa mwajiri. Ambayo, hatimaye, inaonekana kwa kiasi cha malipo yake ya kila mwezi au kwa namna ya bonuses za ziada.

Chanzo: mapenzi.com

Kuongeza maoni