Comments (4)
Hey @harshmaur ,
you are right, autoscaling of Janus within Roomler's stack is not something that is provided outside-the-box. For autoscaling you would need to consider deploying Janus on some cloud provider (AWS, Azure, GCP, ...). You might wanna google the informative Lorenzo's (the author of Janus) presentations about scaling Janus.
At the moment we are deploying Roomler on-prem. And for scaling Janus on-prem you have the option to have a fixed number of janus instances and load balance via sticky session cookie (e.g. roomid):
Hope it helps.
from roomler.
Thanks @gjovanov for the information. I reckon the challenge is routing the traffic to the correct Janus instance, which is the same problem with any stateful application we deploy on cloud.
Are there any other challenge to scaling? I believe the other reason is the number of open ports which is hard to do on a kubernetes based cluster?
from roomler.
Correct @harshmaur ... The end effect is stateful app, at least in terms of routing the user to corresponding Janus instance based on a roomid... This is the simplest approach of scaling via sticky session, for the scenario youv'e mentioned: 1000 rooms with 10 participants each... In the case of large rooms e.g. more than 50 participants than you would need to consider completely different path e.g. via RTP forwarding for routing media traffic from one janus instance to another.
Indeed, large number of open ports is problematic when deployed in either Docker (or Docker Swarm) or Kubernates for both Janus and Coturn. Hence most of the times these services are exposed directly over public IP (without NAT).
You can also check Janus Cloud which tries to solve the routing problem via Janus Proxy/Senitel instances.
from roomler.
Thanks @gjovanov for the insight.
I'll close the issue. :)
from roomler.
Related Issues (16)
- Instructions to run in an end to end manner HOT 3
- How end to end setup the Coturn? HOT 3
- NGINX ERROR HOT 5
- Cant Join the Conference Because of No Camera on the Device HOT 8
- Lets-Encrypt HOT 1
- UnhandledPromiseRejectionWarning: Error: ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time HOT 1
- "npm ERR! Maximum call stack size exceeded" while I run ./script/build.sh HOT 2
- bootstrap HOT 3
- MongoDB for ubuntu 32-bit HOT 4
- nginx error HOT 2
- Specific questions about Roomler Setup. HOT 17
- Tutorial how to get started HOT 2
- How many participants roomler can support in single session? HOT 2
- Nginx change default port from 443 ? HOT 3
- How if I want to take the API only? HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from roomler.