Skip to content

Demonstrators

To gather feedback and identify potential for further development and improvements, the FOCIS team evaluated, coordinated and built a number of demonstrator applications. We focused on the ALASCA projects as well as SCS use cases.

GitLab CI runners on SCS-compatible IaaS cloud infrastructure

CI pipelines are a fundamental building block of modern software engineering, the ALASCA projects rely heavily on them to ensure code quality, run tests and build the images that users rely on. Projects on the scale of Yaook need significant computing resources to accomplish all that, but since most pipelines are triggered when developers are working, the workload fluctuates a lot. As such, it is a good candidate for cloud-based computing, where it is possible to allocate the required resources on-demand.

GitLab provides an autoscaling mechanism for runners, different cloud providers can be used via the plugin framework fleeting. However, GitLab only offers plugins for the closed ecosystems of the US-based providers Google Cloud, AWS and Azure.

The OpenStack-based cloud provider Sardina Systems has developed a fleeting plugin for OpenStack. The FOCIS team evaluated that plugin and contributed an additional feature to improve the integration with SCS.

Building on those findings, the FOCIS team set up two GitLab runner managers on Cloud&Heat Technologies' certified SCS-compatible IaaS cloud. They run in an active-active configuration, to provide highly available CI runners for critical Yaook pipelines.

The runner managers make use of the SCS-mandated APIs and flavors to create virtual machines on-demand to run queued CI jobs. As such, the configuration is easily reusable with any SCS-compatible IaaS cloud provider.

Furthermore, the fully automated VM provisioning via the SCS-mandated APIs also made it possible to fully re-create runner instances after every job run, ensuring job isolation and thus hardening the CI infrastructure against attacks such as the copy.fail exploit.