تحويل سحابي موزع متعدد الخيوط باستخدام hadoop+ffmpeg+nodejs
معظم الأنظمة التي تدعي التحويل السحابي ليست سوى برامج تحويل خادمية قليلة الوظائف السحابية. التحويل السحابي الحقيقي يحتاج نظام ملفات موزعاً وتوسعاً بلا حد وتحويلاً ذكياً متعدد الخيوط وتوزيع مهام ذكي وتعدد خيوط على الجهاز الواحد وعناقيد بلا حد وعناقيد صغيرة ضمن الكبيرة. فقط نظام موزع متعدد الخيوط بمستوى آلاف الخوادم يستحق الاسم.
بعد بحث طويل وجدت حلاً شبه مثالي: بناء العنقود ونظام الملفات الموزع عبر hadoop، واستخدام ffmpeg للعلامات الصورية والنصوص المتحركة والتحويل متعدد الدقة داخل الملفات الموزعة، ثم التحكم وتوزيع المهام بذكاء عبر nodejs، وتخزين البيانات الراجعة عبر mongodb.
توضيح

شرح التقنيات الأساسية
يمكن التحكم بملفات نظام hadoop الموزع بالأوامر كما في الملفات المحلية، فيسهل رفع الملفات إليه أو سحبها منه محلياً.
الخطوة الأولى، الرفع: يرفع الفيديو إلى الخادم المركزي عبر API مبني بـ nodejs. يقسمه المركز إلى أجزاء صغيرة ويرفعها بالأوامر إلى خوادم موزعة مختلفة.
الخطوة الثانية، التحويل: تتلقى العقد الأجزاء الموزعة بذكاء وترسل بياناتها للمركز. يرسل المركز أمر التحويل، وتحول كل عقدة الجزء. إذا كانت ستة خوادم، تحول ستة أجزاء بالتزامن على عقد مختلفة.
الخطوة الثالثة، إرجاع الفيديو: ينتظر المركز انتهاء كل العقد، ويطلب بياناتها محلياً لدمج الفيديو.
الخطوة الرابعة، التخزين السحابي: يُخزن الفيديو المدمج في عدة خوادم كبيرة مع توفير التشغيل.
تقنيات أخرى: تعدد خيوط التحويل على جهاز واحد، مفيد عند قلة العقد وكبر الفيديو. تقسم العقدة الفيديو إلى أجزاء متعددة وتعالجها بخيوط متزامنة لاستغلال CPU بالكامل، ثم تدمجها وترجعها للمركز.
مزايا النظام: توسع موزع إلى آلاف الخوادم، ونظام ملفات يمكن التحكم به فورياً بعمليات بسيطة، وتحكم مركزي بـ nodejs الذي تدعم كفاءته عشرات الملايين من الطلبات المتزامنة وتوزيع المهام بذكاء بواسطة nodejs، ومعاملات ffmpeg المناسبة لإزالة العلامات وإضافتها والنصوص المتحركة حتى على الأجزاء.


