I-Yandex ivule ikhodi yohlaka lomsebenzisi lokudala izinhlelo zokusebenza ezinomthwalo ophezulu

I-Yandex ishicilele ikhodi yomthombo yohlaka lwe-Userver, olukuvumela ukuthi udale izinhlelo zokusebenza ezilayisha kakhulu ku-C ++ ezisebenza ngemodi engavumelanisi. Uhlaka luhlolwe ngaphansi kwemithwalo yezinga le-Yandex futhi lusetshenziswa kumasevisi afana ne-Yandex Go, i-Lavka, i-Delivery, i-Market kanye namaphrojekthi we-fintech. Ikhodi yomsebenzisi ibhalwe ngo-C++ futhi ivuliwe itholakala ngaphansi kwelayisensi ye-Apache 2.0.

Iseva ifaneleka kakhulu ekuthuthukiseni izinhlelo zokusebenza nge-microservice architecture. Ekuqaleni, uhlaka lwenzelwe i-Yandex Taxi, ngosizo lwalo ithimba lashintsha lisuka kuhlelo lokusebenza lwe-monolithic laya ekwakhiweni kwezakhiwo ezikuvumela ukuthi uthuthukise izingxenye ezizimele ezihlukene (ama-microservices) futhi uwasebenzise ezinhlelweni ezahlukene. Ama-Microservices ayazilawula, ngakho-ke uhlelo lokusebenza olusekelwe ekwakhiweni okufanayo kulula ukuvuselela nokwengeza izici ezintsha kulo. Ngakho-ke, i-microservice yokuthola umshayeli wama-oda amatekisi ingasetshenziselwa umsebenzi ofanayo - isibonelo, ukuthola i-courier ukufeza ama-oda we-Yandex Delivery. Okufanayo kungenziwa ngokubala isikhathi sokufika somshayeli noma i-courier kanye neminye imisebenzi eminingi.

Uhlaka lwaqale lwadalwa ngokugcizelelwa ekuthembekeni nasekusebenziseni kalula, futhi ngaphakathi kwalo, yonke into edingekayo ekuthuthukisweni, ukuxilonga, ukuqapha, ukulungisa amaphutha kanye nokuhlola kunikezwa. Isibonelo, umsebenzisi uphakamisa ukuthi ungawalungisa kanjani amaphutha esigabeni sokuhlanganiswa, angasebenza nezizindalwazi ezihlukene, aguqule amapharamitha empukaneni, njalo njalo. Usekelo olumenyezelwe lwe-Ubuntu, Debian, Fedora, Arch, Gentoo, macOS systems, x86, x86_64, AArch64, Arm architectures, GCC 8+ and Clang 9+ compilers, C++17, C++20, C++23 amazinga.

Ukwakhiwa kuhlanganisa abashayeli bomsebenzi ongavumelanisi ne-DBMS (i-MongoDB, i-PostgreSQL, i-Redis, i-ClickHouse, i-MySQL), amaklayenti asebenza ngokulinganayo namaseva ezivumelwano ezihlukahlukene (i-HTTP, i-HTTPS, i-GRPC, i-TCP, i-UDP, i-TLS), ama-primitives asezingeni eliphansi okulawula ukuvumelanisa. kanye nokufinyelela kumakhono esistimu yokusebenza, kanye nezingxenye ezisezingeni eliphezulu zokusebenza ngenqolobane, imisebenzi, izingidi ezisabalalisiwe, ukulandelela, amamethrikhi, izibalo kanye nedatha kumafomethi we-JSON/YAML/BSON. Isekela ukushintsha ukucushwa kwesevisi kundiza, ngaphandle kokuyimisa.

Ngaphambilini, i-Yandex idlulisele obunye ubuchwepheshe bayo obubalulekile ngendlela yamaphrojekthi avuliwe - isibonelo, uhlelo lokuphathwa kwedatha esakaziwe ye-YDB, ekwazi ukucubungula izigidi zezicelo ngomzuzwana, kanye nomtapo wolwazi wokufunda umshini we-CatBoost, i-Yandex ewusebenzisa ku-Search nakwezinye izindawo. amasevisi.

Source: opennet.ru

Engeza amazwana