فتحت Yandex رمز إطار عمل المستخدم لإنشاء تطبيقات عالية التحميل

نشرت Yandex الكود المصدري لإطار عمل Userver، والذي يسمح لك بإنشاء تطبيقات عالية التحميل في C++ تعمل في الوضع غير المتزامن. تم اختبار إطار العمل تحت أحمال على مستوى Yandex ويستخدم في خدمات مثل Yandex Go وLavka وDilivery وMarket ومشاريع التكنولوجيا المالية. رمز المستخدم مكتوب بلغة C++ وهو مفتوح المصدر بموجب ترخيص Apache 2.0.

يعتبر Userver هو الأنسب لتطوير التطبيقات ذات بنية الخدمات الصغيرة. في البداية، تم تطوير إطار العمل لـ Yandex Taxi، وبمساعدته تحول الفريق من تطبيق متجانس إلى بنية تسمح لك بتطوير مكونات مستقلة منفصلة (خدمات صغيرة) واستخدامها في تطبيقات مختلفة. تعتبر الخدمات الصغيرة مستقلة، لذا من السهل تحديث التطبيق الذي يعتمد على بنية مماثلة وإضافة ميزات جديدة إليه. وبالتالي، يمكن استخدام الخدمة الصغيرة للعثور على سائق لطلبات سيارات الأجرة لمهمة مماثلة - على سبيل المثال، العثور على ساعي لتلبية طلبات Yandex Delivery. ويمكن فعل الشيء نفسه مع حساب وقت وصول السائق أو البريد السريع والعديد من المهام الأخرى.

تم إنشاء الإطار في البداية مع التركيز على الموثوقية والراحة، وداخله يتم توفير كل ما هو ضروري للتطوير والتشخيص والمراقبة وتصحيح الأخطاء والتجارب. على سبيل المثال، يقترح userver كيفية إصلاح الأخطاء في مرحلة التجميع، ويمكنه العمل مع قواعد بيانات مختلفة، وتغيير المعلمات بسرعة، وما إلى ذلك. الدعم المعلن لأنظمة Ubuntu، وDebian، وFedora، وArch، وGentoo، وmacOS، وx86، وx86_64، وAArch64، وArch architectures، ومترجمات GB 8+ وClang 9+، ومعايير C++ 17، وC++ 20، وC++ 23.

يتضمن التكوين برامج تشغيل للعمل غير المتزامن مع DBMS (MongoDB، PostgreSQL، Redis، ClickHouse، MySQL)، عملاء وخوادم تعمل بشكل غير متزامن لبروتوكولات مختلفة (HTTP، HTTPS، GRPC، TCP، UDP، TLS)، عناصر أولية منخفضة المستوى لإدارة المزامنة والوصول إلى إمكانيات نظام التشغيل، بالإضافة إلى المكونات عالية المستوى للعمل مع ذاكرة التخزين المؤقت والمهام والأقفال الموزعة والتتبع والمقاييس والإحصائيات والبيانات بتنسيقات JSON/YAML/BSON. وهو يدعم تغيير تكوين الخدمة بسرعة، دون إيقافه.

في السابق، نقلت Yandex تقنياتها الرئيسية الأخرى إلى شكل مشاريع مفتوحة - على سبيل المثال، نظام إدارة قواعد البيانات الموزعة YDB، القادر على معالجة ملايين الطلبات في الثانية، بالإضافة إلى مكتبة التعلم الآلي CatBoost، التي تستخدمها Yandex في البحث وغيرها خدمات.

المصدر: opennet.ru

إضافة تعليق