5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl

Mae cymwysiadau “cwmwl brodorol” neu ddim ond “cwmwl” yn cael eu creu yn benodol i weithio mewn seilwaith cwmwl. Maent fel arfer yn cael eu hadeiladu fel set o ficrowasanaethau wedi'u cyplysu'n llac wedi'u pecynnu mewn cynwysyddion, sydd yn eu tro yn cael eu rheoli gan lwyfan cwmwl. Mae ceisiadau o'r fath yn cael eu paratoi ar gyfer methiannau yn ddiofyn, sy'n golygu eu bod yn gweithio'n ddibynadwy ac ar raddfa hyd yn oed os bydd methiannau difrifol ar lefel y seilwaith. Ochr arall y darn arian yw'r setiau o gyfyngiadau (contractau) y mae'r llwyfan cwmwl yn eu gosod ar geisiadau cynhwysydd er mwyn gallu eu rheoli'n awtomatig.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl

Er eu bod yn gwbl ymwybodol o'r angen a phwysigrwydd symud i gymwysiadau sy'n seiliedig ar gwmwl, nid yw llawer o sefydliadau'n gwybod ble i ddechrau o hyd. Yn y swydd hon, byddwn yn edrych ar nifer o egwyddorion a fydd, o'u dilyn wrth ddatblygu cymwysiadau cynhwysydd, yn caniatáu ichi wireddu potensial llwyfannau cwmwl a chyflawni gweithrediad dibynadwy a graddio cymwysiadau hyd yn oed os bydd methiannau difrifol yn y seilwaith TG. lefel. Nod eithaf yr egwyddorion a amlinellir yma yw dysgu sut i adeiladu cymwysiadau y gellir eu rheoli'n awtomatig gan lwyfannau cwmwl fel Kubernetes.

Egwyddorion Dylunio Meddalwedd

