Rejea: jinsi mchakato wa Ujumuishaji Unaoendelea unavyofanya kazi

Leo tutaangalia historia ya neno, kujadili matatizo ya kutekeleza CI, na kutoa zana kadhaa maarufu ambazo zitakusaidia kufanya kazi nayo.

Rejea: jinsi mchakato wa Ujumuishaji Unaoendelea unavyofanya kazi
/flickr/ Altug Karakoc / CC BY / Picha imebadilishwa

mrefu

Ujumuishaji Unaoendelea ni mbinu ya ukuzaji wa programu ambayo inahusisha uundaji wa mradi wa mara kwa mara na majaribio ya msimbo.

Lengo ni kufanya mchakato wa ujumuishaji kutabirika na kugundua hitilafu na hitilafu zinazoweza kutokea katika hatua ya awali, ili kuwe na muda zaidi wa kuzirekebisha.

Neno Integration Continuous lilionekana kwa mara ya kwanza mnamo 1991. Ilianzishwa na mtayarishaji wa lugha ya UML Grady Butch (Grady Booch). Mhandisi alianzisha wazo la CI kama sehemu ya mazoezi yake ya maendeleo - Mbinu ya booch. Ilimaanisha uboreshaji unaoongezeka wa usanifu wakati wa kubuni mifumo inayolenga kitu. Gradi hakuelezea mahitaji yoyote ya ujumuishaji unaoendelea. Lakini baadaye katika kitabu chake "Uchanganuzi Unaoelekezwa kwa Kitu na Usanifu kwa kutumia Programu"Alisema kuwa lengo la mbinu hiyo ni kuharakisha kutolewa kwa" matoleo ya ndani.

Hadithi

Mnamo 1996, CI ilipitishwa na waundaji wa mbinu programu kali (XP) - Kent Beck (Kent Beck) na Ron Jeffries (Ron Jeffries). Ushirikiano endelevu ukawa mojawapo ya kanuni kuu kumi na mbili za mbinu zao. Waanzilishi wa XP walifafanua mahitaji ya mbinu ya CI na walibainisha haja ya kujenga mradi mara kadhaa kwa siku.

Katika miaka ya mapema ya 2000, mmoja wa waanzilishi wa Agile Alliance alianza kukuza mbinu endelevu ya ujumuishaji. Martin Fowler (Martin Fowler). Majaribio yake na CI yalisababisha zana ya kwanza ya programu katika eneo hili - CruiseControl. Huduma hiyo iliundwa na mwenzake wa Martin, Matthew Foemmel.

Mzunguko wa uundaji katika zana hutekelezwa kama daemoni ambayo hukagua mara kwa mara mfumo wa udhibiti wa toleo kwa mabadiliko katika msingi wa nambari. Suluhisho linaweza kupakuliwa leo - ni kusambazwa na chini ya leseni kama BSD.

Pamoja na ujio wa programu kwa CI, makampuni zaidi na zaidi walianza kupitisha mazoezi. Kulingana na utafiti wa Forrester [ukurasa wa 5 ripoti], mwaka wa 2009, 86% ya makampuni hamsini ya teknolojia yaliyofanyiwa utafiti yalitumia au kutekeleza mbinu za CI.

Leo, mazoezi ya Ujumuishaji Unaoendelea hutumiwa na mashirika kutoka kwa tasnia anuwai. Mnamo 2018, mtoa huduma mkubwa wa wingu alifanya uchunguzi kati ya wataalamu wa IT kutoka kwa makampuni katika sekta za huduma, elimu na fedha. Kati ya elfu sita waliohojiwa, 58% walisema kuwa wanatumia zana na kanuni za CI katika kazi zao.

Jinsi gani kazi hii

Ujumuishaji unaoendelea unategemea zana mbili: mfumo wa kudhibiti toleo na seva ya CI. Mwisho unaweza kuwa kifaa halisi au mashine ya kawaida katika mazingira ya wingu. Wasanidi programu hupakia msimbo mpya mara moja au zaidi kwa siku. Seva ya CI inainakili kiotomatiki na vitegemezi vyote na kuijenga. Baadaye, inaendesha ujumuishaji na vipimo vya kitengo. Ikiwa majaribio yatapita kwa mafanikio, mfumo wa CI unatumia msimbo.

Mchoro wa mchakato wa jumla unaweza kuwakilishwa kama ifuatavyo:

Rejea: jinsi mchakato wa Ujumuishaji Unaoendelea unavyofanya kazi

