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):
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?
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.
- openvidu-browser: fixes for Publishers which have called
Publisher.subscribeToRemote. If they called
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.
Publisher.replaceTrackmethod now can be used on unpublished Publishers. These are Publishers that have not been called with
Session.publishor that have been called
Session.unpublishafter 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
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.
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
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.