Zaɓin salon gine-gine (Kashi na 1)

Hello, habr. An buɗe rajista don sabon rafin kwas a yanzu a OTUS "Software Architect". A jajibirin fara karatun, ina so in raba tare da ku ainihin labarina.

Gabatarwar

Zaɓin tsarin gine-gine shine ɗayan mahimman yanke shawara na fasaha lokacin gina tsarin bayanai. A cikin wannan jerin kasidu, na ba da shawarar yin nazarin mafi mashahuri tsarin gine-gine don gina aikace-aikace da amsa tambayar yaushe ne salon gine-gine ya fi dacewa. A cikin tsarin gabatarwa, zan yi ƙoƙari in zana sarkar ma'ana wanda ke bayyana ci gaban tsarin gine-gine daga monoliths zuwa microservices.

A bit of history

Idan kayi ƙoƙarin tambayar masu haɓakawa: "Me yasa muke buƙatar microservices?", Za ku sami amsoshi iri-iri. Za ku ji cewa microservices suna inganta haɓakawa, sanya lambar sauƙi don fahimta, inganta haɓakar kuskure, kuma wani lokacin za ku ji cewa suna ba ku damar "tsabta lambar ku." Bari mu dubi tarihi don fahimtar dalilin da ke tattare da bayyanar ƙananan ayyuka.

A takaice dai, microservices a cikin fahimtarmu na yanzu sun taso kamar haka: a cikin 2011, James Lewis, yana nazarin ayyukan kamfanoni daban-daban, ya jawo hankali ga fitowar sabon tsarin "micro-app", wanda ya inganta SOA dangane da hanzarta tura kayan aikin. ayyuka. Bayan ɗan lokaci, a cikin 2012, a wani taron gine-gine, an sake masa suna microservice. Don haka, makasudin farko na gabatar da microservices shine inganta sananne lokacin kasuwa.

Microservices sun kasance kan haɓakar haɓakawa a cikin 2015. Kamar yadda wasu nazarin suka nuna, babu taro guda daya da aka kammala ba tare da rahoto kan batun kananan ayyuka ba. Bugu da ƙari, an keɓe wasu tarurruka na musamman ga ƙananan sabis. A zamanin yau, ayyuka da yawa sun fara amfani da wannan salon gine-gine, kuma idan aikin ya ƙunshi tarin lambobin gado, to tabbas ana aiwatar da ƙaura zuwa ƙananan sabis.

Duk da abubuwan da ke sama, ƙananan adadin masu haɓakawa na iya har yanzu ayyana manufar "microservice". Amma zamuyi magana akan wannan kadan kadan...

Monolith

Salon gine-ginen da ya bambanta microservices shine monolith (ko duk-in-daya). Wataƙila ba shi da ma'ana don faɗi abin da monolith yake, don haka nan da nan zan lissafa rashin amfani da wannan salon tsarin gine-gine, wanda ya fara haɓaka haɓakar tsarin gine-ginen: girman, haɗin kai, ƙaddamarwa, haɓakawa, aminci da rigidity. A ƙasa na ba da shawarar duba kowane gazawar daban.

size

monolith yana da girma sosai. Kuma yawanci yana sadarwa tare da babban rumbun adana bayanai. Aikace-aikacen ya zama babba don mai haɓakawa ɗaya ya iya fahimta kwata-kwata. Wadanda suka shafe lokaci mai tsawo suna aiki akan wannan lambar zasu iya aiki da kyau tare da monolith, yayin da masu farawa za su yi amfani da lokaci mai yawa don gano monolith kuma babu tabbacin za su gane shi. Yawancin lokaci, lokacin aiki tare da monolith, akwai ko da yaushe wasu manyan "sharadi" wanda ya san monolith ko žasa da kyau kuma ya doke hannun wasu sababbin masu haɓaka a cikin shekara guda da rabi. A dabi'ance, irin wannan babban dattijo mai sharadi guda daya ne na gazawa, kuma tafiyarsa na iya haifar da mutuwar tauhidi.

Haɗin kai

monolith shine "babban ball na laka", canje-canje wanda zai iya haifar da sakamakon da ba a iya tsammani ba. Ta hanyar yin canje-canje a wuri ɗaya, zaku iya lalata monolith a wani (daidai da "ka zazzage kunnenka, * @ faɗuwa"). Wannan shi ne saboda gaskiyar cewa abubuwan da ke cikin monolith suna da matukar rikitarwa kuma, mafi mahimmanci, dangantaka mara kyau.

Loaddamar da aiki

Aiwatar da monolith, saboda hadadden alakar da ke tsakanin abubuwan da ke tattare da shi, tsari ne mai tsawo tare da nasa al'ada. Irin wannan al’ada yawanci ba a daidaita shi gaba ɗaya kuma ana yin ta “a baki.”

Ƙimar ƙarfi

Moduloli na Monolith na iya samun buƙatun albarkatu masu cin karo da juna, suna buƙatar sasantawa dangane da kayan masarufi. Ka yi tunanin cewa kana da monolith wanda ya ƙunshi sabis na A da B. Sabis A yana buƙata akan girman rumbun kwamfutarka, kuma sabis na B yana buƙata akan RAM. A wannan yanayin, ko dai injin da aka sanya monolith a kansa dole ne ya goyi bayan buƙatun ayyukan biyu, ko kuma dole ne ku kashe ɗaya daga cikin ayyukan da hannu.

Wani misali (mafi al'ada): sabis ɗin A ya fi shahara fiye da sabis na B, don haka kuna so a sami sabis 100 A, da sabis 10 B. Bugu da ƙari, zaɓuɓɓuka biyu: ko dai mu tura 100 cikakken monoliths, ko kuma akan wasu sannan sabis na B dole ne a kashe su da hannu.

AMINCI

Tunda duk sabis ɗin suna tare, idan monolith ya faɗi, to duk sabis ɗin suna faɗuwa lokaci ɗaya. A gaskiya ma, wannan bazai zama mummunan ba, aƙalla ba za a sami gazawar ɓangarori ba a cikin tsarin rarrabawa, amma a gefe guda, saboda kwaro a cikin aikin da 0.001% na masu amfani ke amfani da shi, zaku iya rasa duk masu amfani. na tsarin ku.

Inertia

Saboda girman monolith, yana da wuya a canza zuwa sababbin fasaha. Sakamakon haka, riƙe wannan babban babban aiki ne daban. Tarin fasahar da aka zaɓa a farkon aikin na iya zama toshe wanda ke hana haɓakar samfur.

ƙarshe

Lokaci na gaba za mu yi magana game da yadda mutane suka yi ƙoƙarin magance waɗannan matsalolin ta hanyar ƙaura zuwa abubuwan haɗin gwiwa da SOA.

Zaɓin salon gine-gine (Kashi na 1)

Kara karantawa:

source: www.habr.com

Add a comment