Product Vision

This is the vision for the end of 2018.

GitLab reimagines the scope of DevOps tooling to include developers, operations, and security teams in one single application. This dramatically reduces friction, increases collaboration, and drives a competitive advantage. Doing away with context switching and having all of the necessary information in one place closes the loop and enables a better understanding of each team's needs.

To make our vision a reality, we're working on a number of new features and improving on existing ones. This page describes the Product Vision for 2018. Internally, we're intending on implementing everything in here before the 2018 summit, scheduled for Aug 23, 2018. Of course that's incredibly aggressive, so as a customer or prospect, please don't count on that date. Some of these might only get to a minimal, or even just a demoable state by then.

Many of the issues describe development of an n-tier web app, but could equally be applied to an iOS app, Ruby gem, static website, or other type of project.

Grouping is based on stages in the DevOps Toolchain and our product categories, including several new ones for 2018. Also see our blog post on the complete DevOps vision. Or see the open issues for Product Vision 2018.

DevOps Lifecycle

New in 2018

Manage

Reporting & Analytics

Cycle Analytics
Conversational Development Index

Plan

The Plan stage is about capturing ideas, organizing issues and epics, scheduling work, and communicating plans.

Jira Epics
Jira in Menu Epic Roadmaps

Chat integration

Mattermost
Slack

Project management

Issue tracker
Issue board
Milestones UX improvements
Group milestones parity with project milestones
(Closed) Labels UX improvements
Import Jira issues to GitLab issues Premium
(Closed) Subgroup support for issues, merge requests, labels, and milestones
Jira development panel integration Premium

Portfolio Management

Epics
Roadmap
Manage issues within epic Ultimate
Managing epics
Filtered roadmaps across time
Group milestone as a release (in addition to a sprint) Ultimate
Capacity planning Ultimate
(Closed) Team dashboard

Create

The Create stage is about creating, collaborating, and managing content; often source code, but increasingly other content such as design files.

Bulk review Web IDE
Preview Drafts Web IDE

Source code management

File template repositories Premium
Push to create a new project
File template repository Premium

Code Review

Merge request
Image discussion in merge request diff
Approvals in merge request list
Increase approvals usage
Viewing a large diff of a single file
Batch comments on merge requests Premium
Commenting on a changed image in a merge request diff

Web IDE

COMPLETE: Web IDE editor beta
COMPLETE: Web IDE editor
Integrate Web IDE with CI/CD
Integrate Web IDE with merge requests
Run tests in the web terminal in the Web IDE Ultimate
Preview web applications in the Web IDE Ultimate
Split containers: separate dev / prod containers
WebIDE client evaluation with live preview
Web Terminal with persistent disk Ultimate
Cloud development with a web IDE Ultimate

Verify

The Verify stage is all about making sure that your code does what you expected it to do, meets quality standards, and is secure; all via automated testing. We bring best practices from top development teams, and make them the easy, default way to work. But of course you can build on those defaults and customize as needed for your company.

Continuous Integration (CI)

GitLab CI provides an explicit build stage and the concept of build artifacts, but we might need to separate out the build artifacts from test artifacts. For example, you might want your test runner to create a JUnit-style output file which is available for external consumption, but not included in the build image sent to production. Creation of an explicit build aligns well with Docker where the result of the build stage is a Docker image which is stored in a registry and later pulled for testing and deployment.

Code Quality Premium
Browser testing with Selenium Premium
Flaky tests management Premium
Manage code coverage reports Premium
Code Quality in diffs and pipelines views Starter
Improve speed of CI
JUnit XML Test Summary In MR widget
Code Quality++ Premium

Package

Container Registry
Binary repository for Maven Premium
Improvements to binary artifact repository Premium
Linux package repository Premium
NPM registry support in artifact repository Premium

Release

Continuous Delivery (CD) / Release Automation

A key part of CD is being able to deploy. We currently have the ability via scripts in the deploy stage in .gitlab-ci.yml. We will go further.

Environments
Deployment history
Deploy boards Premium
Canary deployments Premium
Release train Premium
Incremental rollouts (manual) Premium
Automatic rollback of deployments if error rate is too high Premium
Pipeline view of environments
Group-level Environments page Premium

