Sut i reoli eich seilwaith rhwydwaith. Pennod Pedwar. Awtomatiaeth. Templedi

Yr erthygl hon yw'r chweched yn y gyfres “Sut i Reoli Eich Seilwaith Rhwydwaith.” Gellir dod o hyd i gynnwys pob erthygl yn y gyfres a dolenni yma.

Ar ôl gadael sawl pwnc ar ôl, penderfynais ddechrau pennod newydd.

Dof yn ôl at ddiogelwch ychydig yn ddiweddarach. Yma rwyf am drafod un dull syml ond effeithiol, yr wyf yn siŵr, ar ryw ffurf neu’i gilydd, a all fod yn ddefnyddiol i lawer. Mae hon yn fwy o stori fer am sut y gall awtomeiddio newid bywyd peiriannydd. Byddwn yn siarad am ddefnyddio templedi. Ar y diwedd mae rhestr o fy mhrosiectau lle gallwch weld sut mae popeth a ddisgrifir yma yn gweithio.

DevOps ar gyfer y rhwydwaith

Creu cyfluniad gyda sgript, defnyddio GIT i reoli newidiadau i'r seilwaith TG, “llwytho i fyny” o bell - daw'r syniadau hyn yn gyntaf pan fyddwch chi'n meddwl am weithrediad technegol dull DevOps. Mae'r manteision yn amlwg. Ond, yn anffodus, mae yna anfanteision hefyd.

Pan fwy na 5 mlynedd yn ôl, daeth ein datblygwyr atom ni, y rhwydwaithwyr, gyda'r cynigion hyn, nid oeddem wrth ein bodd.

Rhaid imi ddweud ein bod wedi etifeddu rhwydwaith braidd yn frith, yn cynnwys offer gan tua 10 o wahanol werthwyr. Roedd yn gyfleus i ffurfweddu rhai pethau trwy ein hoff cli, ond mewn eraill roedd yn well gennym ddefnyddio'r GUI. Yn ogystal, mae gwaith hir ar offer “byw” wedi ein dysgu i reolaeth amser real. Er enghraifft, wrth wneud newidiadau, rwy'n teimlo'n llawer mwy cyfforddus yn gweithio'n uniongyrchol trwy'r cli. Fel hyn gallaf weld yn gyflym bod rhywbeth wedi mynd o'i le a rholio'r newidiadau yn ôl. Yr oedd hyn oll mewn peth gwrth-ddweud â'u syniadau.

Mae cwestiynau eraill yn codi hefyd, er enghraifft, gall y rhyngwyneb newid ychydig o fersiwn i fersiwn o'r feddalwedd. Yn y pen draw, bydd hyn yn achosi i'ch sgript greu'r "config" anghywir. Ni hoffwn ddefnyddio cynhyrchu ar gyfer “rhedeg i mewn”.

Neu, sut i ddeall bod y gorchmynion cyfluniad wedi'u cymhwyso'n gywir a beth i'w wneud rhag ofn y bydd gwall?

Nid wyf am ddweud nad oes modd datrys yr holl faterion hyn. Mae'n debyg bod dweud “A” yn gwneud synnwyr i ddweud “B” hefyd, ac os ydych chi am ddefnyddio'r un prosesau ar gyfer rheoli newid ag wrth ddatblygu, yna mae angen i chi gael amgylcheddau datblygu a llwyfannu yn ogystal â chynhyrchu. Yna mae'r dull hwn yn edrych yn gyflawn. Ond faint fydd y gost?

Ond mae un sefyllfa pan fydd yr anfanteision yn cael eu lefelu'n ymarferol, a dim ond y manteision sy'n parhau. Rwy'n siarad am waith dylunio.

Prosiect

Am y ddwy flynedd ddiwethaf rwyf wedi bod yn cymryd rhan mewn prosiect i adeiladu canolfan ddata ar gyfer darparwr mawr. Rwy'n gyfrifol am F5 a Palo Alto yn y prosiect hwn. O safbwynt Cisco, dyma “offer 3ydd parti”.

I mi yn bersonol, mae dau gam gwahanol yn y prosiect hwn.

Cam cyntaf

Y flwyddyn gyntaf roeddwn i'n ddiddiwedd o brysur, roeddwn i'n gweithio gyda'r nos ac ar benwythnosau. Allwn i ddim codi fy mhen. Roedd y pwysau gan reolwyr a'r cwsmer yn gryf ac yn barhaus. Mewn trefn gyson, ni allwn hyd yn oed geisio gwneud y gorau o'r broses. Nid yn unig ac nid yn gymaint cyfluniad offer â pharatoi dogfennau dylunio.

