تدفق WebRTC المستند إلى مجموعة النظراء على DigitalOcean


أطلقت خدمة الاستضافة السحابية الشعبية DigitalOcean مؤخرًا سوقها الجديد الذي يبيع الصور التي تم تكوينها مسبقًا والتي يمكن أن تساعد في نشر خادم تطبيقات بسرعة. يشبه إلى حد كبير AWS ، ولكن DO لهؤلاء الذين يستخدمون بالفعل خدمات هذا المزود. دعونا نرى كيف ننشر خادمًا بسيطًا لتدفق WebRTC باستخدام حساب DO مقابل رسم قدره 10 دولارات شهريًا استنادًا إلى Flashphoner WebCallServer وكيف يمكن استخدام هذا الخادم.


نشر


أدخل حساب DO ، واختر صورة Flashphoner WebCallServer في Marketplace واضغط على "إنشاء خادم اتصال Flashphoner Web Call Droplet".



اختر أداء الخادم وخطة التسعير. ستقوم DO تلقائيًا بتقديم منتج متوسط ​​الحجم ، لكننا مهتمون بالحد الأدنى للسعر.



اختر منطقة موقع مركز البيانات ، على سبيل المثال ، فرانكفورت.



اختر نوع المصادقة ، على سبيل المثال ، كلمة المرور لمرة واحدة.



حدد عدد الخوادم (نحن مهتمون بخادم واحد الآن) وقم بتسمية الخادم. سيتم تسجيل هذا الاسم بين المواقع الأخرى في / etc / hostname.



اضغط على "إنشاء قطرة"



بمجرد إنشاء الخادم ، سيبدأ تلقائيًا. الآن يمكننا الاتصال به من خلال SSH ، وتعديل كلمة المرور إذا تم اختيار كلمة المرور لمرة واحدة كطريقة للمصادقة. سيتم عرض وصف قصير لبرنامج Flashphoner WebCallServer مع روابط للوثائق في وحدة التحكم.



"هذا اختبار. هل تستطيع رؤيتي؟"


عند بدء تشغيل Flashphoner WebCallServer ، يكون في وضع الاستعداد الكامل للعمل ، ويتم تنشيط ترخيص تجريبي لمدة 30 يومًا تلقائيًا. تستخدم واجهة الويب لاختبار الوظائف الرئيسية. سنقوم فقط بفحص المنشور وتشغيل دفق WebRTC.


افتح في صفحة https: // droplet_ip: 8444 / admin / . يتم شحن الخادم مع شهادة موقعة ذاتيا بشكل افتراضي ؛ لذلك سنحتاج إلى تأكيد استثناء الأمان. يمكن استبدال الشهادات فيما بعد بشهاداتك الخاصة. أدخل اسم المستخدم وكلمة المرور ( تجريبي بشكل افتراضي).



اختر مثال الجري ثنائي الاتجاه في الشريط الجانبي ، ثم اضغط على "اتصال" ، ثم "نشر". لتشغيل الدفق اضغط على "تشغيل".



لحفنة من الدولارات


ما الذي يمكن أن يفعله خادم بقيمة 10 دولارات / شهر كأنظمة أساسية لتدفق WebRTC؟ دعونا نرى ما يقدمه المحيط الرقمي من حيث المعالج


lscpu 


والذاكرة


 free -h 


من خلال إجراء اختبارات الحمل على الخادم ، يمكننا أن نرى أن قدرات أداء الخادم ليست صغيرة جدًا.


على سبيل المثال ، سنقوم بنشر نموذج دفق واحد ونرى عدد المستخدمين الذين سيتمكنون من نشر هذا الدفق في وقت واحد لا يتجاوز 90٪ من موارد المعالج:


قرارمعدل البت كيلو بايت في الثانيةعدد المنشوراتعدد المشاهدين
360p1300170
480P1800170
720P3000150

مع العديد من المنشورات المتزامنة يبقى الحد الأقصى لعدد التدفقات المعالجة كما هو ؛ عند نشر 7 تدفقات ، يمكن لما يصل إلى 10 مشاهدين الاشتراك في كل منها.


لنفترض أننا بحاجة إلى تحويل الرمز على الدفق على الخادم لتقليل الدقة أو محاذاة FPS. للقيام بذلك ، سنقوم بالتحقق من الحد الأقصى لعدد المنشورات:


قرارمعدل البت كيلو بايت في الثانيةعدد الجداول
360p13005
480P18003
720P30002

وبهذه الطريقة ، يكون الخادم الذي يحتوي على أدنى سعر في وحدة المعالجة المركزية مع المعلمات 1 وحدة المعالجة المركزية الأساسية ، وذاكرة الوصول العشوائي 2 غيغابايت ، وحركة المرور 2 تيرابايت مناسبة ليس فقط لاختبار تدفق WebRTC ولكن أيضًا للمشاريع الصغيرة. على سبيل المثال ، من الممكن أن


  • تسليم دفق عبر WebRTC من كاميرا IP لضمان مراقبة الفيديو الأساسية في المنزل ؛
  • تنظيم ندوة عبر الإنترنت لموظفي الشركة الصغيرة ؛
  • نشر راديو الإنترنت الخاص بك (تتطلب تدفقات الصوت موارد أقل للمعالج).

