Yandex abriu o código da estrutura do usuário para a criação de aplicativos de alta carga

Yandex publicou o código-fonte da estrutura Userver, que permite criar aplicativos de alta carga em C++ que funcionam em modo assíncrono. A estrutura foi testada sob cargas de nível Yandex e é usada em serviços como Yandex Go, Lavka, Delivery, Market e projetos fintech. O código do Userver é escrito em C++ e é de código aberto sob a licença Apache 2.0.

Userver é mais adequado para desenvolver aplicativos com arquitetura de microsserviços. Inicialmente, o framework foi desenvolvido para Yandex Taxi, com sua ajuda a equipe passou de uma aplicação monolítica para uma arquitetura que permite desenvolver componentes independentes separados (microsserviços) e utilizá-los em diferentes aplicações. Os microsserviços são autônomos, portanto, um aplicativo baseado em uma arquitetura semelhante é fácil de atualizar e adicionar novos recursos. Assim, o microsserviço para encontrar um motorista para pedidos de táxi pode ser usado para uma tarefa semelhante - por exemplo, encontrar um mensageiro para atender pedidos do Yandex Delivery. O mesmo pode ser feito calculando a hora de chegada de um motorista ou mensageiro e muitas outras tarefas.

A estrutura foi criada do zero com ênfase em confiabilidade e usabilidade, e inclui tudo o que é necessário para desenvolvimento, diagnóstico, monitoramento, depuração e experimentação. Por exemplo, o userver sugere como corrigir erros durante a compilação, pode trabalhar com vários bancos de dados, alterar parâmetros dinamicamente e muito mais. O suporte para diversos sistemas também foi anunciado. Ubuntu, DebianFedora, Arch, Gentoo, macOSArquiteturas x86, x86_64, AArch64 e Arm, compiladores GCC 8+ e Clang 9+, padrões C++17, C++20 e C++23.

O pacote inclui drivers para trabalho assíncrono com SGBDs (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), clientes que funcionam de forma assíncrona e servidores Para diversos protocolos (HTTP, HTTPS, gRPC, TCP, UDP, TLS), primitivas de baixo nível para gerenciar a sincronização e acessar recursos do sistema operacional, bem como componentes de alto nível para trabalhar com cache, tarefas, bloqueios distribuídos, rastreamento, métricas, estatísticas e dados nos formatos JSON/YAML/BSON. A configuração do serviço pode ser alterada dinamicamente, sem interromper o serviço.

A Yandex já havia disponibilizado outras tecnologias importantes em código aberto, como seu sistema distribuído. gerenciamento de banco de dados O YDB, que consegue processar milhões de consultas por segundo, e a biblioteca de aprendizado de máquina CatBoost, que a Yandex usa na Busca e em outros serviços.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster