Імплементація та автоматизація розгортання WebRTC застосунків в Cloud Native оточенні

DOI: 10.31673/2412-4338.2021.035462

  • Кузьміч М. Ю. (Kuzmich M. Yu.) Державний університет телекомунікацій, м. Київ
  • Гордієнко Т. Б. (Gordiyenko T. B.) Державний університет телекомунікацій, м. Київ

Анотація

Карантинні обмеження та сучасні тенденції розвитку ІТ-інфраструктур призвели до значного інтересу до технологій передачі потокових даних. Застосування та розвиток систем на основі протоколу WebRTC для аудіо- та відео конференцій на сьогодні є актуальним і затребуваним. Протокол технології Web комунікації в реальному часі (Web real-time communications, WebRTC) дозволяє веб-браузерам взаємодіяти через прикладні програмні інтерфейси (Application Programming Interface, API), що в основному використовуються для аудіо- та відеоконференцій. Шлюз вибіркового направлення (SFU) та шлюз багатоточкового контролю (MCU) є технологіями, які доповнюють WebRTC. SFU та MCU сервери використовуються для покращення роботи при впливі неоднорідностей оточення, таких як збільшення кількості користувачів, специфічне мережеве обладнання. Тому, через специфіку їх роботи розгортання в Cloud Native оточенні є нетривіальною задачею.
В статті представлено аналіз імплементації та автоматизації розгортання WebRTC SFU шлюзу у Сloud Native оточенні і його доцільність використання. Зроблено акцент на пошуку оптимального способу розгортання. Наведено приклад декларативного опису розгортання SFU шлюзу Jitsi у вигляді коду, що може бути перевикористаний для наступних експериментів. Автоматизація розгортання SFU серверів дозволяє покращити кількісну та якісну складові експериментів, зменшивши час, затрачений на його підготовку, та мінімізацію помилок людського фактору. Запропонований і описаний метод має великий потенціал для подальшого розвитку. Авторами також запропоновані зміни в HELM пакеті через cайт Github стосовно покращення роботи із залежностями, які були прийняті та імплементовані.

Ключові слова: WebRTC, Cloud Native, автоматизація, Cluster and Cloud computing, Kubernetes, SFU, Open source, Helm, контейнеризація, мікросервіси.

Список використаної літератури
1. Heater B. Twitter says staff can continue working from home permanently – TechCrunch. TechCrunch. URL: https://techcrunch.com/2020/05/12/twitter-says-staff-can-continue-working-from-home-permanently/.
2. Pasha M., Shahzad F., Ahmad A. “Analysis of challenges faced by WebRTC videoconferencing and a remedial architecture”. International Journal of Computer Science and Information Security. 2016, Vol. 14, No. 10, P. 698-705.
3. Mário Antunes, Catarina Silva, Joaquim Barranca. “Telemedicine application using webrtc”. Procedia computer science. 2016, no. 100, P. 414–420.
4. “An innovative WebRTC solution for e-Health services” / Paola Pierleoni, Luca Pernini et all. IEEE 18th International Conference on e-Health Networking, Applications and Services (Healthcom), Munich, 14 September 2016, 16484380.
5. Kwok-Fai N., Yang L., Wu C. “A P2P-MCU Approach to Multi-Party Video Conference with WebRTC”. International Journal of Future Computer and Communication. 2014. Vol. 3, no. 5. P. 319–324.
6. “Performance comparison of a WebRTC server on Docker versus virtual machine” / C. C. Spoiala et al. International Conference on Development and Application Systems (DAS), Suceava, 19 April 2016.
7. “Comparative Study of WebRTC Open Source SFUs for Video Conferencing” / E. André et al. Principles, Systems and Applications of IP Telecommunications (IPTComm), Chicago, 18 October 2018, 18324713.
8. Gannon D., Barga R., Sundaresan N. “Cloud-Native Applications”. IEEE Cloud Computing. 2017. Vol. 5, no. 4. P. 16–21.
9. D. Linthicum. “Cloud-Native Applications and Cloud Migration: The Good, the Bad, and the Points Between”. IEEE Cloud Computing. 2017. Vol. 5, no. 4. P. 12–14.
10. Вихідний код проекту Jitsi. GitHub. URL: https://github.com/jitsi (дата звернення: 18.01.2022).
11. Документація шаблонізації мови програмування golang. pkg.go.dev. URL: https://pkg.go.dev/text/template (дата звернення: 18.01.2022).
12. Вихідний код helmfile. GitHub. URL: https://github.com/roboll/helmfile (дата звернення: 19.01.2022).
13. Вихідний код розгортання webrtc застосунку в Kubernetes. github.com. URL: https://github.com/kuzm1ch/k8s-webrtc (дата звернення: 18.01.2022).
14. A Helm chart for jitsi-meet by Zempashi Pull Request #235 jitsi/docker-jitsi-meet. GitHub. URL: https://github.com/jitsi/docker-jitsi-meet/pull/235#issuecomment-658381692 (дата звернення: 18.01.2022).

Номер
Розділ
Статті