Microservices - fashewar haɗakar nau'ikan iri

Hello, Habr! Ina gabatar da hankalin ku fassarar marubucin labarin Microservices – Haɗuwa Fashewar Sirri.
Microservices - fashewar haɗakar nau'ikan iri
A lokacin da duniyar IT a hankali ke motsawa zuwa ƙananan ayyuka da kayan aiki kamar Kubernetes, matsala ɗaya ce kawai ke ƙara zama sananne. Wannan matsala - fashewar haɗuwa sigar microservice. Har yanzu, jama'ar IT sun yi imanin cewa halin da ake ciki yanzu ya fi kyau "Dependency jahannama" fasahar zamani ta baya. Koyaya, sigar microservices matsala ce mai wuyar gaske. Hujja ɗaya na wannan na iya zama labarai kamar "Mado min d'aurin aurena".

Idan har yanzu ba ku fahimci matsalar ta hanyar karanta wannan rubutun ba, bari in yi bayani. Bari mu ce samfurin ku ya ƙunshi ƙananan ayyuka 10. Yanzu bari mu ɗauka cewa an fitar da sabon sigar 1 don kowane ɗayan waɗannan ƙananan ayyukan. Siga 1 kawai - Ina fata dukkanmu zamu iya yarda cewa wannan gaskiya ce maras muhimmanci kuma maras muhimmanci. Yanzu, duk da haka, bari mu sake kallon samfurin mu. Tare da sabon juzu'i guda ɗaya na kowane ɓangaren, yanzu muna da 2^10 - ko 1024 permutations na yadda samfurinmu zai iya haɗawa.

Idan har yanzu akwai rashin fahimta, bari in karya lissafin. Don haka muna da microservices 10, kowanne yana karɓar sabuntawa ɗaya. Wato, muna samun nau'ikan yuwuwar 2 ga kowane microservice (ko dai tsoho ko sabo). Yanzu, ga kowane ɓangaren samfurin, zamu iya amfani da ɗayan waɗannan nau'ikan guda biyu. A ilimin lissafi, daidai yake da idan muna da lambar binary na lambobi 10. Misali, bari mu ce 1 sabon sigar ne, 0 kuma tsohuwar sigar ce - to, ana iya yin la'akari da wani nau'i mai yuwuwa kamar 1001000000 - inda aka sabunta abubuwan 1st da 4th, kuma duk sauran ba a sabunta su ba. Daga ilimin lissafi mun san cewa lambar binary mai lamba 10 na iya samun ƙimar 2^10 ko 1024. Wato mun tabbatar da girman adadin da muke fama da shi.

Bari mu ci gaba da tunaninmu - menene zai faru idan muna da microservices 100 kuma kowanne yana da nau'ikan yuwuwar 10? Dukan halin da ake ciki ya zama abin ban sha'awa - yanzu muna da 10 ^ 100 permutations - wanda shine adadi mai yawa. Duk da haka, na fi so in lakafta wannan yanayin ta wannan hanya, saboda yanzu ba mu ɓoye a bayan kalmomi kamar "kubernetes", amma a maimakon fuskantar matsalar kamar yadda yake.

