Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Agwedd IaC Mae (Isadeiledd fel Cod) yn cynnwys nid yn unig y cod sy'n cael ei storio yn y gadwrfa, ond hefyd y bobl a'r prosesau sy'n amgylchynu'r cod hwn. A yw'n bosibl ailddefnyddio dulliau o ddatblygu meddalwedd i reoli a disgrifio seilwaith? Byddai’n syniad da cadw’r syniad hwn mewn cof wrth ichi ddarllen yr erthygl.

fersiwn Saesneg

Dyma drawsgrifiad o fy perfformiadau ar DevopsConf 2019-05-28.

Sleidiau a fideos

Isadeiledd fel hanes bash

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Tybiwch eich bod chi'n dod i brosiect newydd, ac maen nhw'n dweud wrthych chi: “mae gennym ni Seilwaith fel Cod" . Mewn gwirionedd mae'n troi allan Isadeiledd fel hanes bash neu er enghraifft Dogfennaeth fel hanes bash. Mae hon yn sefyllfa real iawn, er enghraifft, disgrifiwyd achos tebyg gan Denis Lysenko mewn araith Sut i ddisodli'r seilwaith cyfan a dechrau cysgu'n gadarn, dywedodd sut y cawsant seilwaith cydlynol ar gyfer y prosiect o hanes bash.

Gyda pheth awydd, gallwn ddweud hynny Isadeiledd fel hanes bash mae hwn fel cod:

  1. atgenhedliad: Gallwch chi gymryd hanes bash, rhedeg y gorchmynion oddi yno, ac efallai y byddwch, gyda llaw, yn cael cyfluniad gweithio fel allbwn.
  2. fersiwn: rydych chi'n gwybod pwy ddaeth i mewn a beth wnaethon nhw, unwaith eto, nid yw'n ffaith y bydd hyn yn eich arwain at gyfluniad allbwn gweithredol.
  3. Hanes: hanes pwy wnaeth beth. dim ond ni fyddwch yn gallu ei ddefnyddio os byddwch yn colli'r gweinydd.

Beth i'w wneud?

Seilwaith fel Cod

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Hyd yn oed achos mor rhyfedd â Isadeiledd fel hanes bash gallwch ei dynnu gan y clustiau Seilwaith fel Cod, ond pan fyddwn am wneud rhywbeth mwy cymhleth na'r hen weinydd LAMP da, byddwn yn dod i'r casgliad bod angen addasu, newid, gwella'r cod hwn rywsut. Nesaf hoffem ystyried y tebygrwydd rhwng Seilwaith fel Cod a datblygu meddalwedd.

SYCH

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Ar brosiect datblygu system storio, roedd is-dasg ffurfweddu SDS o bryd i'w gilydd: rydym yn rhyddhau datganiad newydd - mae angen ei gyflwyno ar gyfer profion pellach. Mae'r dasg yn hynod o syml:

  • mewngofnodwch yma trwy ssh a gweithredu'r gorchymyn.
  • copïo'r ffeil yno.
  • cywiro'r ffurfwedd yma.
  • cychwyn y gwasanaeth yno
  • ...
  • PROFFIT!

Ar gyfer y rhesymeg a ddisgrifir, mae bash yn fwy na digon, yn enwedig yng nghamau cynnar y prosiect, pan fydd newydd ddechrau. hwn nid yw'n ddrwg eich bod chi'n defnyddio bash, ond dros amser mae ceisiadau i leoli rhywbeth tebyg, ond ychydig yn wahanol. Y peth cyntaf sy'n dod i'r meddwl yw copi-gludo. Ac yn awr mae gennym eisoes ddwy sgript debyg iawn sy'n gwneud bron yr un peth. Dros amser, cynyddodd nifer y sgriptiau, ac roeddem yn wynebu'r ffaith bod yna resymeg fusnes benodol ar gyfer gosod gosodiad y mae angen ei gydamseru rhwng gwahanol sgriptiau, mae hyn yn eithaf cymhleth.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Mae'n ymddangos bod yna arfer o'r fath â SYCH (Peidiwch â Ailadrodd Eich Hun). Y syniad yw ailddefnyddio'r cod presennol. Mae'n swnio'n syml, ond ni ddaethom at hyn ar unwaith. Yn ein hachos ni, roedd yn syniad banal: i wahanu configs oddi wrth sgriptiau. Y rhai. rhesymeg busnes o sut mae'r gosodiad yn cael ei ddefnyddio ar wahân, yn ffurfweddu ar wahân.

