Yandex otvoril kód používateľského rámca na vytváranie aplikácií s vysokým zaťažením

Yandex zverejnil zdrojový kód frameworku Userver, ktorý vám umožňuje vytvárať aplikácie s vysokým zaťažením v C++, ktoré pracujú v asynchrónnom režime. Rámec bol testovaný pri zaťažení na úrovni Yandex a používa sa v službách, ako sú Yandex Go, Lavka, Delivery, Market a fintech projekty. Používateľský kód je napísaný v C++ a je otvorený pod licenciou Apache 2.0.

Userver je najvhodnejší na vývoj aplikácií s architektúrou mikroslužieb. Spočiatku bol rámec vyvinutý pre Yandex Taxi, s pomocou ktorého tím prešiel z monolitickej aplikácie na architektúru, ktorá vám umožňuje vyvíjať samostatné nezávislé komponenty (mikroslužby) a používať ich v rôznych aplikáciách. Mikroslužby sú autonómne, takže aplikácia založená na podobnej architektúre sa dá ľahko aktualizovať a pridať do nej nové funkcie. Mikroslužba na nájdenie vodiča pre objednávky Taxi sa teda dá použiť na podobnú úlohu - napríklad nájdenie kuriéra na plnenie objednávok Yandex Delivery. To isté možno urobiť s výpočtom času príchodu vodiča alebo kuriéra a mnohými ďalšími úlohami.

Framework bol pôvodne vytvorený s dôrazom na spoľahlivosť a pohodlie a v jeho vnútri je zabezpečené všetko potrebné pre vývoj, diagnostiku, monitorovanie, ladenie a experimenty. Používateľ napríklad navrhuje, ako opraviť chyby vo fáze kompilácie, môže pracovať s rôznymi databázami, meniť parametre za behu atď. Deklarovaná podpora pre Ubuntu, Debian, Fedora, Arch, Gentoo, systémy macOS, x86, x86_64, AArch64, architektúry Arm, kompilátory GCC 8+ a Clang 9+, štandardy C++17, C++20, C++23.

Kompozícia obsahuje ovládače pre asynchrónnu prácu s DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchrónne pracujúcich klientov a serverov pre rôzne protokoly (HTTP, HTTPS, GRPC, TCP, UDP, TLS), nízkoúrovňové primitívy pre správu synchronizácie a prístup k možnostiam operačného systému, ako aj vysokoúrovňovým komponentom pre prácu s vyrovnávacou pamäťou, úlohami, distribuovanými zámkami, sledovaním, metrikami, štatistikami a údajmi vo formátoch JSON/YAML/BSON. Podporuje zmenu konfigurácie služby za chodu bez jej zastavenia.

Predtým Yandex preniesol svoje ďalšie kľúčové technológie do podoby otvorených projektov – napríklad distribuovaný databázový systém YDB, ktorý dokáže spracovať milióny požiadaviek za sekundu, ako aj knižnicu strojového učenia CatBoost, ktorú Yandex používa vo Vyhľadávaní a ďalších. služby.

Zdroj: opennet.ru

Pridať komentár