Yandex yatsegula code ya chimango cha ogwiritsa ntchito popanga mapulogalamu olemetsa kwambiri

Yandex yatulutsa code source ya Userver framework, yomwe imakulolani kuti mupange mapulogalamu apamwamba mu C ++ omwe amagwira ntchito mofanana. Ndondomekoyi yayesedwa pansi pa katundu wa Yandex-level ndipo imagwiritsidwa ntchito muzinthu monga Yandex Go, Lavka, Delivery, Market ndi fintech project. Khodi ya seva imalembedwa mu C++ ndipo imatsegulidwa pansi pa chilolezo cha Apache 2.0.

Userver ndioyenera kwambiri kupanga mapulogalamu okhala ndi ma microservice achitecture. Poyambirira, chimangocho chinapangidwira ku Yandex Taxi, ndi thandizo lake gululo linasintha kuchoka ku monolithic kupita ku zomangamanga zomwe zimakupatsani mwayi wopanga zigawo zodziimira payekha (microservices) ndikuzigwiritsa ntchito muzojambula zosiyanasiyana. Ma Microservices ndi odziyimira pawokha, kotero kugwiritsa ntchito kutengera kamangidwe kofananako ndikosavuta kusintha ndikuwonjezera zatsopano. Choncho, microservice yopezera dalaivala wa ma Taxi angagwiritsidwe ntchito pa ntchito yofanana - mwachitsanzo, kupeza mthenga kuti akwaniritse madongosolo a Yandex Delivery. Zomwezo zitha kuchitika powerengera nthawi yofika ya dalaivala kapena wotumiza ndi ntchito zina zambiri.

Chikhazikitsocho poyamba chinapangidwa ndikugogomezera kudalirika ndi zosavuta, ndipo mkati mwake, zonse zofunika pa chitukuko, kufufuza, kuyang'anira, kusokoneza ndi kuyesa zimaperekedwa. Mwachitsanzo, wogwiritsa ntchito akuwonetsa momwe angakonzere zolakwika pakuphatikiza, amatha kugwira ntchito ndi ma database osiyanasiyana, kusintha magawo pa ntchentche, ndi zina zotero. Adalengezedwa kuthandizira Ubuntu, Debian, Fedora, Arch, Gentoo, macOS machitidwe, x86, x86_64, AArch64, Arm architectures, GCC 8+ ndi Clang 9+ compilers, C++17, C++20, C++23 miyezo.

Zolembazo zikuphatikiza madalaivala a ntchito yofananira ndi DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), makasitomala ogwira ntchito mosasunthika ndi ma seva a ma protocol osiyanasiyana (HTTP, HTTPS, GRPC, TCP, UDP, TLS), zoyambira zazing'ono zowongolera kalozera. ndi mwayi wopeza mphamvu zamakina ogwiritsira ntchito, komanso zigawo zapamwamba zogwirira ntchito ndi cache, ntchito, maloko ogawidwa, kufufuza, ma metrics, ziwerengero ndi deta mu mawonekedwe a JSON/YAML/BSON. Imathandizira kusintha kasinthidwe kwautumiki pa ntchentche, popanda kuimitsa.

Poyamba, Yandex inasamutsa matekinoloje ake ena ofunikira ku mawonekedwe a mapulojekiti otseguka - mwachitsanzo, dongosolo logawidwa la database la YDB, lomwe lingathe kukonza zopempha mamiliyoni pa sekondi imodzi, komanso laibulale yophunzirira makina a CatBoost, yomwe Yandex amagwiritsa ntchito mu Search ndi zina. ntchito.

Source: opennet.ru

Kuwonjezera ndemanga