- Category Direction - Runner
GitLab Runner is the flexible, multi-platform execution agent that works with GitLab CI to execute the jobs in your pipelines and powers the CI build fleet on GitLab.com.
Our vision is to eliminate CI build fleet maintenance and operational complexity for DevOps teams.
Depending on the organization's size, DevOps teams may be managing hundreds of Runners. In some cases, that may also mean offering different virtual machine configurations and sizes, which adds operational complexity. So at the heart of this vision, the guiding principle is that DevOps teams should not have to spend enormous amounts of time and effort deploying, configuring, and maintaining Runners. As is the case with the GitLab product strategy, the Runner's product development strategy must consider and balance the needs of both self-managed and GitLab.com product offerings. Self-managed customers whose security and compliance requirements dictate that the entire DevOps toolchain runs within their private networks can host the Runner themselves. In addition to public clouds, self-managed customers can deploy and host the Runner on several platforms, including Kubernetes, RedHat OpenShift, and Linux on Z for IBM Z mainframes. The product strategy for self-managed assumes a future, much like today, where there will continue to be a wide variety in the type of infrastructure stacks organizations deploy and manage in their data centers.
Organizational Adoption Journey
graph LR classDef blue fill:#3278ca, color:#fff classDef darkblue fill:#225798, color:#fff subgraph "CUSTOMER JOURNEY" A0[User Actions]:::darkblue end subgraph "POC, ONBOARDING, PRODUCTION ENVIRONMENT SETUP" A1[Install GitLab]:::blue --> A2(Install the 1st Runner):::blue end subgraph "SCALE USAGE PHASE: USERS, FEATURES, STAGE ADOPTION, n...n+1 phases" A2 --> A3(Rollout and start managing more than 1 Runner to support the organization):::blue end A0-.-A1;
graph LR classDef red fill:#c92d39, color:#fff classDef darkred fill:#9a0814, color:#fff classDef blue fill:#3278ca, color:#fff classDef darkblue fill:#225798, color:#fff subgraph "CUSTOMER JOURNEY" A0[Runner Pain Points]:::darkred end subgraph "POC, ONBOARDING, PRODUCTION ENVIRONMENT SETUP" A1[Manual steps to install
and configure first Runner]:::red --> A2(Manual steps to configure additional Runners):::red end subgraph "SCALE USAGE PHASE: USERS, FEATURES, STAGE ADOPTION, n...n+1 phases" A2 --> A3[Runner Token registration
process is manual]:::red A3 --> A4[High operational overhead
to maintain a large fleet of Runners]:::red A4 --> A5[No instrumentation that
indicates why a Runner
has not started]:::red end A0-.-A1;
The Runner product development strategy comprises three main focus areas to enable the vision.
- Runner Core: features and capabilities for the open-source Runner CI execution agent.
- Runner Cloud: the Runner CI build virtual machines available on GitLab SaaS.
- Runner Enterprise Management: features and capabilities for DevOps teams that self-manage the Runner CI/CD build infrastructure.
Top Vision Item(s)
- Autoscaling replacement for Docker Machine: Autoscaling of GitLab Runner on Virtual Machines hosted on the major cloud platforms is done today with Docker Machine which is in maintenance mode. As such, a key strategic initiative is migrating away from Docker Machine for autoscaling.
- Additional Platforms: A common request we get is to add support for various platforms to the Runner. We've chosen to support the plethora of different systems out there by adding support for a custom executor that can be overridden to support different needs. In this way platforms like vSphere, and even custom in-house implementations can be implemented. Additional platforms are primarily being implemented through community contributions, so if you're interested in contributing to GitLab these issues are great ones to get involved with.
- macOS Build Cloud (Runners) on GitLab.com Our goal is to provide customers a GitLab CI solution that delivers exceptional build speed and on-demand scale building applications for Apple products, including iPad, iPhone, Apple Watch, Apple TV, and Mac.
- Windows Runners on GitLab.com - GA In Q4FY20, we released the preview of Windows Runners on GitLab.com. We have seen a gradual increase in the adoption and use of this service. Additionally, there has been quite a bit of feedback and requests for enhancements. We plan to add a key feature, Windows autoscaler, which will enable the pre-provisioning of Windows VM's to process CI jobs more efficiently.
- Linux Runners: Offer multiple GCP VM types and sizes We currently offer a single VM type, (Google Cloud Platform n1-standard-1 ), for Linux Runners on GitLab.com. However, the execution duration of certain types of CI jobs can be reduced if they are executed on compute or memory optimized VM's, or general-purpose VM's with more vCPUs and RAM. Offering additional options will also help users who are not interested in managing their own Runners.
- GitLab.com Runners for Self-Managed (Runners-as-a-Service): We are also exploring offering to enable organizations to connect self-managed GitLab instances to Runners hosted and fully maintained by GitLab. If you are interested in providing feedback on this concept, you can add comments to this issue, gitlab#226819.
Runner Enterprise Management
- Make CI easy for Self-Managed GitLab users: Our goal is that users self-managed GitLab should be able to get up and running with CI with as little friction as possible.
- Runner Enterprise Management Dashboard: In the Runner Enterprise Management product category, we are starting to collect customer feedback on delivering a first-class enterprise management experience in the GitLab UI for organizations that manage hundreds of Runners.
What's Next & Why
In the section below, we highlight a few key features that we are working to deliver in the in the next few releases.
- macOS Build Cloud Runners on GitLab.com (Closed Beta) We have heard from several users and community members that need the ability to build macOS CI jobs on GitLab.com without having to set up and maintain self-managed macOS Runners. To address this need, we are working towards a closed beta launch of macOS Runners on GitLab.com.
Since this category is already at the "Lovable" maturity level (see our definitions of maturity levels), we do not have an upcoming target for bringing it to the next level. However, it's important to us that we defend our lovable status and provide the most value to our user community. To that end, we are starting to work on collecting community feedback to understand users' pain points with installing, managing, and using GitLab Runners. If you have any feedback that you would like to share, you can do so in this epic.
The Runner is currently evaluated as part of the comprehensive competitive analysis in the Continuous Integration category
Top Customer Success/Sales Issue(s)
For the CS team, the issue gitlab-runner#3121 where orphaned processes can cause issues with the runner in certain cases has been highlighted as generating support issues.
Top Customer Issue(s)