OpenVidu 2.13.0: now with Docker!

OpenVidu
4 min readApr 23, 2020

We have great news! From now on, installing, upgrading, configuring and managing in any way your OpenVidu deployment will be a piece of cake.

Docker-based deployment of OpenVidu

OpenVidu 2.13.0 introduces a brand new Docker-based deployment. It uses docker-compose to manage all of the necessary services. Why did we make the decision of migrating to Docker after 2.12.0 release? It was a mix of two reasons:

First reason: OpenVidu users have always asked for a Docker-based deployment. OpenVidu users are clever. Docker is the first thing an OpenVidu user will encounter when going through any of our tutorials, as we recommend to use a special OpenVidu dev container to quickly run them. And of course, Docker greatly simplifies the management of the services for those administrating them. Just look at this beauty: now you can restart your whole OpenVidu deployment with this command (and we mean all of its services, which are 6 in total for an OpenVidu CE deployment): ./openvidu restart

Second reason: OpenVidu developers (that’s us :) have always had problems helping users of the platform due to the lack of homogeneity in OpenVidu deployments out there. The reality is that there’s an astounding variety of cloud providers, virtual machines, OS flavours and other stuff that may influence how an OpenVidu installation behaves. Docker fixes this. Now every OpenVidu deployment will be basically the same to the other ones, so we will be able to reproduce any problem, and the proper fix for the affected user will generally apply to all OpenVidu installations. Isn’t that awesome?

Visit Deploying OpenVidu CE on premises and Deploying OpenVidu Pro on premises to see for yourself how easy it is now to deploy OpenVidu.

Other new features

Microsoft Edge support

The new version of Microsoft Edge has joined the list of supported platforms by OpenVidu. Both the desktop Windows version and the Android version are now supported (of course, totally compatible with all other supported platforms).

Garbage collector for OpenVidu Sessions

OpenVidu sessions are initialized through the REST API or with any supported server SDK (see here). And they are automatically closed once the last user connected to it leaves the session. But sessions initialized through the REST API that have no connected users remained in memory forever. Now this has been addressed with a garbage collector that will periodically clean up all those non-active sessions.

Bug fixes

  • openvidu-browser: fixes for Publishers which have called Publisher.subscribeToRemote. If they called Publisher.publishAudio, Publisher.publishVideo and Publisher.replaceTrack , those where not taking effect. Now they do. And now they also properly stop their media stream tracks when disposing the Publisher object so the camera light of devices shuts down.
  • openvidu-browser: Publisher.replaceTrack method now can be used on unpublished Publishers. These are Publishers that have not been called with Session.publish or that have been called Session.unpublish after being published.
  • openvidu-server: critical concurrency bug fix. Subscription and unpublishing operations could interfere with each other with some bad luck, possibly causing ghost sessions and server events to have erroneous data. This is now fixed.
  • openvidu-server-pro: programmatic reset failed if openvidu.pro.cluster.mode was manual. Now it doesn’t.
  • openvidu-server-pro: stats gathering threads for media endpoints could get stranded forever, consuming valuable CPU. Now they don’t.
  • openvidu-server-pro: important fixes on the connection status between OpenVidu Server Pro Node and Media Nodes. Upon an unexpected broken connection between OpenVidu Server Pro Node and a Media Node, the affected Media Node could still be selected in some cases to initialize new Sessions, failing in the process. Now it doesn’t. Besides this, the connection status returned by the REST API could remain as “disconnected” even after a successful reconnection. Now it doesn’t.
  • OpenVidu Inspector: bug fixes in Session History page: 1) Sessions with same customSessionId could be missplaced when gathering their information. 2) Pagination position and size remembered when coming back from session detail. 3) Better click behavior for the selection checkboxes.

Breaking changes

The new Docker deployment stack requires OpenVidu to manage its configuration properties following the standard environment variable syntax rules. For that reason, all of OpenVidu configuration properties have been renamed from this.is.my-propertY=VALUE to THIS_IS_MY_PROPERTY=VALUE

OpenVidu configuration docs are of course updated to this new syntax. As production deployments of OpenVidu 2.13.0 will requires users to re-install all of the services, new installations will already bring the new syntax by default. The official OpenVidu development container should also use now the new syntax for its configuration properties.

And this is it. OpenVidu 2.13.0 is another important step in terms of homogeneity and stability. We cannot wait for you to try it!

Stay tuned for next iterations! You can follow us on Twitter and a Star in GitHub is always welcome :)

--

--