Setting Up A New Cluster
To start streaming operations you need to have a minimum of one active cluster (NodeGroup). As described before a cluster will need to have a minimum of one edge and one origin at any given time for conducting a successful streaming event.
To create a new cluster you need to have access to Stream Manager’s REST API gateway and the Red5 Pro Stream Manager API.
Following are the steps to set up a new cluster (NodeGroup) of Red5 Pro instances.
1. Determine an approximate of your streaming traffic
Before you start creating a cluster, you need to have an approximate figure of what your estimated traffic will be like. Going a step further you should divide your traffic requirement into two types:
Base Traffic
: Base traffic is the minimum traffic you expect on your setup. The Nodegroup should be able to cater to the minimum traffic expected at all times, without needing to scale up. The base traffic for publishers and subscribers should be evaluated separately.Peak Traffic
: Peak traffic is the maximum traffic you expect on your setup. The Nodegroup should be able to cater to the maximum traffic expected using autoscaling. The peak traffic for publishers and subscribers should be evaluated separately. As soon as the traffic goes down, autoscaling will remove added nodes automatically to go back toBase Traffic
capacity.
Once you have sufficient statistics/ideas about your traffic needs you are ready to start creating the nodegroup.
1. Create a launch configuration
As described earlier in this document, a launch configuration file helps in launching a new instance on the target platform. Once you have an idea of the expected Base Traffic
and Peak Traffic
for your rig, you can create your launch configuration appropriately.
The launch configuration requires you to specify the prefered instanceType
(machine types defined by your platform) and an estimated connectionCapacity
for each node type that will be present in your setup.
Each instance type comes with a certain specific configuration as defined by your cloud platform. Red5 Pro supports 4 types of clients based on protocol used for media delivery – RTMP
, RTSP
, WebRTC
and HLS
(subscription only). Each of the following client type exerts a different amount of load on the server’s CPU, RAM etc. Therefore it is very important to choose the proper instanceType
(depending of your expected traffic type, stream quality etc) and configure it with appropriate estimated connectionCapacity
in the launch configuration for best results.
Selecting a incorrect instanceType
or configuring a improper estimated connectionCapacity
may lead to instance crash/failure due to overload or wastage due to underutilization. It is also important to note that the value of connectionCapacity
influences auto scaling since it states the maximum capacity of a node.
The estimated
connectionCapacity
may also widely varies with the noderole
ie: origin/edge/relay/transcoder.
It is recommended that you contact support for advice on the best instanceType
to use and the appropriate estimated connectionCapacity
for it based on your streaming needs.
Once you know the best instanceType
to use per node type and the estimated connectionCapacity
for it, you can create the launch configuration for your nodegroup. To create a launch configuration please check out Stream Manager API for launch configuration management.
2. Create a scale policy
Similar to the launch configuration, the scale policy too plays a pivotal role in guiding autoscaling to meet your traffic needs.
A scale policy requires you to specify the minLimit
and the maxLimit
per node type that will be used in your setup. The minLimit
helps target the Base Traffic
, whereas the maxLimit
helps with the Peak Traffic
.
Determining minLimit
and maxLimit
for a node type
Consider an example where you estimate that you are going to have a minimum of 900
publishers and your instanceType
used for the role of origin
has an estimated connectionCapacity
of 500
, your minLimit
for the node type origin
should be set to 2
. Similarly if you estimate a maximum of 1400
publishers atmost, your maxLimit
for the node type origin
should be set to 3
.
It is always to recommended to have a higher than expected value for maxLimit
specified in your scale policy as it will help autoscaling deal with higher than anticipated Peak Traffic
effortlessly.
Once you know the best minLimit
and maxLimit
required per node type, you can create the scale policy for your nodegroup. To create a scale policy please check out Stream Manager API for scale policy management.
3. Create a new NodeGroup
Once you have created a launch configuration and a scale policy for your group, the next step is to create the group itself.
Use the CREATE GROUP REST API call to create a new virtual group name (placeholder) which will define a collection of origins and edges and optionally relays and transcoders as per your launch configuration & scale policy data.Note the group name from the rest response received.
Every group operation requires the
group name
as the primary parameter.
3. Launch a new origin in the Node Group
Use the LAUNCH NEW ORIGIN REST API call to start a new origin instance in the newly created group created in step 1.
- The instance normally takes less than 2 mins to be completely initialized and active. This includes time needed for the machine to startup and and time required for Red5 Pro service to be running. (You can optimize the startup time by removing unwanted applications before creating the image).
After the origin is ready it pings
Stream Manager over HTTP/HTTPS to discover its Role and acquire initial configuration data. Once the first origin has been initialized, Stream Manager check to see the edge/relay/transcoder requirements using the current state of the group and the scale policy. It then sequentially adds additional nodes to the group as per the scale policy definition using the launch configuration as a guide for launching instances.
Each node upon a successful startup pings
Stream Manager over HTTP/HTTPS to discover its Role and acquire initial configuration data. You can start using services as soon as you have a minimum of one origin and one edge in the group. Stream Manager will add more nodes to the group using Autoscaler
when it sees the traffic load increasing beyond the configured Threshold or if a node is removed due to failure.
Transcoder nodes although a part of the nodegroup are not a part of the cluster relationship.