Yandex ha obert el codi per al marc d'usuari per crear aplicacions d'alta càrrega

Yandex ha publicat el codi font del marc Userver, que us permet crear aplicacions d'alta càrrega en C++ que funcionen en mode asíncron. El marc s'ha provat amb càrregues a nivell de Yandex i s'utilitza en serveis com Yandex Go, Lavka, Delivery, Market i projectes fintech. El codi de l'usuari està escrit en C++ i és de codi obert sota la llicència Apache 2.0.

Userver és el més adequat per desenvolupar aplicacions amb arquitectura de microservei. Inicialment, el marc es va desenvolupar per a Yandex Taxi, amb la seva ajuda, l'equip va passar d'una aplicació monolítica a una arquitectura que permet desenvolupar components independents separats (microserveis) i utilitzar-los en diferents aplicacions. Els microserveis són autònoms, de manera que una aplicació basada en una arquitectura similar és fàcil d'actualitzar i afegir-hi noves funcions. Per tant, el microservei per trobar un conductor per a comandes de taxi es pot utilitzar per a una tasca similar, per exemple, trobar un missatger per complir les comandes de Yandex Delivery. El mateix es pot fer amb el càlcul de l'hora d'arribada d'un conductor o missatger i moltes altres tasques.

El marc es va crear inicialment amb èmfasi en la fiabilitat i la comoditat, i al seu interior s'ofereix tot el necessari per al desenvolupament, el diagnòstic, el seguiment, la depuració i els experiments. Per exemple, userver suggereix com corregir errors en l'etapa de compilació, pot treballar amb diferents bases de dades, canviar paràmetres sobre la marxa, etc. Suport declarat per a Ubuntu, Debian, Fedora, Arch, Gentoo, sistemes macOS, x86, x86_64, AArch64, arquitectures Arm, compiladors GCC 8+ i Clang 9+, estàndards C++17, C++20, C++23.

La composició inclou controladors per al treball asíncron amb DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), clients i servidors que treballen de manera asíncrona per a diversos protocols (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitives de baix nivell per a la gestió de la sincronització. i accés a les capacitats del sistema operatiu, així com a components d'alt nivell per treballar amb memòria cau, tasques, bloquejos distribuïts, traça, mètriques, estadístiques i dades en formats JSON/YAML/BSON. Admet canviar la configuració del servei sobre la marxa, sense aturar-lo.

Anteriorment, Yandex va transferir les seves altres tecnologies clau a la forma de projectes oberts, per exemple, el sistema de gestió de bases de dades distribuïdes YDB, capaç de processar milions de sol·licituds per segon, així com la biblioteca d'aprenentatge automàtic CatBoost, que Yandex utilitza a la cerca i altres serveis.

Font: opennet.ru

Afegeix comentari