Me yasa wannan matsalar ta burge ni haka? Wani ɓangare saboda, tun da yake aiki a baya a cikin duniyar NLP da AI, mun tattauna matsalar fashewar haɗuwa da yawa game da 5-6 shekaru da suka wuce. Sai kawai a maimakon nau'ikan muna da kalmomi guda ɗaya, kuma maimakon samfuran muna da jimloli da sakin layi. Kuma kodayake matsalolin NLP da AI sun kasance ba a warware su ba, dole ne a yarda cewa an sami ci gaba mai mahimmanci a cikin 'yan shekarun da suka gabata. (a ganina, ana iya samun ci gabaоZai fi kyau idan mutane a cikin masana'antu sun ba da hankali sosai ga koyon injin da ɗan ƙara wasu fasahohin - amma wannan ya rigaya ya ƙare).

Mu koma duniyar DevOps da ƙananan sabis. Muna fuskantar babbar matsala, muna yin kama da giwa a cikin Kunstkamera - saboda abin da na ji sau da yawa shine "kawai kubernetes da helm, kuma komai zai yi kyau!" Amma a'a, komai ba zai yi kyau ba idan an bar komai kamar yadda yake. Bugu da ƙari, maganin nazartar wannan matsala ba zai zama abin karɓa ba saboda rikitarwa. Kamar yadda yake a cikin NLP, ya kamata mu fara tunkarar wannan matsala ta hanyar taƙaita iyakokin bincike-a wannan yanayin, ta hanyar kawar da abubuwan da suka gabata.

Ɗaya daga cikin abubuwan da za su iya taimakawa shine abin da na rubuta a bara game da buƙatar kiyaye ƙaramin bambanci tsakanin nau'ikan da aka buga don abokan ciniki. Hakanan yana da mahimmanci a lura cewa tsarin CI/CD da aka tsara da kyau yana taimakawa sosai wajen rage bambance-bambance. Duk da haka, halin da ake ciki a halin yanzu tare da CI / CD bai isa ba don magance matsalar rikice-rikice ba tare da ƙarin kayan aiki don lissafin lissafi da abubuwan da aka gano ba.

Abin da muke bukata shine tsarin gwaji a matakin haɗin kai, inda za mu iya ƙayyade haɗarin haɗari ga kowane bangare, da kuma samun tsari mai sarrafa kansa don sabunta abubuwa daban-daban da gwaji ba tare da sa hannun ma'aikaci ba - don ganin abin da ke aiki da abin da ba ya aiki.

Irin wannan tsarin gwaji na iya kama da haka:

  1. Masu haɓakawa suna rubuta gwaje-gwaje (wannan mataki ne mai mahimmanci - saboda in ba haka ba ba mu da ma'auni na kimantawa - yana kama da lakabi bayanai a cikin koyon injin).
  2. Kowane bangare (aiki) yana karɓar nasa tsarin CI - wannan tsari yanzu an haɓaka shi sosai, kuma an warware batun ƙirƙirar tsarin CI don ɓangaren guda ɗaya.
  3. "Tsarin haɗin kai mai wayo" yana tattara sakamakon daban-daban na tsarin CI kuma ya haɗa ayyukan haɗin gwiwa a cikin samfurin ƙarshe, yana gudanar da gwaji kuma a ƙarshe yana ƙididdige hanya mafi guntu don samun aikin samfurin da ake so dangane da abubuwan da ke faruwa da abubuwan haɗari. Idan sabuntawa ba zai yiwu ba, wannan tsarin yana sanar da masu haɓakawa game da abubuwan da ke akwai kuma wanne daga cikinsu ke haifar da kuskure. Har yanzu, tsarin gwajin yana da mahimmanci a nan - tun da tsarin haɗin kai yana amfani da gwaje-gwaje a matsayin ma'auni na kimantawa.
  4. Tsarin CD, wanda sannan yana karɓar bayanai daga Smart Integration System kuma yana aiwatar da sabuntawa kai tsaye. Wannan mataki yana ƙare zagayowar.

A takaice, a gare ni daya daga cikin manyan matsalolin yanzu shine rashin irin wannan "Smart Integration System" wanda zai haɗa nau'o'i daban-daban a cikin samfurin kuma ta haka ne za ku iya gano yadda ake hada samfurin gaba ɗaya. Zan yi sha'awar tunanin al'umma akan wannan (mai ɓarna - A halin yanzu ina aiki akan wani aiki Reliza, wanda zai iya zama irin wannan tsarin haɗin kai mai kaifin baki).

Abu na ƙarshe da nake so in ambata shi ne, a gare ni, monolith ba a yarda da kowane aiki na ko da matsakaicin girman. A gare ni, yunƙurin hanzarta aiwatar da lokacin aiwatarwa da ingancin ci gaba ta hanyar komawa zuwa ga kaɗaici yana haifar da babban shakku. Da fari dai, monolith yana da irin wannan matsala ta sarrafa abubuwan da aka gyara - a cikin ɗakunan karatu daban-daban da ya ƙunshi, duk da haka, duk wannan ba a bayyane yake ba kuma yana bayyana kansa a farkon lokacin da masu haɓaka suka kashe. Sakamakon matsalar monolith shine rashin yiwuwar yin canje-canje ga lambar - kuma yana da saurin haɓaka haɓaka.

Microservices suna inganta yanayin, amma sai tsarin gine-ginen microservice yana fuskantar matsalar fashewar fashewa a matakin haɗin kai. Ee, gabaɗaya, mun matsar da matsala iri ɗaya daga matakin ci gaba zuwa matakin haɗin kai. Duk da haka, a ganina, tsarin microservices har yanzu yana haifar da sakamako mafi kyau, kuma ƙungiyoyi suna samun sakamako da sauri (watakila yafi saboda raguwar girman sashin ci gaba - ko girman tsari). Duk da haka, ƙaura daga monolith zuwa microservices bai riga ya kawo isasshen ci gaba ga tsarin ba - haɗakar fashewar nau'in microservice babbar matsala ce, kuma muna da damar da za mu iya inganta yanayin yayin da muke warware shi.

source: www.habr.com

Add a comment