I-Yandex ikhuphe ikhowudi yomthombo woMsebenzisi, isakhelo sokwenza ii-apps kwi-C ++

Yandex ipapashe ikhowudi yomthombo yesakhelo imbonakalo yomsebenzisi, ekuvumela ukuba wenze izicelo ze-C++ ezilayishwe kakhulu ezisebenza kwimowudi engatshintshiyo. Isakhelo ivavanyiwe kwinqanaba leYandex lokulayisha kwaye isetyenziswa kwiinkonzo ezifana neYandex Go, iLavka, iDelivery, iMarike kunye neeprojekthi zefintech.

imbonakalo yomsebenzisi ifaneleke kakhulu ekuphuhliseni usetyenziso kunye ne-microservice architecture. Ekuqaleni, uphawuokanye yaphuhliswa kwiYandex Taxi, ngoncedo lwakhe, iqela litshintshile kwisicelo se-monolithic kwi-architecture evumela ukuba uphuhlise amacandelo ahlukeneyo azimeleyo (microservices) kwaye uwasebenzise kwizicelo ezahlukeneyo.

Namhlanje sibhengeza ukukhutshwa kwesikhokelo somsebenzisi ovulekileyo wokwakha izicelo zomthwalo ophezulu. Kuthi, le yindlela ebalulekileyo yokwabelana ngamava ekuphuhliseni iinkonzo ezincinci esiziqokeleleyo. Nali ikhonkco kwindawo yokugcina ye-GitHub enekhowudi yomthombo, amaxwebhu, iisampulu, itemplate yokwenza iinkonzo zakho (kunye ne-CI iqwalaselwe, indawo yokwakha kunye nokuvavanya), kunye nenkonzo yoqwalaselo oluguqukayo. Konke oku kukhutshwa phantsi kwelayisensi ye-Apache 2.0.

Iinkonzo ezincinci zizimele, ke isicelo esisekwe kuyilo loyilo kulula ukuhlaziya kunye nokongeza amanqaku amatsha kuyo. Ngoko ke, i-microservice yokufumana umqhubi wee-odolo zeTeksi ingasetyenziselwa umsebenzi ofanayo, umzekelo, ukufumana i-courier ukuzalisekisa i-Yandex Delivery orders. Okufanayo kunokwenziwa ngokubala ixesha lokufika komqhubi okanye i-courier kunye neminye imisebenzi emininzi.

Isakhelo sadalwa kuqala sigxininisa ekuthembekeni nasekusebenziseni lula, kwaye ngaphakathi ibonelela ngayo yonke into oyifunayo kuphuhliso, uxilongo, ukujonga, ukulungisa ingxaki, kunye nokulinga. Ngokomzekelo, umsebenzisi ucebisa indlela yokulungisa iimpazamo kwinqanaba lokwakha, uyazi indlela yokusebenza kunye nedatha ehlukeneyo, ukutshintsha iiparitha kwi-fly, njl.

Ngokuphathelele ukwakheka, kukhankanyiwe ukuba abaqhubi bomsebenzi we-asynchronous kunye ne-DBMS zibandakanyiwe (iMongoDB, iPostgreSQL, iRedis, iClickHouse, iMySQL), abathengi kunye neeseva ezisebenza ngokulinganayo kwiiprothokholi ezahlukeneyo (HTTP, HTTPS, GRPC, TCP, UDP, TLS), umgangatho ophantsi wokulawula ulungelelwaniso kunye nokufikelela kubuchule benkqubo ngokunjalo amacandelo aphezulu okusebenza kunye ne-cache, imisebenzi, ukusabalalisa izitshixo, ukulandelwa, i-metrics, izibalo, kunye nedatha kwiifomathi ze-JSON / YAML / BSON, kunye nokuxhasa ukutshintsha ukucwangciswa kwenkonzo kwi-fly, ngaphandle kokuyimisa.

Ngokumalunga nezinto ezingeloncedo yoyilo lwe-monolithic oku kulandelayo kukhankanyiwe:

  • Ukudityaniswa kwayo yonke ikhowudi ngaphakathi kwe-monolith. Ngesiseko esikhulu sekhowudi, ukwakha kunye nokuvavanya kunokuthatha iiyure, kwaye ukuthunyelwa kungathatha usuku lonke.
  • Vala ukusebenzisana kweendawo ezahlukeneyo zekhowudi. Kuya kufuneka uchithe umzamo omkhulu kuphononongo lwekhowudi ukuze ujongano kwiindawo ezahlukeneyo ze-monolith zingabi yingxaki.
  • Uqhekeko. Utshintsho kwimodyuli enye lunokwaphula enye imodyuli.
  • Iinkalo zoxanduva olumfiliba. Ngethuba lenkqubo yophuhliso, iindawo ezininzi zekhowudi zidibanisa, ziqala ukusetyenziswa ngamaqela ahlukeneyo, kwaye oku kulungile. Kodwa ngenxa yoko, akucaci ukuba ngubani onoxanduva lwemodyuli enesiphumo: ababhali bokuqala; abo bahlele kakhulu; okanye abo basebenzisa kakhulu imodyuli kwikhowudi.

Ngaphambili, i-Yandex idlulisele obunye ubuchwephesha obuphambili ngendlela yeeprojekthi ezivulekileyo, umzekelo, i-YDB isasaze inkqubo yolawulo lwedatha, ekwazi ukujongana nezigidi zezicelo ngomzuzwana, kunye nelayibrari yokufunda umatshini weCatBoost, esetyenziswa yiYandex kuPhando kunye nezinye. iinkonzo.

Gqibela kwabo banomdla wokwazi okungakumbi ngayoNceda uqaphele ukuba uMsebenzisi okwangoku uxhaswa Ubuntu, Debian, Fedora, Arch, Gentoo, iinkqubo ze-macOS, x86, x86_64, AArch64, Arm architectures, GCC 8+ kunye neClang 9+ compilers, C++17 standards, C+ +20, C ++23.

Ikhowudi yomsebenzisi ibhalwe kwi-C ++ kunye Ivuliwe phantsi kwelayisenisi ye-Apache 2.0 kwaye kunokuboniswana nayo kwi ukulandela ikhonkco.


Umxholo wenqaku uyabambelela kwimigaqo yethu imigaqo yokuziphatha yokuhlela. Ukuxela impazamo cofa apha.

Yiba ngowokuqala ukuphawula

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa.

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.