Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Product Direction - Configure

The mission of the Configure stage is to make operators and platform engineers more productive and efficient in executing configuration and operational tasks in various deployment environments. The Configure stage is closely related to release management and continuous delivery and to the monitoring of environments. We do this by providing integrated workflows all within GitLab, a complete Value Stream Delivery Platform.

Our vision is that DevOps teams will use GitLab as their primary day-to-day tool as it will provide first-class operator support.

Target personas

We build solutions targeting the following personas:

In keeping with our single application promise, we want GitLab to be a robust, best-of-breed tool for operators as much as it is for developers. Our vision is that operators will use GitLab as their main day-to-day tool for provisioning, configuring, testing, and decomissioning infrastructure.

Pricing

GitLab's Configure stage is focused on providing enterprise ready configure capabilities to enable users to operate and deploy modern applications and cloud infrastructure. However, since all application code needs a form of infrastructure, there will continue to be basic offering that targets Free users.

Free

Every customer, including individual developers, need to be able to configure and deploy infrastructure. As such, integration with Terraform for Infrastructure as code is available to all GitLab users.

Cloud native development is container based. More and more are using Kubernetes for container orchestration, even on personal projects. Basic Kubernetes management is also available as part of the GitLab Free offering.

Premium

For medium sized organizations, group level cluster integrations map to the company team structure. So teams can use GitLab GitOps without restrictions. In addition as the infrastructure complexities increase, as part of our policy management capability, Premium users can see and visualize policy violations to provide safeguards to teams operating quickly.

Ultimate

For enterprises, when the complexity in infrastructure becomes unmanageable manually, Configure will provide more insights and visualization into various infrastructure elements. This includes cluster cost management and the ability to visualize various aspects of the whole infrastructure.

Strategic directions

We build products primarily for an 8 team SaaS product company, likely with a serverless or container based architecture. In the latter case, we assume it's deployed either to Kubernetes or with Terraform to anything that Terraform supports.

Challenges

We operate in a space full of high-quality open source applications, and we expect GitLab to co-exist with tools which teams have already invested considerable time and money. As a result, we want to build on existing best practices and we want to provide an integrated experience with the preferred tools in the industry. Keeping up with the quickly changing nature of these tools is our primary challenge.

The technologies where we want to provide an outstanding, integrated experience with are

Opportunities

Our opportunities in the Configure stage are derived from the Ops Section opportunities. Namely:

This leads us to look into common workflows that we would like to support with a market-leading experience:

  1. Flexible and robust Kubernetes cluster management
  2. Infrastructure as Code, Policy as Code
  3. Secrets Management

Other categories that fall under the Configure direction, but we are not actively investing in are

  1. Runbooks
  2. ChatOps
  3. Serverless

Product principles

We aim to achieve these by focusing on the following principles.

Embrace the cloud-native ecosystem

We want to be good cloud-native citizens, build on top of and contribute back into open source tools. We believe in the power of the open source community and GitLab's everyone can contribute ethos.

Aim for experienced cloud users, but make it easy to get started for new users

We understand that Infrastructure as Code and cluster management at scale are complex, and best of breed technologies and much customization is required to fulfill advanced workflows. We want to support such advanced use cases. At the same time, we believe that many new users will become advanced users, and we can support them as well by providing production ready, turn-key solutions that incorporate the best practices followed by experts.

Provide an integrated experience

At GitLab we build a single application for the whole Dev(Sec)Ops pipeline. Our solutions should integrate deeply with and should support other GitLab features. We are paying special attention to security and collaboration oriented features.

Be enterprise ready

While we want to provide supporting products for every company size, we expect enterprise users to have special needs that our integrated approach can serve well. Focusing on their use cases we can reduce their costs and enable faster go to market.

Performance Indicators (PIs)

Our Key Performance Indicator for the Configure stage is the Configure SMAU (stage monthly active users).

See the corresponding Sisense dashboard (internal) for our primary KPIs.

Auto DevOps

Our vision for “Auto DevOps” is to leverage our single application to assist users in every phase of the development and delivery process, implementing automatic tasks that can be customized and refined to get the best fit for their needs. We believe that using Auto DevOps we simplify the adoption of a DevOps culture and best practices.