Mbinu ya CI hutoa mahitaji kadhaa kwa watengenezaji:

  • Sahihisha matatizo mara moja. Kanuni hii ilikuja kwa CI kutoka kwa programu kali. Kurekebisha hitilafu ni kipaumbele cha juu zaidi cha wasanidi programu.
  • Michakato otomatiki. Watengenezaji na wasimamizi lazima kila wakati watafute vikwazo katika mchakato wa ujumuishaji na waondoe. Kwa mfano, mara nyingi kuna vikwazo katika ushirikiano zinageuka kupima.
  • Fanya makusanyiko mara nyingi iwezekanavyo. Mara moja kwa siku ili kusawazisha kazi ya timu.

Ugumu wa utekelezaji

Tatizo la kwanza ni gharama kubwa za uendeshaji. Hata kama kampuni itatumia zana zilizo wazi za CI (ambazo tutazungumza baadaye), bado italazimika kutumia pesa kwa msaada wa miundombinu. Walakini, teknolojia za wingu zinaweza kuwa suluhisho.

Wanarahisisha mkusanyiko wa usanidi tofauti wa kompyuta. Plus ya kampuni wanalipwa tu kwa rasilimali zinazotumika, ambayo husaidia kuokoa kwenye miundombinu.

Kulingana na tafiti [ukurasa wa 14 nakala], ushirikiano unaoendelea huongeza mzigo kwa wafanyakazi wa kampuni (angalau mara ya kwanza). Wanapaswa kujifunza zana mpya, na wenzako hawasaidii kila wakati katika mafunzo. Kwa hiyo, unapaswa kushughulika na mifumo na huduma mpya popote ulipo.

Ugumu wa tatu ni matatizo na automatisering. Mashirika yenye idadi kubwa ya msimbo wa urithi ambao haujashughulikiwa na majaribio ya kiotomatiki yanakabiliwa na tatizo hili. Hii inasababisha ukweli kwamba kanuni imeandikwa upya kabla ya utekelezaji kamili wa CI.

Rejea: jinsi mchakato wa Ujumuishaji Unaoendelea unavyofanya kazi
/flickr/ wao / CC BY-SA

Nani anatumia

Wakubwa wa IT walikuwa miongoni mwa watu wa kwanza kufahamu faida za mbinu hiyo. Google hutumia ushirikiano unaoendelea tangu katikati ya miaka ya 2000. CI ilitekelezwa ili kutatua tatizo la ucheleweshaji katika injini ya utafutaji. Ujumuishaji unaoendelea ulisaidia kugundua haraka na kutatua shida. Sasa CI inatumiwa na idara zote za kampuni kubwa ya IT.

Ushirikiano unaoendelea pia husaidia makampuni madogo, na zana za CI pia hutumiwa na mashirika ya kifedha na afya. Kwa mfano, katika Morningstar, huduma za ujumuishaji zinazoendelea zilisaidia kurekebisha udhaifu wa 70%. Na jukwaa la matibabu la Philips Healthcare liliweza kuongeza kasi maradufu ya masasisho ya majaribio.

Vyombo vya

Hapa kuna zana maarufu za CI:

  • Jenkins ni moja ya mifumo maarufu ya CI. Inasaidia zaidi ya programu-jalizi elfu moja za kuunganishwa na VCS mbalimbali, majukwaa ya wingu na huduma zingine. Tunatumia pia Jenkins kwa 1cloud: chombo imejumuishwa katika mfumo wetu wa DevOps. Yeye huangalia mara kwa mara tawi la Git lililokusudiwa kupimwa.
  • Buildbot - mfumo wa python wa kuandika michakato yako mwenyewe ya ujumuishaji inayoendelea. Usanidi wa awali wa chombo ni ngumu sana, lakini hii inalipwa na chaguzi nyingi za ubinafsishaji. Miongoni mwa faida za mfumo, watumiaji huonyesha kiwango cha chini cha rasilimali.
  • Mkutano CI ni seva kutoka kwa Pivotal inayotumia vyombo vya Docker. Concourse CI inaunganishwa na zana zozote na mifumo ya udhibiti wa toleo. Waendelezaji kumbuka kuwa mfumo huo unafaa kwa kazi katika makampuni ya ukubwa wowote.
  • Gitlab CI ni zana iliyojengwa kwenye mfumo wa udhibiti wa toleo la GitLab. Huduma huendeshwa katika wingu na hutumia faili za YAML kwa usanidi. Kama Concourse, Gitlab CI inatumika Vyombo vya Docker ambavyo husaidia kutenganisha michakato tofauti kutoka kwa kila mmoja.
  • Uongozi ni seva ya CI ya wingu ambayo inafanya kazi na GitHub, GitLab na BitBucket. Jukwaa halihitaji usanidi wa awali wa muda mrefu - michakato ya kawaida ya CI iliyosakinishwa awali inapatikana katika Codeship. Kwa ndogo (hadi 100 hujenga kwa mwezi) na miradi ya chanzo wazi, Codeship inapatikana bila malipo.

Nyenzo kutoka kwa blogi yetu ya ushirika:

Chanzo: mapenzi.com

Kuongeza maoni