Yandex heeft de code geopend voor het gebruikersframework voor het maken van toepassingen met hoge belasting

Yandex heeft de broncode van het Userer-framework gepubliceerd, waarmee u toepassingen met hoge belasting in C++ kunt maken die in asynchrone modus werken. Het raamwerk is getest onder belastingen op Yandex-niveau en wordt gebruikt in diensten zoals Yandex Go, Lavka, Delivery, Market en fintech-projecten. De gebruikerscode is geschreven in C++ en is open source onder de Apache 2.0-licentie.

Userer is het meest geschikt voor het ontwikkelen van applicaties met microservice-architectuur. Aanvankelijk werd het raamwerk ontwikkeld voor Yandex Taxi, met zijn hulp schakelde het team over van een monolithische applicatie naar een architectuur waarmee je afzonderlijke onafhankelijke componenten (microservices) kunt ontwikkelen en deze in verschillende applicaties kunt gebruiken. Microservices zijn autonoom, dus een applicatie die op een vergelijkbare architectuur is gebaseerd, is eenvoudig te updaten en er nieuwe functies aan toe te voegen. De microservice voor het vinden van een chauffeur voor taxibestellingen kan dus voor een soortgelijke taak worden gebruikt, bijvoorbeeld het vinden van een koerier om Yandex Delivery-bestellingen uit te voeren. Hetzelfde kan worden gedaan met het berekenen van de aankomsttijd van een chauffeur of koerier en vele andere taken.

Het raamwerk werd aanvankelijk gecreëerd met de nadruk op betrouwbaarheid en gemak, en daarin wordt alles geboden wat nodig is voor ontwikkeling, diagnostiek, monitoring, debuggen en experimenten. Userer suggereert bijvoorbeeld hoe fouten in de compilatiefase kunnen worden opgelost, kan met verschillende databases werken, parameters direct wijzigen, enzovoort. Aangegeven ondersteuning voor Ubuntu, Debian, Fedora, Arch, Gentoo, macOS-systemen, x86, x86_64, AArch64, Arm-architecturen, GCC 8+ en Clang 9+ compilers, C++17, C++20, C++23 standaarden.

De samenstelling omvat stuurprogramma's voor asynchroon werken met DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchroon werkende clients en servers voor verschillende protocollen (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitieven op laag niveau voor synchronisatiebeheer en toegang tot de mogelijkheden van het besturingssysteem, evenals componenten op hoog niveau voor het werken met cache, taken, gedistribueerde vergrendelingen, tracering, statistieken, statistieken en gegevens in JSON/YAML/BSON-formaten. Het ondersteunt het direct wijzigen van de serviceconfiguratie, zonder deze te stoppen.

Eerder bracht Yandex zijn andere sleuteltechnologieën over naar de vorm van open projecten - bijvoorbeeld het gedistribueerde databasebeheersysteem YDB, dat miljoenen verzoeken per seconde kan verwerken, evenals de CatBoost machine learning-bibliotheek, die Yandex gebruikt in Search en andere Diensten.

Bron: opennet.ru

Voeg een reactie