Configure

Application Control Panel

Variables
Create an Application Control Panel for easy configuration of app behavior
GitLab PaaS Premium
Autoscaling deployments based on CPU usage Premium
Pause idle deployments Premium
Auto DevOps Generally Available
Support multiple databases for Auto DevOps
Automatically detect and enable services when deploying applications
Rename "secret variables" to "variables"
Scale deployments directly from the environment page Premium

Infrastructure Configuration

Group-level Kubernetes cluster
Configure GKE clusters
Kubernetes/GKE integration - First-class clusters

Operations

ChatOps Improvements
Support operators in GitLab Premium
Support operators in GitLab MVC Premium

Feature Management

There's a big benefit to decoupling deployment of code from delivery of a feature, mostly using feature flags. Continuous integration helps improve the speed of development, but feature flags take it to another level, giving you the confidence to integrate code even more often while providing a gradual and granular method for delivery.

Feature management MVC (feature flags) Premium
Feature management (feature flags)

Monitor

Performance is a critical aspect of the user experience, and ensuring your application is responsive and available is everyone's responsibility. We want to help address this need for development teams, by integrating key performance analytics and feedback into the tool developers already use every day.

Going further, we want you to be able to track changes in your production infrastructure, availability, and uptime; error/exception tracking; and aggregated logs.

As part of our commitment to performance we are also deeply instrumenting GitLab itself, enabling our team to improve GitLab peformance and for customers to more easily manage their deployments.

Application Performance Monitoring (APM)

Prometheus monitoring
Tracing Ultimate
SLI Alerts
Load/performance testing and impact of merge request Premium
Automated anomaly detection and alerting Ultimate
Operations Dashboard Ultimate
Custom metrics Premium

Infrastructure Monitoring

Kubernetes Cluster Monitoring Ultimate
Cluster Monitoring Improvements Ultimate

Production Monitoring

Production Scripted Testing Ultimate
Ops view of monitoring and deploy board Ultimate
Show current status of pods in deploy board Ultimate

Error Tracking

Error Tracking Ultimate

Logging

Kubernetes Pod Logs Ultimate
Application Logs Ultimate
Application Log Alerts Ultimate
Application logging (aggregated) Ultimate

Secure

Security Testing

Auto remediate security vulnerabilities Ultimate
Support the most common languages in SAST Ultimate
Security Dashboard MVC Ultimate
GitLab Recon
Security Scanning in Registry Ultimate
Auto SAST Ultimate
Show SAST results in MR widget Ultimate
Application Security Testing (SAST, DAST) Ultimate
Group security issues panels in the MR widget Ultimate
Add Gemnasium dependency check to SAST Ultimate

License Management

License Management Ultimate

Performance

Not a lifecycle stage, but part of our 2018 plan

Push to Geo secondary (proxied to primary) Premium
Automatic DR Premium
Improve speed index
Multithreaded application server

Distribution

Not a lifecycle stage, but part of our 2018 plan

GitLab is the engine that powers many companies' software businesses so it is important to ensure it is as easy as possible to deploy, maintain, and stay up to date.

Today we have a mature and easy to use Omnibus-based build system, which is the foundation for nearly all methods of deploying GitLab. It includes everything a customer needs to run GitLab all in a single package, and is great for installing on virtual machines or real hardware. We are committed to making our package easier to work with, highly available, as well as offering automated deployments on cloud providers like AWS.

We also want GitLab to be the best cloud native development tool, and offering a great cloud native deployment is a key part of that. We are focused on offering a flexible and scalable container-based deployment on Kubernetes, by using enterprise grade Helm Charts.

Omnibus

Instant SSL with Let's Encrypt
GitLab Web Admin Portal
Create AWS CloudFormation template
Getting Started Guide / Curated Deployment Methods
[Meta] Instant SSL for GitLab via Let's Encrypt
[Meta] GitLab HA improvements post GA Premium

Cloud Native Installation

Cloud native GitLab Helm Chart (GA)
Automated GitLab Deployment on EKS/AWS
Automated GitLab Deployment on GKE