SOLID ar gyfer CFM

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Dros amser tyfodd y prosiect a parhad naturiol oedd dyfodiad Ansible. Y prif reswm dros ei ymddangosiad yw bod yna arbenigedd ar y tîm ac nad yw bash wedi'i gynllunio ar gyfer rhesymeg gymhleth. Dechreuodd Anible hefyd gynnwys rhesymeg gymhleth. Er mwyn atal rhesymeg gymhleth rhag troi'n anhrefn, mae egwyddorion trefniadaeth cod wrth ddatblygu meddalwedd SOLID Hefyd, er enghraifft, cododd Grigory Petrov yn yr adroddiad "Pam fod angen brand personol ar arbenigwr TG" y cwestiwn bod person wedi'i ddylunio yn y fath fodd fel ei bod yn haws iddo weithredu gyda rhai endidau cymdeithasol, wrth ddatblygu meddalwedd y rhain. yn wrthrychau. Os byddwn yn cyfuno'r ddau syniad hyn ac yn parhau i'w datblygu, byddwn yn sylwi y gallwn hefyd eu defnyddio SOLID i'w gwneud yn haws cynnal ac addasu'r rhesymeg hon yn y dyfodol.

Yr Egwyddor Cyfrifoldeb Sengl

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Dim ond un dasg y mae pob dosbarth yn ei chyflawni.

Nid oes angen cymysgu cod a gwneud angenfilod sbageti dwyfol monolithig. Dylai'r seilwaith gynnwys brics syml. Mae'n ymddangos, os ydych chi'n rhannu'r llyfr chwarae Ansible yn ddarnau bach, yn darllen rolau Ansible, yna maen nhw'n haws i'w cynnal.

Yr Egwyddor Gau Agored

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Egwyddor agored/caeedig.

  • Agored i estyniad: yn golygu y gellir ymestyn ymddygiad endid trwy greu mathau newydd o endid.
  • Ar gau i newid: O ganlyniad i ymestyn ymddygiad endid, ni ddylid gwneud unrhyw newidiadau i'r cod sy'n defnyddio'r endidau hynny.

I ddechrau, gwnaethom ddefnyddio'r seilwaith prawf ar beiriannau rhithwir, ond oherwydd y ffaith bod y rhesymeg fusnes o leoli ar wahân i'r gweithredu, fe wnaethom ychwanegu'r cyflwyno i baremetall heb unrhyw broblemau.

Egwyddor Amnewid Liskov

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Egwyddor amnewid Barbara Liskov. rhaid i wrthrychau mewn rhaglen gael eu disodli gan enghreifftiau o'u hisdeipiau heb newid gweithrediad cywir y rhaglen

Os edrychwch arno’n ehangach, nid yw’n nodwedd o unrhyw brosiect penodol y gellir ei gymhwyso yno SOLID, yn gyffredinol mae'n ymwneud â CFM, er enghraifft, ar brosiect arall mae angen defnyddio cymhwysiad Java mewn bocs ar ben amrywiol Java, gweinyddwyr cymwysiadau, cronfeydd data, OS, ac ati. Gan ddefnyddio'r enghraifft hon, byddaf yn ystyried egwyddorion pellach SOLID

Yn ein hachos ni, mae cytundeb o fewn y tîm seilwaith, os ydym wedi gosod y rôl imbjava neu oraclejava, yna mae gennym weithredadwy deuaidd java. Mae hyn yn angenrheidiol oherwydd Mae rolau i fyny'r afon yn dibynnu ar yr ymddygiad hwn; maen nhw'n disgwyl java. Ar yr un pryd, mae hyn yn caniatáu inni ddisodli un gweithrediad/fersiwn java ag un arall heb newid rhesymeg defnyddio cymhwysiad.

Mae'r broblem yma yn gorwedd yn y ffaith ei bod yn amhosibl gweithredu hyn yn Ansible, ac o ganlyniad mae rhai cytundebau yn ymddangos o fewn y tîm.

Yr Egwyddor Gwahanu Rhyngwyneb

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Egwyddor gwahanu rhyngwyneb: “Mae llawer o ryngwynebau cleient-benodol yn well nag un rhyngwyneb pwrpas cyffredinol.

