Microwasanaethau: beth ydyn nhw, pam ydyn nhw a phryd i'w gweithredu

Roeddwn i eisiau ysgrifennu erthygl ar bwnc pensaernïaeth meicrowasanaeth am amser hir, ond roedd dau beth yn fy atal o hyd - po bellaf y bûm yn plymio i mewn i'r pwnc, y mwyaf yr oedd yn ymddangos i mi fod yr hyn yr wyf yn ei wybod yn amlwg, a'r hyn yr wyf yn ei wneud' t mae angen astudio ac astudio. Ar y llaw arall, credaf fod rhywbeth i’w drafod eisoes ymhlith cynulleidfa eang. Felly croesewir barn amgen.

Cyfraith Conwy a'r berthynas rhwng busnes, sefydliad a system wybodaeth

Unwaith eto, byddaf yn caniatáu i mi fy hun ddyfynnu:

“Bydd unrhyw sefydliad sy’n dylunio system (yn yr ystyr eang) yn derbyn dyluniad y mae ei strwythur yn atgynhyrchu strwythur y timau yn y sefydliad hwnnw.”
— Melvyn Conway, 1967

Yn fy marn i, mae’r gyfraith hon yn fwy tebygol o ymwneud ag ymarferoldeb trefnu busnes, yn hytrach nag yn uniongyrchol â’r system wybodaeth. Gadewch imi egluro gydag enghraifft. Gadewch i ni ddweud bod gennym ni gyfle busnes eithaf sefydlog gyda chylch bywyd mor hir fel ei bod yn gwneud synnwyr i drefnu menter (nid typo yw hwn, ond rwy'n hoff iawn o'r term hwn yr wyf yn ei ddwyn) Yn naturiol, mae system ategol y busnes hwn yn cyfateb yn sefydliadol ac yn brosesol i'r busnes hwn.

Cyfeiriadedd busnes systemau gwybodaeth

Microwasanaethau: beth ydyn nhw, pam ydyn nhw a phryd i'w gweithredu

Gadewch imi egluro gydag enghraifft. Gadewch i ni ddweud bod cyfle busnes i drefnu busnes sy'n gwerthu pizza. Yn y fersiwn V1 (gadewch i ni ei alw'n rhag-wybodaeth), roedd y cwmni'n pizzeria, cofrestr arian parod, a gwasanaeth dosbarthu. Roedd y fersiwn hon yn hirhoedlog mewn amodau o amrywioldeb amgylcheddol isel. Yna daeth fersiwn 2 i'w disodli - yn fwy datblygedig ac yn gallu defnyddio system wybodaeth wrth ei graidd ar gyfer busnes gyda phensaernïaeth monolithig. Ac yma, yn fy marn i, yn syml, mae anghyfiawnder ofnadwy mewn perthynas â'r monolithau - honnir nad yw pensaernïaeth monolithig yn cyfateb i'r model busnes parth. Ie, pe bai hyn felly, ni fyddai'r system yn gallu gweithio o gwbl - yn groes i gyfraith a synnwyr cyffredin yr un Conway. Na, mae pensaernïaeth monolithig yn gwbl gyson â'r model busnes ar y cam hwn o ddatblygiad busnes - rwy'n golygu, wrth gwrs, y cam pan fydd y system eisoes wedi'i chreu a'i rhoi ar waith. Mae'n ffaith hollol wych, waeth beth fo'r dull pensaernïol, y bydd y fersiwn pensaernïaeth sy'n canolbwyntio ar y gwasanaeth 3 a'r fersiwn pensaernïaeth microservices N yn gweithio cystal. Beth yw'r dalfa?

Mae popeth yn llifo, mae popeth yn newid, neu a yw microwasanaethau yn fodd i frwydro yn erbyn cymhlethdod?

Cyn i ni barhau, gadewch i ni edrych ar rai camsyniadau am bensaernïaeth microwasanaeth.

Mae cynigwyr defnyddio dull microwasanaeth yn aml yn dadlau bod torri monolith yn ficrowasanaethau yn symleiddio'r dull datblygu trwy leihau sylfaen cod gwasanaethau unigol. Yn fy marn i, nonsens llwyr yw'r datganiad hwn. O ddifrif, mae'r rhyngweithio amlwg o fewn cod monolith a homogenaidd yn ymddangos yn gymhleth? Pe bai hyn yn wir, byddai pob prosiect yn cael ei adeiladu i ddechrau fel microwasanaethau, tra bod arfer yn dangos bod mudo o fonolith i ficrowasanaethau yn llawer mwy cyffredin. Nid yw cymhlethdod yn diflannu; yn syml, mae'n symud o fodiwlau unigol i ryngwynebau (boed yn fysiau data, RPC, APIs, a phrotocolau eraill) a systemau cerddorfaol. Ac mae hyn yn anodd!

