Architecture¶
Since Sipfront is designed as a SaaS, the UI and the underlying backend system is provided as cloud service and is managed by Sipfront. The agents executing the tests however can be run either in the Sipfront Cloud or in your own environment.
Agent Setup¶
A simple cloud setup is outlined in the figure below. It consists of a System under Test (SuT) hosted in your premises, and test agents acting as calling and called parties and a backend system both hosted by Sipfront.
Variants of this setup can be that the SuT is acting as called party, while Sipfront only simulates the calling party, and vice versa.
Public vs Private Agent Pools¶
While in the setup outlined above, the test agents are hosted in the Sipfront Cloud, it is also possible to host them in your premises. This is useful if you want to test a SuT that is not reachable from the public internet, or if you want to test a SuT that is hosted in a private network.
In this case, the agents run in your own Docker environment, the test traffic stays within your own network, while the orchestration of the agents and the aggregation of collected metrics is performed with the Sipfront cloud service.
Agent Internals¶
The test agents are implemented as Docker containers. They contain the Sipfront Agent Controller, which communicates with the Sipfront Cloud to receive new test jobs, as well as components such as kamailio, rtpengine, sipp and baresip to perform the actual test calls. These components are dyncamically configured and controlled based on the test configuration which you define on the Sipfront web interface.
The container image is hosted at our Sipfront Dockerhub.
Scaling Agents¶
With its unique orchestration and aggretation capabilities, Sipfront is able to scale to any number of test agents. This allows you to run large scale tests with hundreds or even thousands of test agents simulating tens of thousands of calls, while being able to view results and metrics like a single big instance.
When running tests on public Sipfront agents, we take care of providing enough agents, or start new agents on demand if needed to handle the work-load. For private agents, you can scale the number of agents yourself by running the desired number of agents, depending on your needs.