Yn y byd rhaglennu, mae egwyddorion yn cyfeirio at reolau gweddol gyffredinol y mae'n rhaid eu dilyn wrth ddatblygu meddalwedd. Gellir eu defnyddio wrth weithio gydag unrhyw iaith raglennu. Mae gan bob egwyddor ei nodau ei hun, yr offer ar gyfer cyflawni sydd fel arfer yn dempledi ac yn arferion. Mae yna hefyd nifer o egwyddorion sylfaenol ar gyfer creu meddalwedd o ansawdd uchel, y mae pob un arall yn llifo ohonynt. Dyma rai enghreifftiau o egwyddorion sylfaenol:

  • Kiss (Cadwch bethau'n syml, yn dwp) – peidiwch â'i gymhlethu;
  • SYCH (Peidiwch ag ailadrodd eich hun) - peidiwch ag ailadrodd eich hun;
  • YAGNI (Dydych chi ddim yn mynd i fod ei angen) - peidiwch â chreu rhywbeth nad oes ei angen ar unwaith;
  • SoC Gwahanu pryderon – rhannu cyfrifoldebau.

Fel y gwelwch, nid yw'r egwyddorion hyn yn gosod unrhyw reolau penodol, ond maent yn perthyn i'r categori o ystyriaethau synnwyr cyffredin fel y'u gelwir yn seiliedig ar brofiad ymarferol, a rennir gan lawer o ddatblygwyr ac y maent yn cyfeirio atynt yn rheolaidd.
Yn ogystal, mae yna SOLET – Set o bum egwyddor gyntaf rhaglennu a dylunio gwrthrych-ganolog, a luniwyd gan Robert Martin. Mae SOLID yn cynnwys egwyddorion eang, penagored, ategol sydd - o'u cymhwyso gyda'i gilydd - yn helpu i greu systemau meddalwedd gwell a'u cynnal yn well yn yr hirdymor.

Mae'r egwyddorion SOLID yn perthyn i faes OOP ac yn cael eu llunio yn iaith cysyniadau a chysyniadau fel dosbarthiadau, rhyngwynebau ac etifeddiaeth. Trwy gyfatebiaeth, gellir llunio egwyddorion datblygu hefyd ar gyfer cymwysiadau cwmwl, dim ond yr elfen sylfaenol yma fydd nid dosbarth, ond cynhwysydd. Trwy ddilyn yr egwyddorion hyn, gallwch greu cymwysiadau amwys sy'n cwrdd yn well â nodau ac amcanion llwyfannau cwmwl fel Kubernetes.

Cynwysyddion cwmwl-frodorol: dull Red Hat

Heddiw, gellir pecynnu bron unrhyw gais yn gymharol hawdd i gynwysyddion. Ond er mwyn i gymwysiadau gael eu hawtomeiddio a'u trefnu'n effeithiol o fewn platfform cwmwl fel Kubernetes, mae angen ymdrech ychwanegol.
Sail y syniadau a amlinellir isod oedd y fethodoleg Yr Ap Deuddeg Ffactor a llawer o weithiau eraill ar wahanol agweddau ar adeiladu cymwysiadau gwe, o reoli cod ffynhonnell i fodelau graddio. Mae'r egwyddorion a ddisgrifir yn berthnasol yn unig i ddatblygu cymwysiadau mewn cynwysyddion sydd wedi'u hadeiladu ar ben microwasanaethau ac sydd wedi'u cynllunio ar gyfer llwyfannau cwmwl fel Kubernetes. Yr elfen sylfaenol yn ein trafodaeth yw delwedd y cynhwysydd, a'r amser rhedeg targed cynhwysydd yw'r llwyfan cerddorfa cynhwysydd. Nod yr egwyddorion arfaethedig yw creu cynwysyddion y gellir awtomeiddio tasgau amserlennu, graddio a monitro ar eu cyfer ar y rhan fwyaf o lwyfannau cerddorfaol. Ni chyflwynir yr egwyddorion mewn unrhyw drefn benodol.

Egwyddor Pryder Sengl (SCP)

Mae'r egwyddor hon mewn sawl ffordd yn debyg i'r Egwyddor Un Cyfrifoldeb. SRP), sy'n rhan o'r set SOLID ac yn datgan bod yn rhaid i bob gwrthrych gael un cyfrifoldeb, a rhaid i'r cyfrifoldeb hwnnw gael ei amgáu'n llwyr mewn dosbarth. Pwynt SRP yw bod pob cyfrifoldeb yn rheswm dros newid, a rhaid i ddosbarth gael un ac un rheswm yn unig dros newid.

Yn SCP, rydym yn defnyddio'r gair “pryder” yn lle'r gair “cyfrifoldeb” i nodi lefel uwch o dynnu a phwrpas ehangach cynhwysydd o'i gymharu â dosbarth OOP. Ac os mai nod SRP yw cael dim ond un rheswm dros newid, yna y tu ôl i SCP yw'r awydd i ehangu'r gallu i ailddefnyddio ac ailosod cynwysyddion. Trwy ddilyn y SRP a chreu cynhwysydd sy'n datrys un broblem ac yn ei wneud mewn ffordd swyddogaethol gyflawn, rydych chi'n cynyddu'r siawns o ailddefnyddio'r ddelwedd cynhwysydd honno mewn gwahanol gyd-destunau cais.

Mae egwyddor SCP yn nodi y dylai pob cynhwysydd ddatrys un broblem unigol a'i wneud yn dda. Ar ben hynny, mae SCP yn y byd cynhwysydd yn haws i'w gyflawni na SRP yn y byd OOP, gan fod cynwysyddion fel arfer yn rhedeg un broses sengl, a'r rhan fwyaf o'r amser mae'r broses hon yn datrys un dasg sengl.