Mae'r fantais o ddefnyddio stac heterogenaidd hefyd yn amheus. Ni fyddaf yn dadlau bod hyn hefyd yn bosibl, ond mewn gwirionedd anaml y mae'n digwydd (Edrych ymlaen - dylai hyn ddigwydd - ond yn hytrach o ganlyniad na mantais).

Cylch bywyd cynnyrch a chylch bywyd gwasanaeth

Cymerwch gip arall ar y diagram uchod. Nid yw'n gyd-ddigwyddiad i mi nodi'r gostyngiad yng nghylch bywyd fersiwn ar wahân o fusnes - mewn amodau modern, cyflymiad y broses o drosglwyddo busnes rhwng fersiynau sy'n bendant ar gyfer ei lwyddiant. Mae llwyddiant cynnyrch yn cael ei bennu gan gyflymder profi damcaniaethau busnes ynddo. Ac yma, yn fy marn i, mae mantais allweddol pensaernïaeth microservice. Ond gadewch i ni fynd mewn trefn.

Gadewch i ni symud ymlaen i'r cam nesaf yn esblygiad systemau gwybodaeth - i bensaernïaeth SOA sy'n canolbwyntio ar wasanaethau. Felly, ar ryw adeg benodol fe wnaethom dynnu sylw at ein cynnyrch gwasanaethau hirhoedlog - hirhoedlog yn yr ystyr, wrth symud rhwng fersiynau o gynnyrch, mae siawns y bydd cylch bywyd y gwasanaeth yn hirach na chylch bywyd fersiwn nesaf y cynnyrch. Byddai'n rhesymegol peidio â'u newid o gwbl - ni Yr hyn sy'n bwysig yw cyflymder trosglwyddo i'r fersiwn nesaf. Ond gwaetha'r modd, rydyn ni'n cael ein gorfodi i wneud newidiadau cyson i wasanaethau - ac yma mae popeth yn gweithio i ni, arferion DevOps, cynhwysyddion, ac yn y blaen - popeth sy'n dod i'r meddwl. Ond nid microwasanaethau mo'r rhain o hyd!

Microwasanaethau fel modd o frwydro yn erbyn cymhlethdod... rheoli cyfluniad

Ac yma gallwn symud ymlaen o'r diwedd at rôl ddiffiniol microwasanaethau - mae hwn yn ddull sy'n symleiddio rheolaeth cyfluniad cynnyrch. Yn fwy manwl, mae swyddogaeth pob microwasanaeth yn disgrifio'n union swyddogaeth fusnes y tu mewn i'r cynnyrch yn ôl y model parth - ac mae'r rhain yn bethau sy'n byw nid mewn fersiwn byrhoedlog, ond mewn cyfle busnes hirhoedlog. Ac mae'r newid i fersiwn nesaf y cynnyrch yn digwydd yn llythrennol heb i neb sylwi - rydych chi'n newid / ychwanegu un microwasanaeth, ac efallai dim ond y cynllun o'u rhyngweithio, ac yn sydyn rydych chi'n cael eich hun yn y dyfodol, gan adael ar ôl crio cystadleuwyr sy'n parhau i neidio rhwng fersiynau o eu monolithau. Nawr dychmygwch fod yna nifer eithaf mawr o ficrowasanaethau gyda rhyngwynebau a galluoedd busnes wedi'u diffinio ymlaen llaw. Ac rydych chi'n dod ac yn adeiladu strwythur eich cynnyrch o ficrowasanaethau parod - yn syml trwy dynnu diagram, er enghraifft. Llongyfarchiadau - mae gennych chi lwyfan - a nawr gallwch chi ddenu busnes i chi'ch hun. Breuddwydion Breuddwydion.

Canfyddiadau

  • Dylai pensaernïaeth y system gael ei bennu gan gylch bywyd ei gydrannau. Os yw cydran yn byw o fewn fersiwn cynnyrch, nid oes diben cynyddu cymhlethdod y system trwy ddefnyddio dull microwasanaeth.
  • Dylai pensaernïaeth microservice fod yn seiliedig ar y model parth - oherwydd y cyfle busnes yw'r parth hiraf
  • Mae arferion cyflwyno (arferion DevOps) ac offeryniaeth yn un o'r rhai pwysicaf ar gyfer pensaernïaeth microwasanaeth - am y rheswm bod y cynnydd yn y gyfradd newid cydrannau yn rhoi mwy o bwysau ar gyflymder ac ansawdd y ddarpariaeth

Ffynhonnell: hab.com

Ychwanegu sylw