Microservices - a combinatorial bugbamu ti awọn ẹya

Kaabo, Habr! Mo ṣafihan si akiyesi rẹ onkowe ká translation ti awọn article Microservices – Combinatorial bugbamu ti awọn ẹya.
Microservices - a combinatorial bugbamu ti awọn ẹya
Ni akoko kan nigbati agbaye IT n lọ siwaju si awọn iṣẹ microservices ati awọn irinṣẹ bii Kubernetes, iṣoro kan nikan ni o di akiyesi siwaju ati siwaju sii. Iṣoro yii - bugbamu combinatorial microservice awọn ẹya. Sibẹsibẹ, agbegbe IT gbagbọ pe ipo lọwọlọwọ dara julọ ju "Apaadi igbẹkẹle" ti tẹlẹ iran ti imo. Sibẹsibẹ, awọn microservices ti ikede jẹ iṣoro eka pupọ. Ọkan ẹri ti eyi le jẹ awọn nkan bi "Fun mi pada monolith mi".

Ti o ko ba loye iṣoro naa nipa kika ọrọ yii, jẹ ki n ṣalaye. Jẹ ki a sọ pe ọja rẹ ni awọn iṣẹ microservice 10. Bayi jẹ ki a ro pe ẹya tuntun 1 ti tu silẹ fun ọkọọkan awọn iṣẹ microservice wọnyi. Ẹya 1 nikan - Mo nireti pe gbogbo wa le gba pe eyi jẹ otitọ bintin ati aibikita. Bayi, sibẹsibẹ, jẹ ki ká wo miiran ni ọja wa. Pẹlu ẹya tuntun kan ti paati kọọkan, a ni bayi ni 2^10 - tabi 1024 permutations ti bii ọja wa ṣe le ṣajọ.

Ti ede-aiyede kan ba tun wa, jẹ ki n fọ iṣiro naa. Nitorinaa a ni awọn iṣẹ microservice 10, ọkọọkan ngba imudojuiwọn kan. Iyẹn ni, a gba awọn ẹya 2 ṣee ṣe fun microservice kọọkan (boya atijọ tabi tuntun). Bayi, fun ọkọọkan awọn paati ọja, a le lo boya ninu awọn ẹya meji wọnyi. Iṣiro, o jẹ kanna bi ẹnipe a ni nọmba alakomeji ti awọn nọmba 10. Fun apẹẹrẹ, jẹ ki a sọ pe 1 jẹ ẹya tuntun, ati pe 0 jẹ ẹya atijọ - lẹhinna ọkan ti o ṣeeṣe permutation le jẹ itọkasi bi 1001000000 - nibiti awọn paati 1st ati 4th ti ni imudojuiwọn, ati pe gbogbo awọn miiran kii ṣe. Lati mathimatiki a mọ pe nọmba alakomeji oni-nọmba 10 le ni awọn iye 2^10 tabi 1024. Iyẹn ni, a ti jẹrisi iwọn ti nọmba ti a nṣe pẹlu rẹ.

Jẹ ki a tẹsiwaju ero wa siwaju - kini yoo ṣẹlẹ ti a ba ni awọn iṣẹ microservice 100 ati ọkọọkan ni awọn ẹya 10 ti o ṣeeṣe? Gbogbo ipo naa di ohun ti ko dun - a ni bayi 10 ^ 100 permutations - eyiti o jẹ nọmba nla. Sibẹsibẹ, Mo fẹ lati ṣe aami ipo yii ni ọna yii, nitori bayi a ko tun farapamọ lẹhin awọn ọrọ bi "kubernetes", ṣugbọn kuku koju iṣoro naa bi o ti jẹ.

Kini idi ti iṣoro yii ṣe fani mọra mi pupọ? Ni apakan nitori, ti o ti ṣiṣẹ tẹlẹ ni agbaye ti NLP ati AI, a jiroro lori iṣoro ti bugbamu combinatorial pupọ nipa awọn ọdun 5-6 sẹhin. Nikan dipo awọn ẹya a ni awọn ọrọ kọọkan, ati dipo awọn ọja a ni awọn gbolohun ọrọ ati awọn paragira. Ati pe botilẹjẹpe awọn iṣoro ti NLP ati AI ko ni ipinnu pupọ, o gbọdọ gba pe ilọsiwaju pataki ti ni awọn ọdun diẹ sẹhin. (ninu ero mi, ilọsiwaju le ṣee ṣeоYoo dara julọ ti awọn eniyan ninu ile-iṣẹ ba san ifojusi diẹ si imọ ẹrọ ati diẹ diẹ sii si awọn imuposi miiran - ṣugbọn eyi jẹ koko-ọrọ tẹlẹ).

Jẹ ki a pada si agbaye ti DevOps ati awọn iṣẹ microservices. A dojukọ iṣoro nla kan, ti o dabi erin ni Kunstkamera - nitori ohun ti Mo nigbagbogbo gbọ ni “gbà kubernetes ati helm, ati pe ohun gbogbo yoo dara!” Ṣugbọn rara, ohun gbogbo kii yoo dara ti ohun gbogbo ba fi silẹ bi o ti jẹ. Pẹlupẹlu, ojutu itupalẹ si iṣoro yii ko dabi itẹwọgba nitori idiju rẹ. Gẹgẹbi NLP, o yẹ ki a kọkọ sunmọ iṣoro yii nipa didin aaye wiwa dina — ninu ọran yii, nipa imukuro awọn permutations ti igba atijọ.

