Yandex telah membuka kod untuk rangka kerja pengguna untuk mencipta aplikasi beban tinggi

Yandex telah menerbitkan kod sumber rangka kerja Userver, yang membolehkan anda membuat aplikasi beban tinggi dalam C++ yang berfungsi dalam mod tak segerak. Rangka kerja ini telah diuji di bawah beban peringkat Yandex dan digunakan dalam perkhidmatan seperti Yandex Go, Lavka, Delivery, Market dan projek fintech. Kod pengguna ditulis dalam C++ dan sumber terbuka di bawah lesen Apache 2.0.

Pengguna paling sesuai untuk membangunkan aplikasi dengan seni bina perkhidmatan mikro. Pada mulanya, rangka kerja itu dibangunkan untuk Teksi Yandex, dengan bantuannya, pasukan bertukar daripada aplikasi monolitik kepada seni bina yang membolehkan anda membangunkan komponen bebas berasingan (perkhidmatan mikro) dan menggunakannya dalam aplikasi yang berbeza. Perkhidmatan mikro adalah autonomi, jadi aplikasi berdasarkan seni bina yang serupa mudah dikemas kini dan menambah ciri baharu padanya. Oleh itu, perkhidmatan mikro untuk mencari pemandu untuk pesanan Teksi boleh digunakan untuk tugas yang serupa - contohnya, mencari kurier untuk memenuhi pesanan Penghantaran Yandex. Perkara yang sama boleh dilakukan dengan mengira masa ketibaan pemandu atau kurier dan banyak tugas lain.

Rangka kerja ini pada mulanya dicipta dengan penekanan pada kebolehpercayaan dan kemudahan, dan di dalamnya, semua yang diperlukan untuk pembangunan, diagnostik, pemantauan, penyahpepijatan dan eksperimen disediakan. Sebagai contoh, pengguna mencadangkan cara untuk membetulkan ralat pada peringkat penyusunan, boleh bekerja dengan pangkalan data yang berbeza, menukar parameter dengan cepat dan sebagainya. Mengisytiharkan sokongan untuk Ubuntu, Debian, Fedora, Arch, Gentoo, sistem macOS, x86, x86_64, AArch64, Seni bina lengan, pengkompil GCC 8+ dan Clang 9+, piawaian C++17, C++20, C++23.

Komposisi ini termasuk pemacu untuk kerja tak segerak dengan DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), pelanggan dan pelayan yang berfungsi secara tak segerak untuk pelbagai protokol (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitif peringkat rendah untuk pengurusan penyegerakan dan akses kepada keupayaan sistem pengendalian, serta komponen peringkat tinggi untuk bekerja dengan cache, tugasan, kunci teragih, pengesanan, metrik, statistik dan data dalam format JSON/YAML/BSON. Ia menyokong menukar konfigurasi perkhidmatan dengan cepat, tanpa menghentikannya.

Sebelum ini, Yandex memindahkan teknologi utamanya yang lain ke dalam bentuk projek terbuka - contohnya, sistem pengurusan pangkalan data teragih YDB, yang mampu memproses berjuta-juta permintaan sesaat, serta perpustakaan pembelajaran mesin CatBoost, yang digunakan Yandex dalam Carian dan lain-lain. perkhidmatan.

Sumber: opennet.ru

Tambah komen