Os oes rhaid i ficrowasanaeth cynhwysydd ddatrys sawl problem ar unwaith, yna gellir ei rannu'n gynwysyddion un dasg a'i gyfuno o fewn un pod (uned o osod platfform cynhwysydd) gan ddefnyddio templedi cynhwysydd car ochr a init. Yn ogystal, mae SCP yn ei gwneud hi'n hawdd disodli hen gynhwysydd (fel gweinydd gwe neu frocer negeseuon) gydag un newydd sy'n datrys yr un broblem ond sydd wedi ehangu ymarferoldeb neu raddfeydd yn well.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl

Egwyddor Arsylwi Uchel (HOP)

Pan ddefnyddir cynwysyddion fel ffordd unedig o becynnu a rhedeg cymwysiadau, mae'r cymwysiadau eu hunain yn cael eu trin fel blwch du. Fodd bynnag, os yw'r rhain yn gynwysyddion cwmwl, yna rhaid iddynt ddarparu APIs arbennig i'r amser rhedeg i fonitro iechyd y cynwysyddion ac, os oes angen, cymryd camau priodol. Heb hyn, ni fydd yn bosibl uno awtomeiddio diweddaru cynwysyddion a rheoli eu cylch bywyd, a fydd, yn ei dro, yn gwaethygu sefydlogrwydd a defnyddioldeb y system feddalwedd.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl
Yn ymarferol, dylai fod gan gymhwysiad mewn cynhwysydd, o leiaf, API ar gyfer gwahanol fathau o wiriadau iechyd: profion bywiogrwydd a phrofion parodrwydd. Os yw cais yn honni ei fod yn gwneud mwy, rhaid iddo ddarparu dulliau eraill o fonitro ei gyflwr. Er enghraifft, logio digwyddiadau pwysig trwy STDERR a STDOUT ar gyfer agregu logiau gan ddefnyddio Fluentd, Logstash ac offer tebyg eraill. Yn ogystal ag integreiddio â llyfrgelloedd casglu olrhain a metrigau, fel OpenTracing, Prometheus, ac ati.

Yn gyffredinol, gellir dal i drin y cais fel blwch du, ond rhaid ei ddarparu gyda'r holl APIs sydd eu hangen ar y platfform er mwyn ei fonitro a'i reoli yn y ffordd orau bosibl.

Egwyddor Cydymffurfio Cylch Oes (LCP)

LCP yw gwrththesis HOP. Er bod HOP yn nodi bod yn rhaid i'r cynhwysydd ddatgelu APIs darllenedig i'r platfform, mae LCP yn ei gwneud yn ofynnol i'r cais allu derbyn gwybodaeth o'r platfform. Ar ben hynny, rhaid i'r cynhwysydd nid yn unig dderbyn digwyddiadau, ond hefyd addasu, mewn geiriau eraill, ymateb iddynt. Felly enw'r egwyddor, y gellir ei hystyried fel gofyniad i ddarparu APIs ysgrifennu i'r platfform.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl
Mae gan lwyfannau wahanol fathau o ddigwyddiadau i helpu i reoli cylch bywyd cynhwysydd. Ond mater i'r cais ei hun yw penderfynu pa un ohonynt i'w ganfod a sut i ymateb.

Mae'n amlwg bod rhai digwyddiadau yn bwysicach nag eraill. Er enghraifft, os nad yw cais yn goddef damweiniau yn dda, rhaid iddo dderbyn negeseuon signal: terfynu (SITERM) a chychwyn ei drefn derfynu cyn gynted â phosibl i ddal y signal: lladd (SIGKILL) sy'n dod ar ôl SITERM.

Yn ogystal, gall digwyddiadau fel PostStart a PreStop fod yn bwysig i gylch bywyd cais. Er enghraifft, ar ôl lansio cais, efallai y bydd angen rhywfaint o amser cynhesu cyn y gall ymateb i geisiadau. Neu rhaid i'r cais ryddhau adnoddau mewn rhyw ffordd arbennig wrth gau.

