Suppose you are starting a new software company, and in middle of create infrastructure. You definitely want to ensure that build break due to errenous code change should not impact deveoplement. Otherwise, your other team-mates will not be able to work with broken build. For this, you want to trigger build as soon as code change is done. This will ensure that build breakage will be notified on time and fix is applied soon.
Moreover, you will want to trigger testing on the incremental build. This will ensure detection of regression as soon as possible.
Now the question is how you are going to do this? Will you write your own software for this? You really don't need to do it. A brilliant open-source offering of Jenkins is available for this purpose.
Jenkins is an continuous delivery and continuous integration server application. Typical use-cases of Jenkins are building your application from version control system, running acceptance tests or deploying application on dev/test/prod environments. Jenkins is free and cross-platform, and it’s web application written in Java, so it comes as a .war file.
The maximum number of Jenkins jobs is dependent upon what you set as the limits in the master and slaves. Usually, we limit by the number of cores, but your mileage may vary depending upon available memory, disk speed, availability of SSD, and overlap of source code.
Jenkins can be deployed as Virtual machine(https://jenkins.io/download/) or docker container(https://jenkins.io/solutions/docker/)
https://stackoverflow.com/questions/9626899/jenkins-maximum-number-of-concurrent-jobs
https://testdetective.com/jenkins-begginers-dojo/
https://jenkins.io