الى جانب ذلك ، يمكن رؤية هذا الخادم كمنصة مرجعية لتقدير القياس. هذا هو ما سنتعامل معه بشكل أكبر.


"أنا أستحق أكثر!"


بالنسبة للجزء الأكبر ، القواعد بسيطة للغاية: لا يوجد شيء مثل الكثير من النوى وكذلك الكثير من الذاكرة. اعتمادًا على العدد المقصود من المستخدمين ، ستكون توصيات التكوين الخاصة بما يلي:


عدد المستخدمينvCPUsذاكرة الوصول العشوائي ، غيغابايتالمرور ، السلاستخدام القضية
ما يصل الى 200485نظام المراقبة بالفيديو
حتى 5008166ندوات عبر الإنترنت
حتى 100016649دردشة الفيديو
حتى 2000209610تدفق الفيديو عالية الدقة

إذا تم التخطيط لمزيد من الزيادة في عدد المستخدمين ، فسوف نحتاج إلى نشر خادم CDN الذي يعرض 1 حافة لكل 2000 مستخدم. لنفترض أننا بحاجة إلى تقديم فيديو عالي الدقة ، فالعدد المقصود للمشاهدين هو 10000. في هذه الحالة ، ستكون هناك حاجة إلى خادمين أصليين للنشر و 5 خوادم إيدج للعرض.



مثال الإعداد:


  • الأصل 1

 cdn_enabled=true cdn_ip=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin 

  • الأصل 2

 cdn_enabled=true cdn_ip=origin2.flashponer.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin 

  • Edge 1 - Edge 5 (هنا نغير فقط عنوان الخادم في المعلمة cdn_ip )

 cdn_enabled=true cdn_ip=edge1.flashphoner.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge 

يمكن أن يكون CDN مفيدًا أيضًا إذا تم توزيع المستخدمين جغرافيًا. على سبيل المثال ، تتمركز الجماهير المستهدفة في أوروبا وأمريكا.



مثال الإعداد:


  • أصل الاتحاد الأوروبي

 cdn_enabled=true cdn_ip=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=EU 

  • أصل الولايات المتحدة

 cdn_enabled=true cdn_ip=origin_us.flashponer.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=US 

  • الحافة 1 الاتحاد الأوروبي

 cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU 

  • حافة 1 الولايات المتحدة

 cdn_enabled=true cdn_ip=edge1_us.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=US 

كلما زاد عدد المشاهدين ، زادت تنوع أجهزة التشغيل وقنوات هذه الأجهزة. لتوفير جودة بث جيدة للأجهزة المختلفة ، من المرجح أن تكون هناك حاجة إلى تحويل رمز الفيديو ، والذي يمكن فرضه على خوادم Transcoder الخاصة.



مثال الإعداد:


  • الأصل

 cdn_enabled=true cdn_ip=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=default 

  • Transcoder الاتحاد الأوروبي

 cdn_enabled=true cdn_ip=transcoder_eu.flashponer.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=transcoder cdn_groups=EU 

  • الحافة 1 الاتحاد الأوروبي

 cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU 

كما وجدنا أثناء الاختبار ، فإن عدد نوى المعالج ضروري لأغراض تحويل الشفرة. يعتبر التكوين الأنسب في خط التكوين المحسّن لوحدة المعالجة المركزية هو الأكثر تكلفة - 32 vCPU و 64 جيجابايت من ذاكرة الوصول العشوائي. في الوقت نفسه ، قد تكون أسعار تكوينات وحدة المعالجة المركزية المتشابهة في الكمية وبذاكرة أكبر في الأسطر الأخرى أعلى بكثير. لسوء الحظ ، لا يمكن للمرء توفير المال على محولات الشفرة: نظرًا لأن الفيديو يتم ترميزه إطارًا تلو الآخر ، يجب أن يكون هناك مساحة ذاكرة كافية لجميع الصور ومعالجات كافية لمعالجة جميع التدفقات.


أثناء نشر CDN ، سيكون الإنشاء المتزامن لعدة خوادم بنفس التكوين مفيدًا. ومع ذلك ، في حالة وجود خوادم Edge و Transcoder من النوع CDN المتناثرة جغرافياً ، يجب استضافتها في مراكز بيانات مختلفة.


استنتاج


في الختام ، قمنا بنشر واختبار خادم صغير لتدفق الفيديو WebRTC ذو زمن الاستجابة المنخفض على المحيط الرقمي ، ووجدنا أن الخادم ذو التكوين الأدنى يعد مناسبًا ليس فقط للاختبار ولكن أيضًا للمشاريع الصغيرة. لقد حصلنا على بيانات القياس بناءً على العدد المقصود للمشاهدين وتطرقنا إلى موضوع نشر شبكة CDN ، الذي يستحق المناقشة في مقالة منفصلة. أن تستمر ، يرجى البقاء معنا.



Flashphoner WebCallServer image في DigitalOcean Marketplace - صورة Web Call Server في DigitalOcean.


CDN لتدفق WebRTC كامن منخفض - شبكة توصيل المحتوى المستندة إلى Web Call Server.

Source: https://habr.com/ru/post/ar476554/


All Articles