Microservices: kini wọn jẹ, idi ti wọn fi wa ati igba lati ṣe wọn

Mo fẹ lati kọ nkan kan lori koko-ọrọ ti faaji microservice fun igba pipẹ, ṣugbọn awọn nkan meji duro duro - bi mo ṣe wọ inu koko-ọrọ naa, diẹ sii o dabi si mi pe ohun ti Mo mọ jẹ kedere, ati ohun ti Emi ko ṣe. t mọ nilo lati ṣe iwadi ati iwadi. Ni apa keji, Mo ro pe ohun kan ti wa tẹlẹ lati jiroro laarin awọn olugbo ti o gbooro. Nitorina yiyan ero wa kaabo.

Ofin Conway ati ibatan laarin iṣowo, agbari ati eto alaye

Lẹẹkansi Emi yoo gba ara mi laaye lati sọ:

“Ajo eyikeyi ti o ṣe apẹrẹ eto kan (ni ọna ti o gbooro) yoo gba apẹrẹ kan ti eto rẹ ṣe atunṣe eto ti awọn ẹgbẹ ninu agbari yẹn.”
Melvyn Conway, ọdun 1967

Ni ero mi, ofin yii jẹ diẹ sii lati ni ibatan si iṣeeṣe ti siseto iṣowo kan, dipo taara si eto alaye. Jẹ ki n ṣe alaye pẹlu apẹẹrẹ. Jẹ ki a sọ pe a ni aye iṣowo iduroṣinṣin ti o tọ pẹlu igbesi aye igbesi aye ti iru gigun ti o jẹ oye lati ṣeto ile-iṣẹ kan (eyi kii ṣe typo, ṣugbọn Mo fẹran ọrọ yii gaan ti Mo ji) Nipa ti, eto atilẹyin ti iṣowo yii. yoo leto ati ilana ni ibamu si iṣowo yii.

Iṣalaye iṣowo ti awọn ọna ṣiṣe alaye

Microservices: kini wọn jẹ, idi ti wọn fi wa ati igba lati ṣe wọn

Jẹ ki n ṣe alaye pẹlu apẹẹrẹ. Jẹ ki a sọ pe aye iṣowo wa lati ṣeto iṣowo kan ti n ta pizza. Ninu ẹya V1 (jẹ ki a pe alaye tẹlẹ), ile-iṣẹ jẹ pizzeria, iforukọsilẹ owo, ati iṣẹ ifijiṣẹ kan. Ẹya yii jẹ igba pipẹ ni awọn ipo ti iyipada ayika kekere. Lẹhinna ẹya 2 wa lati rọpo rẹ - ilọsiwaju diẹ sii ati anfani lati lo eto alaye ni ipilẹ rẹ fun iṣowo pẹlu faaji monolithic kan. Ati nihin, ninu ero mi, aiṣedeede ẹru kan wa ni ibatan si awọn monoliths - titẹnumọ faaji monolithic ko ni ibamu si awoṣe iṣowo agbegbe. Bẹẹni, ti eyi ba jẹ bẹ, eto naa kii yoo ni anfani lati ṣiṣẹ rara - ni ilodi si ofin Conway kanna ati oye ti o wọpọ. Rara, faaji monolithic ni ibamu ni kikun pẹlu awoṣe iṣowo ni ipele yii ti idagbasoke iṣowo - Emi, nitorinaa, tumọ si ipele nigbati eto naa ti ṣẹda tẹlẹ ati fi sii. O jẹ otitọ iyalẹnu gaan pe laibikita ọna ti ayaworan, mejeeji ẹya iṣẹ ọna faaji ti o da lori 3 ati ẹya microservices faaji N yoo ṣiṣẹ ni deede daradara. Kini imudani naa?

Ohun gbogbo n ṣàn, ohun gbogbo yipada, tabi awọn iṣẹ microservice jẹ ọna lati koju idiju?

Ṣaaju ki a to tẹsiwaju, jẹ ki a wo diẹ ninu awọn aburu nipa faaji microservice.

Awọn olufojusi ti lilo ọna microservice nigbagbogbo n jiyan pe fifọ monolith sinu awọn iṣẹ microservice jẹ irọrun ọna idagbasoke nipasẹ idinku ipilẹ koodu ti awọn iṣẹ kọọkan. Ni ero mi, ọrọ isọkusọ ni kikun. Ni pataki, ibaraenisepo ti o han gbangba laarin monolith ati koodu isokan dabi idiju? Ti eyi ba jẹ ọran gaan, gbogbo awọn iṣẹ akanṣe yoo kọkọ kọ bi awọn iṣẹ microservices, lakoko ti adaṣe fihan pe ijira lati monolith si awọn iṣẹ microservices jẹ wọpọ pupọ. Idiju ko parẹ; o rọrun lati awọn modulu kọọkan si awọn atọkun (jẹ awọn ọkọ akero data, RPC, APIs, ati awọn ilana miiran) ati awọn ọna ṣiṣe. Ati pe eyi nira!