Ọkan ninu awọn ohun ti o le ṣe iranlọwọ ni nkan ti Mo kowe ni ọdun to kọja nipa iwulo lati ṣetọju iyatọ ti o kere ju laarin awọn ẹya ti a firanṣẹ fun awọn alabara. O tun ṣe pataki lati ṣe akiyesi pe ilana CI / CD ti a ṣe daradara ṣe iranlọwọ pupọ ni idinku awọn iyatọ. Sibẹsibẹ, ipo ti awọn ọran lọwọlọwọ pẹlu CI/CD ko dara to lati yanju iṣoro ti awọn permutations laisi awọn irinṣẹ afikun fun iṣiro ati awọn paati ipasẹ.

Ohun ti a nilo ni eto idanwo ni ipele isọpọ, nibiti a ti le pinnu ifosiwewe eewu fun paati kọọkan, ati tun ni ilana adaṣe kan fun imudojuiwọn awọn oriṣiriṣi awọn paati ati idanwo laisi ilowosi oniṣẹ - lati rii kini o ṣiṣẹ ati kini kii ṣe.

Iru eto idanwo le dabi eyi:

  1. Awọn olupilẹṣẹ kọ awọn idanwo (eyi jẹ ipele to ṣe pataki - nitori bibẹẹkọ a ko ni ami igbelewọn - o dabi isamisi data ni ẹkọ ẹrọ).
  2. Ẹya paati kọọkan (iṣẹ akanṣe) gba eto CI tirẹ - ilana yii ti ni idagbasoke daradara, ati pe ọran ti ṣiṣẹda eto CI fun paati kan ti ni ipinnu ni pataki.
  3. “Eto isọpọ ọlọgbọn” n gba awọn abajade ti ọpọlọpọ awọn eto CI ati pejọ awọn iṣẹ paati sinu ọja ikẹhin, ṣiṣe idanwo ati nikẹhin ṣe iṣiro ọna ti o kuru ju lati gba iṣẹ ṣiṣe ọja ti o fẹ da lori awọn paati ti o wa tẹlẹ ati awọn okunfa eewu. Ti imudojuiwọn ko ba ṣee ṣe, eto yii sọ fun awọn olupilẹṣẹ nipa awọn paati ti o wa ati eyiti ninu wọn nfa aṣiṣe naa. Lẹẹkansi, eto idanwo jẹ pataki pataki nibi - niwọn igba ti eto isọdọkan nlo awọn idanwo bi ami igbelewọn.
  4. Eto CD, eyiti lẹhinna gba data lati Eto Integration Smart ati ṣe imudojuiwọn taara. Yi ipele dopin awọn ọmọ.

Lati ṣe akopọ, fun mi ọkan ninu awọn iṣoro ti o tobi julọ ni bayi ni aini iru “Eto Integration Smart” ti yoo so awọn oriṣiriṣi awọn paati sinu ọja kan ati nitorinaa gba ọ laaye lati tọpinpin bi ọja naa ṣe papọ papọ. Emi yoo nifẹ si awọn ero agbegbe lori eyi (apanirun - Mo n ṣiṣẹ lọwọlọwọ lori iṣẹ akanṣe kan Reliza, eyi ti o le di iru kan smati Integration eto).

Ohun ikẹhin kan ti Mo fẹ sọ ni pe, si mi, monolith ko ṣe itẹwọgba fun eyikeyi iṣẹ akanṣe paapaa iwọn alabọde. Fun mi, awọn igbiyanju lati yara imuse akoko ati didara idagbasoke nipasẹ ipadabọ si monolith kan fa ṣiyemeji nla. Ni akọkọ, monolith kan ni iṣoro kanna ti iṣakoso awọn paati - laarin awọn ile-ikawe lọpọlọpọ ti o ni, sibẹsibẹ, gbogbo eyi kii ṣe akiyesi bẹ ati ṣafihan ararẹ ni akọkọ ni akoko ti awọn olupilẹṣẹ lo. Abajade ti iṣoro monolith jẹ ailagbara foju ti ṣiṣe awọn ayipada si koodu - ati iyara idagbasoke o lọra pupọ.

Microservices mu ipo naa dara, ṣugbọn lẹhinna faaji microservice dojukọ iṣoro ti bugbamu combinatorial ni ipele isọpọ. Bẹẹni, ni gbogbogbo, a ti gbe iṣoro kanna lati ipele idagbasoke si ipele iṣọpọ. Bibẹẹkọ, ninu ero mi, ọna microservices tun yori si awọn abajade to dara julọ, ati pe awọn ẹgbẹ ṣaṣeyọri awọn abajade ni iyara (boya ni pataki nitori idinku iwọn ti apakan idagbasoke - tabi iwọn ipele). Sibẹsibẹ, gbigbe lati monolith si awọn microservices ko ti ni ilọsiwaju ilana naa to - bugbamu combinatorial ti awọn ẹya microservice jẹ iṣoro nla, ati pe a ni agbara pupọ lati mu ipo naa dara bi a ṣe yanju rẹ.

orisun: www.habr.com

Fi ọrọìwòye kun