Mae’r profion cyntaf wedi dechrau, a byddwn yn rhyfeddu at faint o fân wallau ac anghywirdebau a wnaed. Wrth gwrs, roedd popeth yn gweithio, ond roedd llythyren ar goll yn yr enw, roedd llinell goll yn y gorchymyn ... Aeth y profion ymlaen ac ymlaen, ac roeddwn eisoes mewn brwydr gyson, ddyddiol gyda gwallau, profion a dogfennaeth .

Aeth hyn ymlaen am flwyddyn. Nid oedd y prosiect, hyd y deallaf, yn hawdd i bawb, ond yn raddol daeth y cleient yn fwy a mwy bodlon, ac roedd hyn yn ei gwneud hi'n bosibl llogi peirianwyr ychwanegol a oedd yn gallu cymryd rhan o'r drefn eu hunain.

Nawr gallem edrych o gwmpas ychydig.
A dyma ddechrau'r ail gam.

Ail gam

Penderfynais i awtomeiddio'r broses.

Yr hyn a ddeallais o'm cyfathrebu â'r datblygwyr bryd hynny (a rhaid inni dalu teyrnged, roedd gennym dîm cryf) yw bod gan fformat y testun, er ei fod ar yr olwg gyntaf yn ymddangos fel rhywbeth o fyd system weithredu DOS, nifer o eiddo gwerthfawr.
Felly, er enghraifft, bydd fformat y testun yn ddefnyddiol os ydych chi am fanteisio'n llawn ar GIT a'i holl ddeilliadau. Ac roeddwn i eisiau.

Wel, mae'n ymddangos y gallwch chi storio cyfluniad neu restr o orchmynion, ond mae gwneud newidiadau yn eithaf anghyfleus. Yn ogystal, mae tasg bwysig arall yn ystod dylunio. Dylai fod gennych ddogfennaeth sy'n disgrifio eich dyluniad yn ei gyfanrwydd (Cynllunio Lefel Isel) a gweithrediad penodol (Cynllun Gweithredu Rhwydwaith). Ac yn yr achos hwn, mae'r defnydd o dempledi yn edrych fel opsiwn addas iawn.

Felly, wrth ddefnyddio YAML a Jinja2, mae ffeil YAML gyda pharamedrau cyfluniad megis cyfeiriadau IP, rhifau AS BGP, ... yn berffaith yn cyflawni rôl NIP, tra bod templedi Jinja2 yn cynnwys cystrawen sy'n cyfateb i'r dyluniad, hynny yw, yn ei hanfod mae'n adlewyrchiad o LLD.

Cymerodd ddau ddiwrnod i ddysgu YAML a Jinja2. Mae rhai enghreifftiau da yn ddigon i ddeall sut mae hyn yn gweithio. Yna cymerodd tua phythefnos i greu'r holl dempledi a oedd yn cyd-fynd â'n dyluniad: wythnos i Palo Alto ac wythnos arall ar gyfer F5. Cafodd hyn i gyd ei bostio ar githab corfforaethol.

Nawr roedd y broses newid yn edrych fel hyn:

  • wedi newid y ffeil YAML
  • creu ffeil ffurfweddu gan ddefnyddio templed (Jinja2)
  • cadw mewn ystorfa bell
  • llwytho'r cyfluniad a grëwyd i'r offer
  • Gwelais gwall
  • wedi newid y ffeil YAML neu dempled Jinja2
  • creu ffeil ffurfweddu gan ddefnyddio templed (Jinja2)
  • ...

Mae'n amlwg i lawer o amser gael ei dreulio ar olygiadau ar y dechrau, ond ar ôl wythnos neu ddwy daeth hyn braidd yn brin.

Prawf da a chyfle i ddadfygio popeth oedd awydd y cleient i newid y confensiwn enwi. Mae'r rhai a weithiodd gyda F5 yn deall pwysigrwydd y sefyllfa. Ond i mi roedd y cyfan yn eithaf syml. Newidiais yr enwau yn y ffeil YAML, dileu'r cyfluniad cyfan o'r offer, creu un newydd a'i uwchlwytho. Cymerodd popeth, gan gynnwys atgyweiriadau nam, 4 diwrnod: dau ddiwrnod ar gyfer pob technoleg. Ar ôl hynny, roeddwn yn barod ar gyfer y cam nesaf, sef creu canolfannau data DEV a Staging.

