Yandex iepene de userver-ramtkoade foar it meitsjen fan applikaasjes mei hege lading

Yandex hat de boarnekoade fan it Userver-ramt publisearre, wêrtroch jo applikaasjes mei hege lading yn C ++ kinne meitsje dy't wurkje yn asynchrone modus. It ramt is hifke ûnder loads op Yandex-nivo en wurdt brûkt yn tsjinsten lykas Yandex Go, Lavka, Delivery, Market en fintech-projekten. De koade fan brûkers is skreaun yn C++ en is iepen boarne ûnder de Apache 2.0-lisinsje.

Userver is it bêste geskikt foar it ûntwikkeljen fan applikaasjes mei microservice-arsjitektuer. Yn it earstoan waard it ramt ûntwikkele foar Yandex Taxi, mei har help skeakele it team fan in monolityske applikaasje nei in arsjitektuer wêrmei jo aparte ûnôfhinklike komponinten (mikrotsjinsten) kinne ûntwikkelje en se brûke yn ferskate applikaasjes. Mikrotsjinsten binne autonoom, dus in applikaasje basearre op in ferlykbere arsjitektuer is maklik te aktualisearjen en nije funksjes ta te foegjen. Sa kin de mikrotsjinst foar it finen fan in sjauffeur foar Taxi-oarders brûkt wurde foar in ferlykbere taak - bygelyks it finen fan in koerier om Yandex Delivery-oarders út te fieren. Itselde kin dien wurde mei it berekkenjen fan de oankomsttiid fan in sjauffeur of koerier en in protte oare taken.

It ramt waard yn earste ynstânsje makke mei de klam op betrouberens en gemak, en binnen it is alles nedich foar ûntwikkeling, diagnoaze, tafersjoch, debuggen en eksperiminten. Bygelyks, userver suggerearret hoe't jo flaters reparearje yn 'e kompilaasjepoadium, kinne wurkje mei ferskate databases, parameters op 'e flecht feroarje, ensfh. Ferklearre stipe foar Ubuntu, Debian, Fedora, Arch, Gentoo, macOS-systemen, x86, x86_64, AArch64, Arm-arsjitektueren, GCC 8+ en Clang 9+-kompilers, C++17, C++20, C++23 noarmen.

De gearstalling omfettet sjauffeurs foar asynchrone wurk mei DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchrone wurkjende kliïnten en servers foar ferskate protokollen (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitiven op leech nivo foar syngronisaasjebehear en tagong ta de mooglikheden fan it bestjoeringssysteem, lykas komponinten op hege nivo foar it wurkjen mei cache, taken, ferspraat slûzen, tracing, metriken, statistiken en gegevens yn JSON / YAML / BSON formaten. It stipet it feroarjen fan de tsjinstkonfiguraasje op 'e flecht, sûnder it te stopjen.

Earder hat Yandex syn oare wichtige technologyen oerbrocht nei de foarm fan iepen projekten - bygelyks it ferspraat databankbehearsysteem YDB, by steat om miljoenen oanfragen per sekonde te ferwurkjen, lykas ek de CatBoost-masine-learbibleteek, dy't Yandex brûkt yn Search en oare tsjinsten.

Boarne: opennet.ru

Add a comment