With the dramatic increase in the number of projects being managed by software teams (especially with the rise of micro-services), it's no longer enough to just craft your code. In addition, you must consider all of the other aspects that will make your project successful, such as tests, quality, security, logging, monitoring, etc. It's no longer acceptable to add these things only when they are needed, or when the project becomes popular, or when there's a problem to address; on the contrary, all of these things should be available at inception.

That's why we created Auto DevOps, and we have made it composable to suit most requirements. Depending on the complexities required, Auto DevOps can be used either as is to provide a fully automatic DevOps pipeline from test runs through container builds to review apps and production deployments, or experienced users can customize various aspects of the default run, or just re-use some of our templates and substitute other parts with their own jobs.

The relevant Auto DevOps components for each GitLab stage are maintained by the product groups in those stages. For example the Auto Deploy jobs are maintained by the Progressive Delivery group and the Auto SAST, Dependency Scanning, License Compliance, Container Scanning and DAST jobs are maintained by the relevant Secure groups.

Watch the video explaining our vision on Auto DevOps

Learn moreDocumentationDirection

Kubernetes Management

Creating integrated, easy to use workflows from source code management to Kubernetes based deployments and monitoring is a complex, time-consuming task. At GitLab we aim to provide tight integrations with Kubernetes clusters with minimal setup and leaving the possibility of customization and control at our users.

GitLab supports pull and push based deployments, and integrated monitoring of deployed applications to support every DevOps approach.

Learn moreDocumentationDirection

Infrastructure as Code

Infrastructure as code (IaC) is the practice of managing and provisioning infrastructure through machine-readable definition files, rather than manual hardware configuration or interactive configuration tools. The IT infrastructure managed by this comprises both physical equipment such as bare-metal servers as well as virtual machines and associated configuration resources. The definitions are stored in a version control system. IaC takes proven coding techniques and extends them to your infrastructure directly, effectively blurring the line between what is an application and what is the environment.

We provide tight integration with best of breed IaC tools, such that all infrastructure related workflows in GitLab are well supported. Our initial focus will be on Terraform.

Direction

Cluster Cost Optimization

Compute costs are a significant expenditure for many companies, whether they are in the cloud or on-premise. Managing these costs is an important function for many companies. We aim to provide easy-to-understand analysis of your infrastructure that could identify overprovisioned infrastructure (leading to waste), recommended changes, estimated costs, and automatic resizing.

Direction

Serverless

Taking full advantage of the power of the cloud computing model and container orchestration, cloud native is an innovative way to build and run applications. A big part of our cloud native strategy is around serverless. Serverless computing provides an easy way to build highly scalable applications and services, eliminating the pains of provisioning & maintaining.

Learn moreDocumentationDirection

Runbook Configuration

Incident Management will allow operators to have real-time view into the happenings of their systems. Building upon this concept, we envision rendering of runbook inside of GitLab as interactive documents for operators which in turn could trigger automation defined in gitlab-ci.yml.

DocumentationDirection

ChatOps

The next generation of our ChatOps implementation will allow users to have a dedicated interface to configure, invoke, and audit ChatOps actions, doing it in a secure way through RBAC.

DocumenationDirection

Contributing

At GitLab, one of our values is that everyone can contribute. If you're looking to get involved with features in the Configure area, there are a couple searches you can use to find issues to work on:

You can read more about our general contribution guidelines here.

Prioritization Process

In general, we follow the same prioritization guidelines as the product team at large. Issues will tend to flow from having no milestone, to being added to the backlog, to being added to this page and/or a specific milestone for delivery.

You can see our entire public backlog for Configure at this link; filtering by labels or milestones will allow you to explore. If you find something you're interested in, you're encouraged to jump into the conversation and participate. At GitLab, everyone can contribute!

Issues with the "direction" label have been flagged as being particularly interesting, and are listed in the sections below.

Upcoming Releases

14.2 (2021-08-22)

14.3 (2021-09-22)

14.5 (2021-11-22)

14.6 (2021-12-22)

Other Interesting Items

There are a number of other issues that we've identified as being interesting that we are potentially thinking about, but do not currently have planned by setting a milestone for delivery. Some are good ideas we want to do, but don't yet know when; some we may never get around to, some may be replaced by another idea, and some are just waiting for that right spark of inspiration to turn them into something special.

Remember that at GitLab, everyone can contribute! This is one of our fundamental values and something we truly believe in, so if you have feedback on any of these items you're more than welcome to jump into the discussion. Our vision and product are truly something we build together!

Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license