Cyfeirnod: sut mae'r broses Integreiddio Parhaus yn gweithio

Heddiw, byddwn yn edrych ar hanes y tymor, yn trafod anawsterau gweithredu CI, ac yn darparu nifer o offer poblogaidd a fydd yn eich helpu i weithio gydag ef.

Cyfeirnod: sut mae'r broses Integreiddio Parhaus yn gweithio
/Flickr/ Altug Karakoc / CC GAN / Llun wedi'i addasu

Tymor

Mae Integreiddio Parhaus yn ddull o ddatblygu cymwysiadau sy'n cynnwys adeiladu prosiectau'n aml a phrofi cod.

Y nod yw gwneud y broses integreiddio yn rhagweladwy a chanfod bygiau a gwallau posibl yn gynnar, fel bod mwy o amser i'w trwsio.

Ymddangosodd y term Integreiddio Parhaus am y tro cyntaf yn 1991. Fe'i cyflwynwyd gan greawdwr yr iaith UML Cigydd Grady (Grady Booch). Cyflwynodd y peiriannydd y cysyniad o CI fel rhan o'i ymarfer datblygu ei hun - Dull Booch. Roedd yn awgrymu mireinio cynyddol y bensaernïaeth wrth ddylunio systemau gwrthrych-ganolog. Ni ddisgrifiodd Gradi unrhyw ofynion ar gyfer integreiddio parhaus. Ond yn ddiweddarach yn ei lyfr “Dadansoddi a Dylunio sy'n Canolbwyntio ar Wrthrych gyda Cheisiadau“Dywedodd mai nod y fethodoleg yw cyflymu’r broses o ryddhau “rhyddhau mewnol.”

Stori

Ym 1996, mabwysiadwyd CI gan grewyr y fethodoleg rhaglennu eithafol (XP) - Caint Beck (Kent Beck) a Ron Jeffries (Ron Jeffries). Daeth integreiddio parhaus yn un o ddeuddeg egwyddor allweddol eu hymagwedd. Eglurodd sylfaenwyr XP y gofynion ar gyfer methodoleg CI a nododd yr angen i adeiladu'r prosiect sawl gwaith y dydd.

Yn gynnar yn y 2000au, dechreuodd un o sylfaenwyr y Gynghrair Agile hyrwyddo'r fethodoleg integreiddio barhaus Martin Fowler (Martin Fowler). Arweiniodd ei arbrofion gyda CI at yr offeryn meddalwedd cyntaf yn y maes hwn - CruiseControl. Crëwyd y cyfleustodau gan gydweithiwr Martin, Matthew Foemmel.

Mae'r cylch adeiladu yn yr offeryn yn cael ei weithredu fel daemon sy'n gwirio'r system rheoli fersiwn o bryd i'w gilydd am newidiadau yn y sylfaen cod. Gellir lawrlwytho'r ateb heddiw - mae'n dosbarthu gan dan drwydded tebyg i BSD.

Gyda dyfodiad meddalwedd ar gyfer CI, dechreuodd mwy a mwy o gwmnïau fabwysiadu'r arfer. Yn ôl ymchwil Forrester [tudalen 5 adroddiad], yn 2009, roedd 86% o'r hanner cant o gwmnïau technoleg a arolygwyd yn defnyddio neu'n gweithredu dulliau CI.

Heddiw, defnyddir yr arfer o Integreiddio Parhaus gan sefydliadau o amrywiaeth eang o ddiwydiannau. Yn 2018, cynhaliodd darparwr cwmwl mawr arolwg ymhlith arbenigwyr TG o gwmnïau yn y sectorau gwasanaethau, addysg a chyllid. O'r chwe mil o ymatebwyr, dywedodd 58% eu bod yn defnyddio offer ac egwyddorion CI yn eu gwaith.

Sut mae hwn

Mae integreiddio parhaus yn seiliedig ar ddau offeryn: system rheoli fersiwn a gweinydd CI. Gall yr olaf fod naill ai'n ddyfais gorfforol neu'n beiriant rhithwir mewn amgylchedd cwmwl. Mae datblygwyr yn uwchlwytho cod newydd unwaith neu fwy y dydd. Mae'r gweinydd CI yn ei gopïo'n awtomatig gyda'r holl ddibyniaethau ac yn ei adeiladu. Wedi hynny, mae'n rhedeg profion integreiddio ac uned. Os bydd y profion yn pasio'n llwyddiannus, mae'r system CI yn defnyddio'r cod.

Gellir cynrychioli'r diagram proses gyffredinol fel a ganlyn:

Cyfeirnod: sut mae'r broses Integreiddio Parhaus yn gweithio

Mae methodoleg CI yn gwneud nifer o ofynion ar ddatblygwyr:

  • Cywiro problemau ar unwaith. Daeth yr egwyddor hon i CI o raglennu eithafol. Trwsio chwilod yw blaenoriaeth uchaf y datblygwyr.
  • Awtomeiddio prosesau. Rhaid i ddatblygwyr a rheolwyr edrych yn gyson am dagfeydd yn y broses integreiddio a'u dileu. Er enghraifft, yn aml mae tagfa mewn integreiddio yn troi allan profi.
  • Cynnal gwasanaethau mor aml â phosibl. Unwaith y dydd i gydamseru gwaith y tîm.

