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

Deployment Management Direction

Overview

Managing an organization's deployments is a major challenge. Particularly in larger organizations, with the proliferation of services, technologies, dependencies on one side, and compliance and security requirements on the other side, many teams find themselves struggling to deploy frequently and consistently in a repeatable manner.

Platform teams want to help development teams become more efficient; so that they can meet compliance and security requirements and deploy to environments they can't (and probably shouldn't) update, without slowing down their ability to implement changes to their applications.

Vision

GitLab distrupts the market with a fully declarative, scalable, modular, testable approach to deployment management that supports any major target infrastructure from bare metal servers to container orchestrators to edge devices and mobile app stores.

Why fully declarative?

Declarative operations is to the devops pipeline what serverless is to infrastructure. It shifts the responsibility of operating the underlying systems to a service provider, and enables the user to focus on their business instead.

The biggest difficulty with every automation tool (feel free to call it "automation as code") is that it is code. As a result it requires developers to write it, a runtime environment to run it and a lot of investment into learning the tool chain. Compare this to the declarative nature of Kubernetes. With Kubernetes even the mediocre developer realised that operations are complex, but operations were complex even before Kubernetes. Kubernetes, with its declarative, everything as data approach made this complexity approachable for every developer.

Maturity

We consider Deployment Management to be at the minimal level. We believe that the current CI/CD based approach, environments, releases are acceptable for many users, but are far from a distruptive solution.

Market

As CI became mainstream, we believe that the next big market is around integrated and scalable deployment solutions. The total addressable market (TAMkt) for DevOps tools targeting the Release and Configure stages was $1.79B in 2020 and is expected to grow to $3.25B by 2024 (13.8% CAGR) (i). Continuous delivery alone, which does not include categories such as infrastructure as code, is estimated to have a market size of $1.62B in 2018 growing to $6B by 2026 (17.76% CAGR).

Deployment Management enables an integrated, programmable approach to serve this market, and provides opportunities for GitLab in the future.

Strategy

Current

Today, GitLab CI/CD is used by many Gitlab customers to manage their deployments. GitLab CI/CD is a mixture of imperative and declarative code that is hard to test and its YAML based syntax does not offer much possibility for scalable, modular setup. As deployments are complex processes where all the previous work and requirements need to converge having strong foundations is crucial.

We are working on defining the entities and processes around deployments to have a shared vocabulary discussion deployment requirements. Moreover, we are running a UX research to learn more about cloud-native deployment processes and tools used today by our users.

As GitLab already provides support to deploy into non-production and production environments, we want to change the GitLab Documentation to reflect this by moving existing content under "Use GitLab / Release Your Application" and renaming "Release Your Application" to "Deploy and Release Your Application"

Next 6-12 months

We want to lay down the foundations for a new Deployment Management framework within GitLab.

Target persona

The primary persona is the Platform Engineer. Their job is to support all the development teams with standardised and compliant pipelines.

The secondary personas are the Application Operator and the Compliance Manager. The Application Operator is responsible for deploying and operating the business applications, while the compliance manager assures that all the processes follow internal policies.

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