Yandex wuxuu siidaayay koodhka isha ee Isticmaalaha, qaab dhismeedka abuurista abka C++

Yandex ayaa daabacday koodhka isha ee jir userview, kaas oo kuu ogolaanaya inaad abuurto codsiyada C++ aadka loo raray oo ku shaqeeya habka asynchronous. Jirka ayaa lagu tijaabiyay kor u qaadista heerka Yandex waxaana loo isticmaalaa adeegyada sida Yandex Go, Lavka, Delivery, Market iyo mashaariicda fintech.

userview waxay ku habboon tahay horumarinta codsiyada leh qaab-dhismeedka microservice. Markii hore, calaamaddaama waxaa loo sameeyay Yandex Taxi, isaga oo gacan ka helaya, kooxdu waxay ka beddeshay codsi monolithic ilaa naqshad dhisme taas oo kuu ogolaanaysa inaad horumariso qaybo madax-bannaan oo kala duwan (macaamiil) oo aad u isticmaasho codsiyo kala duwan.

Maanta waxaan ku dhawaaqeynaa sii deynta qaabka furan ee isticmaalaha si loo dhiso codsiyada culus ee culus. Annaga, tani waa hab muhiim ah oo aan ku wadaagno waayo-aragnimada horumarinta adeegyada yaryar ee aan uruurinay. Halkan waxaa ah isku xirka kaydka GitHub oo leh koodka isha, dukumeentiyada, muunadaha, qaab-dhismeedka abuurista adeegyadaada (oo leh CI habaysan, dhis iyo tijaabi deegaan), iyo adeeg qaabayn firfircoon. Waxaas oo dhan waxaa lagu sii daayay shatiga Apache 2.0.

Adeegga yar-yar waa iskiis, markaa codsiga ku salaysan qaab-dhismeedka noocan oo kale ah way fududahay in la cusbooneysiiyo oo lagu daro waxyaabo cusub. Sidaa darteed, adeeg-yaraha raadinta darawalka amarrada Taxi-ga waxaa loo isticmaali karaa hawl la mid ah, tusaale ahaan, helitaanka war-qaade si loo fuliyo amarrada bixinta Yandex. Isla sidaas oo kale ayaa la samayn karaa iyada oo la xisaabinayo wakhtiga imaatinka darawalka ama dirawalka iyo hawlo kale oo badan.

Qaab dhismeedka waxaa markii hore la abuuray iyadoo xoogga la saarayo isku halaynta iyo ku habboonaanta, iyo gudaha waxa ay ku siinaysaa wax kasta oo aad u baahan tahay horumarinta, ogaanshaha, la socodka, khaladka, iyo tijaabinta. Tusaale ahaan, isticmaaluhu wuxuu soo jeedinayaa sida loo hagaajiyo khaladaadka marxaladda dhismaha, yaqaana sida loogu shaqeeyo xog uruurin kala duwan, beddelka xuduudaha duulimaadka, iwm.

Marka laga hadlayo halabuurka, waxaa lagu xusay darawalada shaqada asynchronous ee DBMS ayaa lagu daray (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), macaamiisha iyo server-yada si isku mid ah ugu shaqeeya borotokoollada kala duwan (HTTP, HTTPS, GRPC, TCP, UDP, TLS), horudhac hoose si loo maareeyo wada shaqaynta iyo helitaanka awoodaha nidaamka iyo sidoo kale qaybaha heerka sare ah si ay ula shaqeeyaan kaydinta, hawlaha, quful qaybsan, baafinta, metrics, statistics, iyo xogta qaababka JSON/YAML/BSON, oo lagu daray waxay taageertaa beddelka qaabeynta adeegga ee duulista, iyada oo aan la joojin.

Marka la eego khasaaraha Dhismaha monolithic, kuwan soo socda ayaa lagu xusay:

  • Isku-dubbaridka dhammaan koodka hal-ku-dhegga. Iyada oo leh saldhig weyn oo kood ah, dhismaha iyo imtixaanku waxay qaadan karaan saacado, geyntu waxay qaadan kartaa maalin dhan.
  • Xir is dhexgalka qaybaha kala duwan ee koodka. Waa in aad juhdi badan gelisaa dib u eegista code si aanay isku xidhka qaybaha kala duwan ee monolith-ku u noqonin qas.
  • Jajabin. Isbeddel ku yimaada hal module ayaa jebin kara cutub kale.
  • Meelaha mas'uuliyadda ee mugdiga ah. Inta lagu jiro habka horumarinta, qaybo badan oo ka mid ah koodhka ayaa guud, bilaabaya in ay isticmaalaan kooxo kala duwan, tanina way fiican tahay. Laakiin natiijadu waxay tahay, ma cadda cidda mas'uulka ka ah cutubka ka soo baxa: qorayaasha ugu horreeya; kuwa wax-ka-beddelka ugu badan sameeyay; ama kuwa sida firfircoon u isticmaala moduleka koodhka.

Markii hore, Yandex waxa ay u wareejisay tignoolajiyada kale ee muhiimka ah qaab mashruucyo furan, tusaale ahaan, YDB waxay qaybisay nidaamka maaraynta xogta xogta, oo awood u leh inay ka baaraandegto malaayiin codsi ah ilbiriqsi kasta, iyo sidoo kale maktabadda barashada mashiinka CatBoost, oo Yandex u adeegsato Raadinta iyo kuwa kale. adeegyada.

Finalmente kuwa doonaya inay wax badan ka ogaadaanFadlan la soco in Isticmaalaha hadda lagu taageeray Ubuntu, Debian, Fedora, Arch, Gentoo, macOS Systems, x86, x86_64, AArch64, Arm architectures, GCC 8+ iyo Clang 9+ compilers, C++17 standards, C++20, C ++23.

Koodhka isticmaalaha waxa uu ku qoran yahay C++ iyo Way furan tahay hoos shatiga Apache 2.0 waxaana lagala tashan karaa xiriirka soo socda.


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.