I’m writing my bachelor thesis about applying balenaCloud to automate the deployment process of the robots at the university. I’d like to describe the deployment process to some level of details, which requires some knowledge about the relationship between the components of the ecosystem (the balena API, Git server, Builder server, Docker registry, balenaOS as well as the Supervisor, …). So far I’ve gathered some amount of knowledge about the platform through the docs, from the forum posts (for which you guys have given excellent support) as well as from examining the source code. It would be really great if you guys can share some more details about the platform, especially those components that are not open sourced like the Git Server, Build Server and the closed source part of balenaCloud.
In particular I have some questions:
- Which components communicates with the core API during the deployment process, and for what?
- How does the CI-Pipeline look like in details - i.e. trigger of the image building process and the notifications to the devices about new application state, …? (e.g. through Webhooks, dedicated CI software like Jenkins or TravisCI or proprietary solutions built into the API, …).
- Is the traffic between the devices and the whole platform (i.e. all components) are tunneled through VPN or just the communication between device and the core API?