Yandex telah membuka kode untuk kerangka pengguna untuk membuat aplikasi beban tinggi

Yandex telah menerbitkan kode sumber kerangka Userver, yang memungkinkan Anda membuat aplikasi beban tinggi di C++ yang bekerja dalam mode asinkron. Kerangka kerja ini telah diuji di bawah beban tingkat Yandex dan digunakan dalam layanan seperti proyek Yandex Go, Lavka, Pengiriman, Pasar, dan fintech. Kode Userver ditulis dalam C++ dan bersumber terbuka di bawah lisensi Apache 2.0.

Userver paling cocok untuk mengembangkan aplikasi dengan arsitektur layanan mikro. Awalnya, kerangka kerja ini dikembangkan untuk Taksi Yandex, dengan bantuannya tim beralih dari aplikasi monolitik ke arsitektur yang memungkinkan Anda mengembangkan komponen independen terpisah (layanan mikro) dan menggunakannya dalam aplikasi berbeda. Layanan mikro bersifat otonom, sehingga aplikasi berdasarkan arsitektur serupa mudah diperbarui dan menambahkan fitur baru ke dalamnya. Jadi, layanan mikro untuk menemukan pengemudi pesanan Taksi dapat digunakan untuk tugas serupa - misalnya, menemukan kurir untuk memenuhi pesanan Pengiriman Yandex. Hal yang sama dapat dilakukan dengan menghitung waktu kedatangan pengemudi atau kurir dan banyak tugas lainnya.

Kerangka kerja ini awalnya dibuat dengan penekanan pada keandalan dan kenyamanan, dan di dalamnya, semua yang diperlukan untuk pengembangan, diagnostik, pemantauan, debugging, dan eksperimen disediakan. Misalnya, userver menyarankan cara memperbaiki kesalahan pada tahap kompilasi, dapat bekerja dengan database yang berbeda, mengubah parameter dengan cepat, dan sebagainya. Menyatakan dukungan untuk Ubuntu, Debian, Fedora, Arch, Gentoo, sistem macOS, x86, x86_64, AArch64, arsitektur Arm, kompiler GCC 8+ dan Clang 9+, standar C++17, C++20, C++23.

Komposisinya mencakup driver untuk pekerjaan asinkron dengan DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), klien dan server yang bekerja secara asinkron untuk berbagai protokol (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitif tingkat rendah untuk manajemen sinkronisasi dan akses ke kemampuan sistem operasi, serta komponen tingkat tinggi untuk bekerja dengan cache, tugas, kunci terdistribusi, penelusuran, metrik, statistik, dan data dalam format JSON/YAML/BSON. Ini mendukung perubahan konfigurasi layanan dengan cepat, tanpa menghentikannya.

Sebelumnya, Yandex mentransfer teknologi utama lainnya ke dalam bentuk proyek terbuka - misalnya, sistem manajemen basis data terdistribusi YDB, yang mampu memproses jutaan permintaan per detik, serta perpustakaan pembelajaran mesin CatBoost, yang digunakan Yandex dalam Pencarian dan lainnya jasa.

Sumber: opennet.ru

Tambah komentar