I ddechrau, gwnaethom geisio rhoi'r holl amrywioldeb o ran defnyddio cymwysiadau mewn un llyfr chwarae Ansible, ond roedd yn anodd ei gefnogi, a'r dull gweithredu pan fydd gennym ryngwyneb allanol wedi'i nodi (mae'r cleient yn disgwyl porthladd 443), yna gellir cydosod seilwaith o'r unigolyn. brics ar gyfer gweithrediad penodol.

Yr Egwyddor Wrthdroad Dibyniaeth

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Yr egwyddor o wrthdroad dibyniaeth. Ni ddylai modiwlau ar lefelau uwch ddibynnu ar fodiwlau ar lefelau is. Rhaid i'r ddau fath o fodiwl ddibynnu ar dyniadau. Ni ddylai tyniadau ddibynnu ar fanylion. Rhaid i fanylion ddibynnu ar dyniadau.

Yma bydd yr enghraifft yn seiliedig ar wrthbatrwm.

  1. Roedd gan un o'r cwsmeriaid gwmwl preifat.
  2. Fe wnaethon ni archebu peiriannau rhithwir y tu mewn i'r cwmwl.
  3. Ond oherwydd natur y cwmwl, roedd defnydd cymhwysiad yn gysylltiedig â pha hypervisor yr oedd y VM arno.

Y rhai. Llifodd rhesymeg defnyddio cymhwysiad lefel uchel gyda dibyniaethau i lefelau is o'r hypervisor, ac roedd hyn yn golygu problemau wrth ailddefnyddio'r rhesymeg hon. Peidiwch â'i wneud fel hyn.

Rhyngweithio

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Mae seilwaith fel cod nid yn unig yn ymwneud â chod, ond hefyd â'r berthynas rhwng cod a phobl, yn ymwneud â rhyngweithio rhwng datblygwyr seilwaith.

Ffactor bws

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Gadewch i ni dybio bod gennych Vasya ar eich prosiect. Mae Vasya yn gwybod popeth am eich seilwaith, beth fydd yn digwydd os bydd Vasya yn diflannu'n sydyn? Mae hon yn sefyllfa real iawn, oherwydd gallai gael ei daro gan fws. Weithiau mae'n digwydd. Os bydd hyn yn digwydd ac nad yw gwybodaeth am y cod, ei strwythur, sut mae'n gweithio, ymddangosiadau a chyfrineiriau yn cael ei ddosbarthu ymhlith y tîm, yna efallai y byddwch yn dod ar draws nifer o sefyllfaoedd annymunol. Er mwyn lleihau'r risgiau hyn a dosbarthu gwybodaeth o fewn y tîm, gallwch ddefnyddio gwahanol ddulliau

Devopsing Pâr

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Nid yw'n debyg fel jôc, bod y gweinyddwyr wedi yfed cwrw, wedi newid cyfrineiriau, ac analog o raglennu pâr. Y rhai. mae dau beiriannydd yn eistedd i lawr wrth un cyfrifiadur, un bysellfwrdd ac yn dechrau gosod eich seilwaith gyda'i gilydd: sefydlu gweinydd, ysgrifennu rôl Ansible, ac ati. Mae'n swnio'n neis, ond nid oedd yn gweithio i ni. Ond gweithiodd achosion arbennig o'r arfer hwn. Mae gweithiwr newydd wedi cyrraedd, mae ei fentor yn ymgymryd â thasg go iawn gydag ef, yn gweithio ac yn trosglwyddo gwybodaeth.

Achos arbennig arall yw galwad digwyddiad. Yn ystod problem, mae grŵp o'r rhai sydd ar ddyletswydd a'r rhai sy'n gysylltiedig yn ymgynnull, penodir un arweinydd, sy'n rhannu ei sgrin ac yn lleisio'r trên meddwl. Mae cyfranogwyr eraill yn dilyn meddyliau'r arweinydd, yn sbïo ar driciau o'r consol, yn gwirio nad ydyn nhw wedi methu llinell yn y log, ac yn dysgu pethau newydd am y system. Gweithiodd y dull hwn yn amlach na pheidio.

Adolygiad Cod

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Yn oddrychol, roedd yn fwy effeithiol i ledaenu gwybodaeth am y seilwaith a sut mae’n gweithio gan ddefnyddio adolygiad cod:

  • Disgrifir y seilwaith yn ôl cod yn yr ystorfa.
  • Mae newidiadau'n digwydd mewn cangen ar wahân.
  • Yn ystod cais uno, gallwch weld y delta o newidiadau yn y seilwaith.