Yr Egwyddor Ansymudedd Delwedd (IIP)

Derbynnir yn gyffredinol y dylai ceisiadau cynhwysydd aros yn ddigyfnewid ar ôl cael eu hadeiladu, hyd yn oed os ydynt yn cael eu rhedeg mewn amgylcheddau gwahanol. Mae hyn yn golygu bod angen allanoli storio data ar amser rhedeg (mewn geiriau eraill, defnyddio offer allanol ar gyfer hyn) a dibynnu ar gyfluniadau allanol sy'n benodol i amser rhedeg, yn hytrach nag addasu neu greu cynwysyddion unigryw ar gyfer pob amgylchedd. Ar ôl unrhyw newidiadau i'r cais, rhaid ailadeiladu delwedd y cynhwysydd a'i ddefnyddio i bob amgylchedd a ddefnyddir. Gyda llaw, wrth reoli systemau TG, defnyddir egwyddor debyg, a elwir yn egwyddor ansymudedd gweinyddwyr a seilwaith.

Nod BmP yw atal creu delweddau cynhwysydd ar wahân ar gyfer gwahanol amgylcheddau amser rhedeg a defnyddio'r un ddelwedd ym mhobman ynghyd â'r cyfluniad amgylchedd-benodol priodol. Mae dilyn yr egwyddor hon yn caniatáu ichi weithredu arferion mor bwysig o safbwynt awtomeiddio systemau cwmwl fel dychwelyd a chyflwyno diweddariadau cymwysiadau.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl

Egwyddor Gwaredu Proses (PDP)

Un o nodweddion pwysicaf cynhwysydd yw ei fyrhoedledd: mae enghraifft o gynhwysydd yn hawdd i'w greu ac yn hawdd ei ddinistrio, felly gellir ei ddisodli'n hawdd ag enghraifft arall ar unrhyw adeg. Gall fod llawer o resymau dros amnewidiad o'r fath: methiant prawf defnyddioldeb, graddio'r cais, trosglwyddo i westeiwr arall, lludded adnoddau platfform, neu sefyllfaoedd eraill.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl
O ganlyniad, rhaid i geisiadau am gynwysyddion gadw eu cyflwr gan ddefnyddio rhyw fodd allanol, neu ddefnyddio cynlluniau dosranedig mewnol gyda diswyddiad ar gyfer hyn. Yn ogystal, rhaid i'r cais ddechrau'n gyflym a chau i lawr yn gyflym, a bod yn barod ar gyfer methiant caledwedd angheuol sydyn.

Un arfer sy'n helpu i weithredu'r egwyddor hon yw cadw cynwysyddion yn fach. Gall amgylcheddau cwmwl ddewis gwesteiwr yn awtomatig i lansio enghraifft cynhwysydd arno, felly po leiaf yw'r cynhwysydd, y cyflymaf y bydd yn cychwyn - bydd yn syml yn copïo i'r gwesteiwr targed dros y rhwydwaith yn gyflymach.

Egwyddor Hunangynhwysiant (S-CP)

Yn ôl yr egwyddor hon, yn y cam cydosod, mae'r holl gydrannau angenrheidiol wedi'u cynnwys yn y cynhwysydd. Dylid adeiladu'r cynhwysydd ar y rhagdybiaeth mai dim ond cnewyllyn Linux pur sydd gan y system, felly dylid gosod yr holl lyfrgelloedd ychwanegol angenrheidiol yn y cynhwysydd ei hun. Dylai hefyd gynnwys pethau fel yr amser rhedeg ar gyfer yr iaith raglennu gyfatebol, y llwyfan cymhwysiad (os oes angen), a dibyniaethau eraill y bydd eu hangen tra bod y cymhwysiad cynhwysydd yn rhedeg.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl

Gwneir eithriadau ar gyfer ffurfweddiadau sy'n amrywio o amgylchedd i amgylchedd ac mae'n rhaid eu darparu ar amser rhedeg, er enghraifft trwy Kubernetes ConfigMap.