Anawsterau gweithredu

Y broblem gyntaf yw costau gweithredu uchel. Hyd yn oed os yw cwmni'n defnyddio offer CI agored (y byddwn yn siarad amdanynt yn ddiweddarach), bydd yn dal i orfod gwario arian ar gymorth seilwaith. Fodd bynnag, efallai mai technolegau cwmwl yw'r ateb.

Maent yn symleiddio'r cydosod o ffurfweddau cyfrifiadurol o wahanol raddfa. Plus o'r cwmni talu dim ond ar gyfer yr adnoddau a ddefnyddir, sy'n helpu i arbed ar seilwaith.

Yn ôl arolygon [tudalen 14 erthyglau], mae integreiddio parhaus yn cynyddu'r llwyth ar weithwyr cwmni (o leiaf ar y dechrau). Mae'n rhaid iddynt ddysgu offer newydd, ac nid yw cydweithwyr bob amser yn helpu gyda hyfforddiant. Felly, mae’n rhaid ichi ymdrin â fframweithiau a gwasanaethau newydd wrth fynd.

Y trydydd anhawster yw problemau gydag awtomeiddio. Mae sefydliadau sydd â llawer iawn o god etifeddiaeth nad yw profion awtomataidd yn ymdrin â nhw yn wynebu'r broblem hon. Mae hyn yn arwain at y ffaith bod y cod yn cael ei ailysgrifennu'n syml cyn gweithredu CI yn llawn.

Cyfeirnod: sut mae'r broses Integreiddio Parhaus yn gweithio
/Flickr/ theilr / CC BY-SA

Pwy sy'n defnyddio

Roedd cewri TG ymhlith y cyntaf i werthfawrogi manteision y fethodoleg. Google defnyddiau integreiddio parhaus ers canol y 2000au. Gweithredwyd CI i ddatrys y broblem o oedi yn y peiriant chwilio. Helpodd integreiddio parhaus i ganfod a datrys problemau yn gyflym. Bellach defnyddir CI gan bob adran o'r cawr TG.

Mae integreiddio parhaus hefyd yn helpu cwmnïau bach, a defnyddir offer CI hefyd gan sefydliadau ariannol a gofal iechyd. Er enghraifft, yn Morningstar, fe wnaeth gwasanaethau integreiddio parhaus helpu i glymu gwendidau 70% yn gyflymach. Ac roedd platfform meddygol Philips Healthcare yn gallu dyblu cyflymder profi diweddariadau.

Offer

Dyma rai offer poblogaidd ar gyfer CI:

  • Jenkins yw un o'r systemau CI mwyaf poblogaidd. Mae'n cefnogi mwy na mil o ategion ar gyfer integreiddio â VCS amrywiol, llwyfannau cwmwl a gwasanaethau eraill. Rydym hefyd yn defnyddio Jenkins yn 1cloud: tool cynnwys yn ein system DevOps. Mae'n gwirio'r gangen Git y bwriedir ei phrofi yn rheolaidd.
  • Buildbot — fframwaith python ar gyfer ysgrifennu eich prosesau integreiddio parhaus eich hun. Mae gosodiad cychwynnol yr offeryn yn eithaf cymhleth, ond mae'r opsiynau addasu eang yn gwneud iawn am hyn. Ymhlith manteision y fframwaith, mae defnyddwyr yn tynnu sylw at ei ddwysedd adnoddau isel.
  • CI CI yn weinydd o Pivotal sy'n defnyddio cynwysyddion Docker. Mae Concourse CI yn integreiddio ag unrhyw offer a systemau rheoli fersiynau. Mae'r datblygwyr yn nodi bod y system yn addas ar gyfer gwaith mewn cwmnïau o unrhyw faint.
  • Gitlab CI yn offeryn sydd wedi'i ymgorffori yn system rheoli fersiwn GitLab. Mae'r gwasanaeth yn rhedeg yn y cwmwl ac yn defnyddio ffeiliau YAML ar gyfer ffurfweddu. Fel Concourse, Gitlab CI yn berthnasol Cynwysyddion docwyr sy'n helpu i ynysu gwahanol brosesau oddi wrth ei gilydd.
  • Codau yn weinydd CI cwmwl sy'n gweithio gyda GitHub, GitLab a BitBucket. Nid oes angen gosodiad cychwynnol hir ar y platfform - mae prosesau CI safonol sydd wedi'u gosod ymlaen llaw ar gael yn Codeship. Ar gyfer prosiectau bach (hyd at 100 o adeiladau y mis) a ffynhonnell agored, mae Codeship ar gael am ddim.

Deunyddiau o'n blog corfforaethol:

Ffynhonnell: hab.com

Ychwanegu sylw