Yandex abriu o código para o marco de usuario para crear aplicacións de alta carga

Yandex publicou o código fonte do marco Userver, que permite crear aplicacións de alta carga en C++ que funcionan en modo asíncrono. O cadro probouse baixo cargas de nivel Yandex e utilízase en servizos como Yandex Go, Lavka, Delivery, Market e proxectos fintech. O código do usuario está escrito en C++ e é de código aberto baixo a licenza Apache 2.0.

Userver é o máis axeitado para desenvolver aplicacións con arquitectura de microservizos. Inicialmente, o marco foi desenvolvido para Yandex Taxi, coa súa axuda, o equipo pasou dunha aplicación monolítica a unha arquitectura que permite desenvolver compoñentes independentes (microservizos) e usalos en diferentes aplicacións. Os microservizos son autónomos, polo que unha aplicación baseada nunha arquitectura similar é fácil de actualizar e engadirlle novas funcións. Así, o microservizo para atopar un condutor para pedidos de taxi pódese usar para unha tarefa similar, por exemplo, atopar un correo para cumprir os pedidos de Yandex Delivery. O mesmo pódese facer co cálculo da hora de chegada dun condutor ou dun correo e moitas outras tarefas.

O framework creouse inicialmente con énfase na fiabilidade e a comodidade, e no seu interior ofrécese todo o necesario para o desenvolvemento, diagnóstico, seguimento, depuración e experimentos. Por exemplo, userver suxire como corrixir erros na fase de compilación, pode traballar con diferentes bases de datos, cambiar parámetros sobre a marcha, etc. Soporte declarado para Ubuntu, Debian, Fedora, Arch, Gentoo, sistemas macOS, x86, x86_64, AArch64, arquitecturas Arm, compiladores GCC 8+ e Clang 9+, estándares C++17, C++20, C++23.

A composición inclúe controladores para o traballo asíncrono con DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), clientes e servidores que funcionan de forma asíncrona para varios protocolos (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitivos de baixo nivel para a xestión da sincronización. e acceso ás capacidades do sistema operativo, así como a compoñentes de alto nivel para traballar con caché, tarefas, bloqueos distribuídos, rastrexo, métricas, estatísticas e datos en formatos JSON/YAML/BSON. Admite cambiar a configuración do servizo sobre a marcha, sen detelo.

Anteriormente, Yandex transferiu as súas outras tecnoloxías clave á forma de proxectos abertos, por exemplo, o sistema de xestión de bases de datos distribuídas YDB, capaz de procesar millóns de solicitudes por segundo, así como a biblioteca de aprendizaxe automática CatBoost, que Yandex usa na busca e outros. Servizos.

Fonte: opennet.ru

Engadir un comentario