ยานเดกซ์ได้เปิดโค้ดสำหรับเฟรมเวิร์กผู้ใช้เพื่อสร้างแอปพลิเคชันที่มีภาระงานสูง

Yandex ได้เผยแพร่ซอร์สโค้ดของเฟรมเวิร์ก Userver ซึ่งช่วยให้คุณสามารถสร้างแอปพลิเคชันที่มีการโหลดสูงใน C ++ ที่ทำงานในโหมดอะซิงโครนัส เฟรมเวิร์กนี้ได้รับการทดสอบภายใต้โหลดระดับ Yandex และใช้ในบริการต่างๆ เช่น Yandex Go, Lavka, Delivery, Market และ fintech รหัสของผู้ใช้เขียนด้วยภาษา C++ และเป็นโอเพ่นซอร์สภายใต้ลิขสิทธิ์ Apache 2.0

Userver เหมาะที่สุดสำหรับการพัฒนาแอปพลิเคชันด้วยสถาปัตยกรรมไมโครเซอร์วิส ในขั้นต้น เฟรมเวิร์กได้รับการพัฒนาสำหรับ Yandex Taxi ด้วยความช่วยเหลือทีมงานเปลี่ยนจากแอปพลิเคชันเสาหินไปเป็นสถาปัตยกรรมที่ช่วยให้คุณพัฒนาส่วนประกอบอิสระแยกกัน (ไมโครเซอร์วิส) และใช้ในแอปพลิเคชันต่างๆ ไมโครเซอร์วิสเป็นแบบอัตโนมัติ ดังนั้นแอปพลิเคชันที่ใช้สถาปัตยกรรมที่คล้ายกันจึงง่ายต่อการอัปเดตและเพิ่มคุณสมบัติใหม่ลงไป ดังนั้นไมโครเซอร์วิสสำหรับการค้นหาคนขับสำหรับคำสั่งซื้อแท็กซี่จึงสามารถนำไปใช้งานที่คล้ายกันได้ - ตัวอย่างเช่นการค้นหาผู้จัดส่งเพื่อตอบสนองคำสั่งซื้อของ Yandex Delivery สามารถทำได้เช่นเดียวกันโดยการคำนวณเวลาที่มาถึงของคนขับหรือผู้จัดส่งและงานอื่นๆ อีกมากมาย

เฟรมเวิร์กนี้ถูกสร้างขึ้นในขั้นต้นโดยเน้นที่ความน่าเชื่อถือและความสะดวกสบาย และภายในเฟรมเวิร์กนั้นมีทุกสิ่งที่จำเป็นสำหรับการพัฒนา การวินิจฉัย การตรวจสอบ การดีบัก และการทดลอง ตัวอย่างเช่น ผู้ใช้แนะนำวิธีแก้ไขข้อผิดพลาดในขั้นตอนการคอมไพล์ สามารถทำงานกับฐานข้อมูลที่แตกต่างกัน เปลี่ยนพารามิเตอร์ได้ทันที และอื่นๆ ประกาศรองรับ Ubuntu, Debian, Fedora, Arch, Gentoo, ระบบ macOS, x86, x86_64, AArch64, สถาปัตยกรรม Arm, คอมไพเลอร์ GCC 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

เพิ่มความคิดเห็น