Awọn anfani ti lilo akopọ orisirisi jẹ tun hohuhohu. Emi kii yoo jiyan pe eyi tun ṣee ṣe, ṣugbọn ni otitọ o ṣọwọn waye (Nwa iwaju - eyi yẹ ki o ṣẹlẹ - ṣugbọn kuku bi abajade ju anfani lọ).

Ọja aye ọmọ ati iṣẹ aye ọmọ

Wo miiran ni aworan atọka loke. Kii ṣe lasan ti Mo ṣe akiyesi igbesi aye igbesi aye ti o dinku ti ẹya lọtọ ti iṣowo kan - ni awọn ipo ode oni, o jẹ isare ti iyipada ti iṣowo laarin awọn ẹya ti o jẹ ipinnu fun aṣeyọri rẹ. Aṣeyọri ti ọja jẹ ipinnu nipasẹ iyara ti idanwo awọn idawọle iṣowo ninu rẹ. Ati nihin, ninu ero mi, wa da anfani bọtini ti faaji microservice. Ṣugbọn jẹ ki a lọ ni ibere.

Jẹ ki a lọ si ipele ti o tẹle ni itankalẹ ti awọn eto alaye - si faaji ti iṣẹ-iṣẹ ti SOA. Nitorinaa, ni aaye kan ti a ṣe afihan ni ọja wa gun-ti gbé awọn iṣẹ - gigun ni ori pe nigba gbigbe laarin awọn ẹya ti ọja kan, aye wa pe ọna igbesi aye iṣẹ naa yoo gun ju igbesi-aye igbesi aye ti ẹya atẹle ti ọja naa. O ni yio jẹ mogbonwa ko lati yi wọn ni gbogbo - a Ohun ti o ṣe pataki ni iyara iyipada si ẹya atẹle. Ṣugbọn ala, a fi agbara mu lati ṣe awọn ayipada igbagbogbo si awọn iṣẹ - ati nibi ohun gbogbo n ṣiṣẹ fun wa, awọn iṣe DevOps, apoti, ati bẹbẹ lọ - ohun gbogbo ti o wa si ọkan. Ṣugbọn awọn wọnyi ni o wa ṣi ko microservices!

Microservices bi ọna kan lati dojuko complexity ... isakoso iṣeto ni

Ati pe nibi a le nipari tẹsiwaju si ipa asọye ti awọn iṣẹ microservices - eyi jẹ ọna ti o rọrun iṣakoso iṣeto ọja. Ni awọn alaye diẹ sii, iṣẹ ti microservice kọọkan n ṣe apejuwe iṣẹ ṣiṣe iṣowo ni pato ninu ọja ni ibamu si awoṣe ašẹ - ati pe iwọnyi jẹ awọn nkan ti ko gbe ni ẹya igba diẹ, ṣugbọn ni aye iṣowo gigun. Ati iyipada si ẹya atẹle ti ọja naa ṣẹlẹ gangan laiṣe akiyesi - o yipada / ṣafikun ọkan microservice, ati boya o kan ero ti ibaraenisepo wọn, ati lojiji o rii ararẹ ni ọjọ iwaju, nlọ sile awọn oludije igbe ti o tẹsiwaju lati fo laarin awọn ẹya ti wọn monoliths. Bayi fojuinu pe iwọn didun ti o tobi pupọ ti awọn iṣẹ microservice pẹlu awọn atọkun ti a ti pinnu tẹlẹ ati awọn agbara iṣowo. Ati pe o wa kọ eto ọja rẹ lati awọn iṣẹ microservices ti a ti ṣetan - nirọrun nipa yiya aworan kan, fun apẹẹrẹ. Oriire - o ni pẹpẹ kan - ati ni bayi o le fa iṣowo fun ararẹ. Àlá Àlá.

awari

  • Awọn faaji ti eto yẹ ki o pinnu nipasẹ ọna igbesi aye ti awọn paati rẹ. Ti paati kan ba ngbe laarin ẹya ọja, ko si aaye ni jijẹ idiju ti eto naa nipa lilo ọna microservice kan.
  • Microservice faaji yẹ ki o da lori awoṣe ašẹ - nitori anfani iṣowo ni aaye ti o gunjulo julọ
  • Awọn iṣe ifijiṣẹ (awọn iṣe DevOps) ati orchestration jẹ ọkan ninu pataki julọ fun faaji microservice - fun idi ti ilosoke ninu oṣuwọn iyipada ti awọn paati gbe awọn ibeere pọ si iyara ati didara ifijiṣẹ.

orisun: www.habr.com

Fi ọrọìwòye kun