Gall cymhwysiad gynnwys sawl cydran mewn cynhwysydd, er enghraifft, cynhwysydd DBMS ar wahân o fewn cymhwysiad gwe mewn cynhwysydd. Yn ôl egwyddor S-CP, ni ddylid cyfuno'r cynwysyddion hyn yn un, ond dylid eu gwneud fel bod y cynhwysydd DBMS yn cynnwys popeth sy'n angenrheidiol ar gyfer gweithredu'r gronfa ddata, ac mae'r cynhwysydd cymhwysiad gwe yn cynnwys popeth sy'n angenrheidiol ar gyfer gweithrediad y we. cais, yr un gweinydd gwe. O ganlyniad, ar amser rhedeg bydd y cynhwysydd cymhwysiad gwe yn dibynnu ar y cynhwysydd DBMS a'i gyrchu yn ôl yr angen.

Egwyddor Cyfyngu Amser Rhedeg (RCP)

Mae'r egwyddor S-CP yn diffinio sut y dylid adeiladu'r cynhwysydd a beth ddylai'r ddelwedd ddeuaidd ei gynnwys. Ond nid “blwch du” yn unig yw cynhwysydd sydd ag un nodwedd yn unig - maint ffeil. Yn ystod y gweithredu, mae'r cynhwysydd yn cymryd dimensiynau eraill: faint o gof a ddefnyddir, amser CPU, ac adnoddau system eraill.

5 Egwyddor Synnwyr Cyffredin ar gyfer Adeiladu Apiau Brodorol Cwmwl
Ac yma mae egwyddor RCP yn ddefnyddiol, ac yn unol â hynny mae'n rhaid i'r cynhwysydd ddihysbyddu ei ofynion ar gyfer adnoddau system a'u trosglwyddo i'r platfform. Gyda phroffiliau adnoddau pob cynhwysydd (faint o adnoddau CPU, cof, rhwydwaith, a disg sydd eu hangen arno), gall y platfform berfformio amserlennu a graddio awtomatig yn y ffordd orau bosibl, rheoli capasiti TG, a chynnal lefelau CLG ar gyfer cynwysyddion.

Yn ogystal â bodloni gofynion adnoddau'r cynhwysydd, mae hefyd yn bwysig i'r cais beidio â mynd y tu hwnt i'w ffiniau ei hun. Fel arall, pan fydd prinder adnoddau, mae'r platfform yn fwy tebygol o'i gynnwys yn y rhestr o gymwysiadau y mae angen eu terfynu neu eu mudo.

Pan fyddwn yn sôn am fod yn gymylau-gyntaf, rydym yn sôn am y ffordd yr ydym yn gweithio.
Uchod, gwnaethom lunio nifer o egwyddorion cyffredinol sy'n gosod y sylfaen fethodolegol ar gyfer adeiladu cymwysiadau cynhwysydd o ansawdd uchel ar gyfer amgylcheddau cwmwl.

Sylwch, yn ogystal â'r egwyddorion cyffredinol hyn, y bydd angen dulliau a thechnegau uwch ychwanegol arnoch ar gyfer gweithio gyda chynwysyddion. Yn ogystal, mae gennym ychydig o argymhellion byr sy'n fwy penodol ac y dylid eu cymhwyso (neu beidio â'u cymhwyso) yn dibynnu ar y sefyllfa:

Gweminar ar y fersiwn newydd o OpenShift Container Platform - 4
Mehefin 11 am 11.00

Beth fyddwch chi'n ei ddysgu:

  • Red Hat Enterprise digyfnewid Linux CoreOS
  • Rhwyll gwasanaeth OpenShift
  • Fframwaith gweithredwr
  • Fframwaith cenhedlol

Ffynhonnell: hab.com

Ychwanegu sylw