Yandex otevřel kód uživatelského rámce pro vytváření aplikací s vysokým zatížením

Yandex zveřejnil zdrojový kód frameworku Userver, který umožňuje vytvářet aplikace s vysokým zatížením v C++, které pracují v asynchronním režimu. Rámec byl testován při zatížení na úrovni Yandex a používá se ve službách, jako jsou Yandex Go, Lavka, Delivery, Market a fintech projekty. Uživatelský kód je napsán v C++ a je open source pod licencí Apache 2.0.

Userver je nejvhodnější pro vývoj aplikací s architekturou mikroslužeb. Zpočátku byl rámec vyvinut pro Yandex Taxi, s jeho pomocí tým přešel z monolitické aplikace na architekturu, která umožňuje vyvíjet samostatné nezávislé komponenty (mikroslužby) a používat je v různých aplikacích. Mikroslužby jsou autonomní, takže aplikaci založenou na podobné architektuře lze snadno aktualizovat a přidat do ní nové funkce. Mikroslužbu pro vyhledání řidiče pro objednávky Taxi lze tedy využít k podobnému úkolu – například vyhledání kurýra pro plnění objednávek Yandex Delivery. Totéž lze provést s výpočtem času příjezdu řidiče nebo kurýra a mnoha dalšími úkoly.

Framework byl původně vytvořen s důrazem na spolehlivost a pohodlí a uvnitř je zajištěno vše potřebné pro vývoj, diagnostiku, sledování, ladění a experimenty. Uživatel například navrhuje, jak opravit chyby ve fázi kompilace, může pracovat s různými databázemi, měnit parametry za běhu a tak dále. Deklarovaná podpora pro Ubuntu, Debian, Fedora, Arch, Gentoo, systémy macOS, x86, x86_64, AArch64, architektury Arm, kompilátory GCC 8+ a Clang 9+, standardy C++17, C++20, C++23.

Složení obsahuje ovladače pro asynchronní práci s DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchronně pracující klienty a servery pro různé protokoly (HTTP, HTTPS, GRPC, TCP, UDP, TLS), nízkoúrovňová primitiva pro správu synchronizace a přístup k možnostem operačního systému, stejně jako ke komponentám na vysoké úrovni pro práci s mezipamětí, úkoly, distribuovanými zámky, trasováním, metrikami, statistikami a daty ve formátech JSON/YAML/BSON. Podporuje změnu konfigurace služby za běhu, bez jejího zastavení.

Dříve Yandex převedl své další klíčové technologie do podoby otevřených projektů – například distribuovaný systém správy databází YDB, schopný zpracovat miliony požadavků za sekundu, a také knihovnu strojového učení CatBoost, kterou Yandex používá ve Vyhledávání a další služby.

Zdroj: opennet.ru

Přidat komentář