Continua CI has been built with a distributed architecture in mind, which grows as your development workload increases. Continua CI consists of one Server which controls and directs the build workflow, and multiple agents that are responsible for building and running actions. By default, Continua CI will install an agent on the Continua Server so right from the start there will always be at least one agent available to Continua CI.
Continua's distributed architecture only comes into effect once extra concurrent builds have been added to your Continua CI licence. There is only one version of Continua so no matter which price plan you are currently on, you will always have a fully functioning* copy of Continua CI. Where the different price plans differ however is the number of concurrent builds and agents that can be associated with Continua CI. Continua's distributed architecture is only available to users that have installed additional build licences as Continua's free licence only allows users to run one build at a time and this will always be run on the agent installed locally on the Continua server.
Continua CI's distributed architecture is based around the idea that the Continua Server will distribute the workload to all the Continua agents. Once a build has begun, the server gets the first stage in the current build and executes the following workflow:
Figure 1. Continua's server and agent architecture
Continua allows you to break up your build into multiple Stages & Actions. These stages provide a way of splitting up your build into logical sections that can be executed over multiple agents. For example, you could have an agent that is dedicated to FinalBuilder, so any stage that include a FinalBuilder Action will execute on this agent while all other stages will go to the next available agent. This is extremely useful if you have multiple builds that are waiting to execute a FinalBuilder Action, as each build only needs to wait for the stage to finish, rather than the entire build.
The information that is sent between the server and an agent is entirely configurable on a stage by stage basis. There are three types of files that are defined at build time:
* Version 1.9 adds extra actions only available to licensed users.