Yr uchafbwynt yma oedd bod yr adolygwyr yn cael eu dewis fesul un, yn ôl amserlen, h.y. gyda rhywfaint o debygolrwydd y byddwch yn dringo i mewn i ddarn newydd o seilwaith.

arddull cod

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Dros amser, dechreuodd ffraeo ymddangos yn ystod adolygiadau, oherwydd ... roedd gan adolygwyr eu harddull eu hunain ac roedd cylchdroi'r adolygwyr yn eu pentyrru gyda gwahanol arddulliau: 2 ofod neu 4, camelCase neu snake_case. Nid oedd yn bosibl gweithredu hyn ar unwaith.

  • Y syniad cyntaf oedd argymell defnyddio linter, wedi'r cyfan, mae pawb yn beiriannydd, mae pawb yn smart. Ond nid yw golygyddion gwahanol, OS, yn gyfleus
  • Esblygodd hyn yn bot a ysgrifennodd i slac ar gyfer pob ymrwymiad problematig ac atodi'r allbwn lint. Ond yn y rhan fwyaf o achosion roedd pethau pwysicach i'w gwneud ac nid oedd y cod yn sefydlog.

Meistr Adeiladu Gwyrdd

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Mae amser yn mynd heibio, ac rydym wedi dod i'r casgliad na ellir caniatáu ymrwymiad nad yw'n pasio rhai profion i mewn i'r meistr. Ystyr geiriau: Voila! Fe wnaethon ni ddyfeisio Green Build Master, sydd wedi cael ei ymarfer mewn datblygu meddalwedd ers amser maith:

  • Mae datblygiad ar y gweill mewn cangen ar wahân.
  • Mae profion yn rhedeg ar yr edefyn hwn.
  • Os bydd y profion yn methu, ni fydd y cod yn cyrraedd y meistr.

Roedd gwneud y penderfyniad hwn yn boenus iawn, oherwydd... achosi llawer o ddadlau, ond roedd yn werth chweil, oherwydd ... Dechreuodd adolygiadau dderbyn ceisiadau am uno heb wahaniaethau mewn arddull, a thros amser dechreuodd nifer y meysydd problemus leihau.

Profi IaC

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Yn ogystal â gwirio arddull, gallwch ddefnyddio pethau eraill, er enghraifft, i wirio y gellir defnyddio'ch seilwaith mewn gwirionedd. Neu gwiriwch na fydd newidiadau mewn seilwaith yn arwain at golli arian. Pam y gallai fod angen hyn? Mae'r cwestiwn yn gymhleth ac yn athronyddol, mae'n well ei ateb gyda stori bod yna rywsut sglerwr awtomatig ar Powershell nad oedd yn gwirio amodau'r ffin => crëwyd mwy o VMs nag oedd angen => gwariodd y cleient fwy o arian nag a gynlluniwyd. Nid yw hyn yn ddymunol iawn, ond byddai'n eithaf posibl dal y gwall hwn yn gynharach.

Efallai y bydd rhywun yn gofyn, pam gwneud seilwaith cymhleth hyd yn oed yn fwy cymhleth? Nid yw profion ar gyfer seilwaith, yn union fel ar gyfer cod, yn ymwneud â symleiddio, ond â gwybod sut y dylai eich seilwaith weithio.

Pyramid Profi IaC

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Profi IaC: Dadansoddiad Statig

Os ydych chi'n defnyddio'r seilwaith cyfan ar unwaith ac yn gwirio ei fod yn gweithio, efallai y gwelwch ei fod yn cymryd llawer o amser ac yn gofyn am lawer o amser. Felly, mae'n rhaid i'r sail fod yn rhywbeth sy'n gweithio'n gyflym, mae llawer ohono, ac mae'n cwmpasu llawer o leoedd cyntefig.

Mae Bash yn anodd

Gadewch i ni edrych ar enghraifft ddibwys. dewiswch yr holl ffeiliau yn y cyfeiriadur cyfredol a'u copïo i leoliad arall. Y peth cyntaf sy'n dod i'r meddwl:

for i in * ; do 
    cp $i /some/path/$i.bak
done

Beth os oes bwlch yn enw'r ffeil? Wel, iawn, rydyn ni'n graff, rydyn ni'n gwybod sut i ddefnyddio dyfyniadau:

for i in * ; do cp "$i" "/some/path/$i.bak" ; done

Da iawn? Nac ydw! Beth os nad oes dim yn y cyfeiriadur, h.y. ni fydd globio yn gweithio.

find . -type f -exec mv -v {} dst/{}.bak ;

Da iawn nawr? Na... Wedi anghofio beth all fod yn enw'r ffeil n.

touch x
mv x  "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir

Offer dadansoddi statig

Gallai'r broblem o'r cam blaenorol gael ei dal pan fyddwn yn anghofio y dyfyniadau, ar gyfer hyn mae llawer o feddyginiaethau mewn natur Gwiriad Cregyn, yn gyffredinol mae yna lawer ohonyn nhw, ac yn fwyaf tebygol y gallwch chi ddod o hyd i lint ar gyfer eich pentwr o dan eich IDE.

iaith
Offeryn

bash
Gwiriad Cregyn

Ruby
RuboCop

python
Peilint

ansible
Lint Atebol

Profi IaC: Profion Uned

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Fel y gwelsom o'r enghraifft flaenorol, nid yw linters yn hollalluog ac ni allant nodi'r holl feysydd problem. Ymhellach, trwy gyfatebiaeth â phrofion mewn datblygu meddalwedd, gallwn gofio profion uned. Yr hyn sy'n dod i'r meddwl ar unwaith yw shunit, iau, rspec, pytest. Ond beth i'w wneud ag ansible, chef, saltstack ac eraill tebyg iddynt?

Ar y dechrau buom yn siarad am SOLID ac y dylai ein seilwaith gynnwys brics bach. Mae eu hamser wedi dod.

  1. Rhennir y seilwaith yn frics bach, er enghraifft, rolau Atebol.
  2. Mae rhyw fath o amgylchedd yn cael ei ddefnyddio, boed yn dociwr neu'n VM.
  3. Rydym yn cymhwyso ein rôl Analluog i'r amgylchedd prawf hwn.
  4. Rydyn ni'n gwirio bod popeth wedi gweithio fel roedden ni'n ei ddisgwyl (rydym yn cynnal profion).
  5. Rydym yn penderfynu iawn neu ddim yn iawn.

Profi IaC: Offer Profi Uned

Cwestiwn, beth yw profion ar gyfer CFM? Yn syml, gallwch redeg y sgript, neu gallwch ddefnyddio datrysiadau parod ar gyfer hyn:

cfm
Offeryn

Ateb
Testinfra

cogydd
Arolygiadau

cogydd
Serverspec

corn heli
Goss

Enghraifft ar gyfer testinfra, gwirio bod defnyddwyr test1, test2 bodoli ac mewn grŵp sshusers:

def test_default_users(host):
    users = ['test1', 'test2' ]
    for login in users:
        assert host.user(login).exists
        assert 'sshusers' in host.user(login).groups

Beth i'w ddewis? Mae’r cwestiwn yn gymhleth ac yn amwys, dyma enghraifft o newidiadau mewn prosiectau ar github ar gyfer 2018-2019:

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Fframweithiau profi IaC

Mae'r cwestiwn yn codi: sut i roi'r cyfan at ei gilydd a'i lansio? Gall cymerwch ef a gwnewch eich hun os oes nifer digonol o beirianwyr. Neu gallwch gymryd atebion parod, er nad oes llawer iawn ohonynt:

cfm
Offeryn

Ateb
Moleciwlaidd

cogydd
Prawf Cegin

Terraform
Terasest

Enghraifft o newidiadau mewn prosiectau ar github ar gyfer 2018-2019:

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Moleciwl vs. Testkitchen

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

I ddechrau rydym ni ceisio defnyddio testkitchen:

  1. Creu VM ochr yn ochr.
  2. Cymhwyso rolau Asible.
  3. Rhedeg arolygiad.

Ar gyfer 25-35 o rolau roedd yn gweithio 40-70 munud, a oedd yn hir.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Y cam nesaf oedd y newid i jenkins/docker/ansible/molecule. Yn idolegol mae popeth yr un peth

  1. Llyfrau chwarae Lint.
  2. Trefnwch y rolau.
  3. Lansio cynhwysydd
  4. Cymhwyso rolau Asible.
  5. Rhedeg testinfra.
  6. Gwiriwch analluedd.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Dechreuodd lintio ar gyfer 40 rôl a phrofion am ddwsin gymryd tua 15 munud.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Mae'r hyn i'w ddewis yn dibynnu ar lawer o ffactorau, megis y pentwr a ddefnyddir, arbenigedd yn y tîm, ac ati. yma mae pawb yn penderfynu drostynt eu hunain sut i gloi cwestiwn profi'r Uned

