Yandex je otvorio kod za okvir korisničkog poslužitelja za stvaranje visokoopterećenih aplikacija

Yandex je objavio izvorni kod okvira Userver, koji vam omogućuje stvaranje visokoopterećenih aplikacija u C++ koje rade u asinkronom načinu. Okvir je testiran pod opterećenjima na razini Yandexa i koristi se u uslugama kao što su Yandex Go, Lavka, Delivery, Market i fintech projekti. Korisnički kod je napisan u C++ i otvorenog koda pod licencom Apache 2.0.

Userver je najprikladniji za razvoj aplikacija s mikroservisnom arhitekturom. U početku je okvir razvijen za Yandex Taxi, uz njegovu pomoć tim se prebacio s monolitne aplikacije na arhitekturu koja vam omogućuje razvoj zasebnih neovisnih komponenti (mikroservisa) i njihovu upotrebu u različitim aplikacijama. Mikroservisi su autonomni, pa je aplikaciju temeljenu na sličnoj arhitekturi lako ažurirati i dodati joj nove značajke. Stoga se mikroservis za pronalaženje vozača za narudžbe taksija može koristiti za sličan zadatak - na primjer, pronalaženje kurira za ispunjavanje narudžbi Yandex Delivery. Isto se može učiniti s izračunavanjem vremena dolaska vozača ili kurira i mnogim drugim zadacima.

Framework je inicijalno kreiran s naglaskom na pouzdanost i praktičnost, a unutar njega se nalazi sve što je potrebno za razvoj, dijagnostiku, nadzor, otklanjanje pogrešaka i eksperimente. Na primjer, userver predlaže kako ispraviti pogreške u fazi kompilacije, može raditi s različitim bazama podataka, mijenjati parametre u hodu i tako dalje. Deklarirana podrška za Ubuntu, Debian, Fedora, Arch, Gentoo, macOS sustave, x86, x86_64, AArch64, Arm arhitekture, GCC 8+ i Clang 9+ kompajlere, C++17, C++20, C++23 standarde.

Sastav uključuje upravljačke programe za asinkroni rad s DBMS-om (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asinkrone radne klijente i poslužitelje za različite protokole (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitive niske razine za upravljanje sinkronizacijom i pristup mogućnostima operativnog sustava, kao i komponentama visoke razine za rad s predmemorijom, zadacima, distribuiranim zaključavanjima, praćenjem, metrikom, statistikom i podacima u JSON/YAML/BSON formatima. Podržava promjenu konfiguracije usluge u hodu, bez zaustavljanja.

Prethodno je Yandex prenio svoje druge ključne tehnologije u oblik otvorenih projekata - na primjer, distribuirani sustav upravljanja bazom podataka YDB, sposoban obraditi milijune zahtjeva u sekundi, kao i knjižnicu strojnog učenja CatBoost, koju Yandex koristi u Pretraživanju i drugim usluge.

Izvor: opennet.ru

Dodajte komentar