Dev a Llwyfannu

Mae llwyfannu mewn gwirionedd yn atgynhyrchu cynhyrchiad yn llwyr. Mae Dev yn gopi sydd wedi'i dynnu i lawr yn drwm ac sydd wedi'i adeiladu'n bennaf ar galedwedd rhithwir. Sefyllfa ddelfrydol ar gyfer ymagwedd newydd. Os byddaf yn ynysu'r amser a dreuliais o'r broses gyffredinol, yna credaf na chymerodd y gwaith fwy na phythefnos. Y prif amser yw aros am yr ochr arall a chwilio am broblemau gyda'i gilydd. Aeth gweithredu 2ydd parti bron heb i eraill sylwi. Roedd hyd yn oed amser i ddysgu rhywbeth ac ysgrifennu cwpl o erthyglau ar Habré :)

Gadewch i ni grynhoi

Felly, beth sydd gennyf yn y llinell waelod?

  • Y cyfan sy'n rhaid i mi ei wneud i newid y ffurfweddiad yw newid ffeil YAML syml, wedi'i strwythuro'n glir gyda pharamedrau cyfluniad. Dwi byth yn newid y sgript python ac yn anaml iawn (dim ond os oes gwall) dwi'n newid y heatlate Jinja2
  • O safbwynt dogfennaeth, mae hon yn sefyllfa ddelfrydol bron. Rydych chi'n newid y ddogfennaeth (mae ffeiliau YAML yn gwasanaethu fel NIP) ac yn uwchlwytho'r ffurfwedd hon i'r offer. Fel hyn mae eich dogfennaeth bob amser yn gyfredol

Arweiniodd hyn oll at y ffaith bod

  • mae'r gyfradd gwallau wedi gostwng i bron i 0
  • Mae 90 y cant o'r drefn wedi mynd
  • mae cyflymder gweithredu wedi cynyddu'n sylweddol

TALU, F5Y, ACY

Dywedais fod ychydig o enghreifftiau yn ddigon i ddeall sut mae'n gweithio.
Dyma fersiwn byr (ac wrth gwrs wedi'i addasu) o'r hyn a grëwyd yn ystod fy ngwaith.

TALU = lleoli Palo Alto o Yaml = Palo Alto o Yaml
F5Y = lleoli F5 o Yaml = F5 o Yaml (yn dod yn fuan)
ACY = lleoli ACi o Yaml = F5 o Yaml

Byddaf yn ychwanegu ychydig eiriau am ACY (na ddylid ei gymysgu ag ACI).

Mae'r rhai sydd wedi gweithio gydag ACI yn gwybod na chafodd y wyrth hon (ac mewn ffordd dda hefyd) ei chreu yn bendant gan rwydweithiowyr :). Anghofiwch bopeth roeddech chi'n ei wybod am y rhwydwaith - ni fydd yn ddefnyddiol i chi!
Mae ychydig yn orliwiedig, ond yn fras mae'n cyfleu'r teimlad rydw i wedi bod yn ei brofi'n gyson, am y 3 blynedd diwethaf, yn gweithio gydag ACI.

Ac yn yr achos hwn, mae ACY nid yn unig yn gyfle i adeiladu proses rheoli newid (sy'n arbennig o bwysig yn achos ACI, oherwydd ei fod i fod i fod yn rhan ganolog a mwyaf hanfodol eich canolfan ddata), ond hefyd yn rhoi i chi rhyngwyneb hawdd ei ddefnyddio ar gyfer creu cyfluniad.

Mae'r peirianwyr ar y prosiect hwn yn defnyddio Excel i ffurfweddu ACI yn lle YAML at yr un dibenion yn union. Wrth gwrs, mae manteision i ddefnyddio Excel:

  • eich NIP mewn un ffeil
  • arwyddion hardd sy'n ddymunol i'r cleient edrych arnynt
  • gallwch ddefnyddio rhai offer excel

Ond mae un minws, ac yn fy marn i mae'n gorbwyso'r manteision. Mae rheoli newidiadau a chydlynu gwaith tîm yn dod yn llawer anoddach.

Mae ACY mewn gwirionedd yn gymhwysiad o'r un dulliau a ddefnyddiais ar gyfer y 3ydd parti i ffurfweddu ACI.

Ffynhonnell: hab.com

Ychwanegu sylw