Profi IaC: Profion Integreiddio

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Y cam nesaf yn y pyramid profi seilwaith fydd profion integreiddio. Maent yn debyg i brofion Uned:

  1. Rhennir y seilwaith yn frics bach, er enghraifft rolau Atebol.
  2. Mae rhyw fath o amgylchedd yn cael ei ddefnyddio, boed yn dociwr neu'n VM.
  3. Ar gyfer yr amgylchedd prawf hwn yn berthnasol llawer o Rolau asible.
  4. Rydyn ni'n gwirio bod popeth wedi gweithio fel roedden ni'n ei ddisgwyl (rydym yn cynnal profion).
  5. Rydym yn penderfynu iawn neu ddim yn iawn.

Yn fras, nid ydym yn gwirio perfformiad elfen unigol o'r system fel mewn profion uned, rydym yn gwirio sut mae'r gweinydd wedi'i ffurfweddu yn ei gyfanrwydd.

Profi IaC: Profion o'r dechrau i'r diwedd

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Ar frig y pyramid cawn ein cyfarch gan brofion o'r Dechrau i'r Diwedd. Y rhai. Nid ydym yn gwirio perfformiad gweinydd ar wahân, sgript ar wahân, neu fricsen ar wahân o'n seilwaith. Rydym yn gwirio bod llawer o weinyddion wedi'u cysylltu â'i gilydd, mae ein seilwaith yn gweithio fel y disgwyliwn iddo. Yn anffodus, nid wyf erioed wedi gweld datrysiadau parod mewn bocsys, mae'n debyg oherwydd ... Mae'r seilwaith yn aml yn unigryw ac yn anodd ei dempledi a chreu fframwaith ar gyfer profi. O ganlyniad, mae pawb yn creu eu hatebion eu hunain. Mae galw, ond nid oes ateb. Felly, dywedaf wrthych beth sydd yna er mwyn gwthio eraill i feddwl cadarn neu rwbio fy nhrwyn yn y ffaith bod popeth wedi'i ddyfeisio ymhell yn ôl o'n blaenau.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Prosiect gyda hanes cyfoethog. Fe'i defnyddir mewn sefydliadau mawr ac mae'n debyg bod pob un ohonoch wedi croesi llwybrau ag ef yn anuniongyrchol. Mae'r rhaglen yn cefnogi llawer o gronfeydd data, integreiddiadau, ac ati. Mae gwybod sut olwg allai fod ar y seilwaith yn llawer o ffeiliau cyfansoddi docwyr, a gwybod pa brofion i'w cynnal ym mha amgylchedd y mae Jenkins.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Gweithiodd y cynllun hwn am gyfnod eithaf hir, tan o fewn y fframwaith ymchwil nid ydym wedi ceisio trosglwyddo hwn i Openshift. Mae'r cynwysyddion yn aros yr un fath, ond mae'r amgylchedd lansio wedi newid (helo SYCH eto).

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Aeth y syniad ymchwil ymhellach, ac mewn shifft agored daethant o hyd i'r fath beth ag APB (Ansible Playbook Bundle), sy'n eich galluogi i bacio gwybodaeth am sut i ddefnyddio seilwaith mewn cynhwysydd. Y rhai. mae pwynt gwybodaeth y gellir ei ailadrodd, y gellir ei brofi, ar sut i ddefnyddio'r seilwaith.

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Roedd hyn i gyd yn swnio'n dda nes i ni redeg i mewn i seilwaith heterogenaidd: roedd angen Windows arnom ar gyfer profion. O ganlyniad, mae'r wybodaeth o beth, ble, sut i ddefnyddio, a phrofi mewn jenkins.

Casgliad

Yr hyn a Ddysgais o Brofi 200 o Linellau o God Seilwaith

Isadeiledd fel y mae'r Cod

  • Cod yn yr ystorfa.
  • Rhyngweithiad dynol.
  • Profi seilwaith.

cysylltiadau

Ffynhonnell: hab.com

Ychwanegu sylw