|Product Marketing||Technical Marketing|
|Saumya Upadhyaya ( @supadhyaya )||Cesar Saavedra ( @csaavedra1 )|
“Deployment is manual”
“Functional tests are manual”
“Time consuming or lack of rollback on performance degradation or production errors”
“Hard to maintain environment configurations and hard to operate”
“No consistency in deployment process”
“Manual / hard coded configurations”
“No standardized software artifact”
“No release management in place”
“Too dependent on other teams to get any release done”
If these are the typical problems you face, Continuous Delivery is for you.
Continuous Delivery is the next logical step after continuous integration and it streamlines and automates the application release process to make software delivery repeatable and on demand - from provisioning the infrastructure environment to deploying the tested application software to test/staging or production environments. Organizations practicing continuous delivery are able to plan their release processes and schedules, automate infrastructure and application deployments, manage deployed infrastructure and application resources resources, and analyze metrics to optimise the software delivery process.
The typical user personas for this use case are:
The DevOps engineer is the stable counterpart for the Developer to aid with support of the infrastructure, environment and integrations necessary for the developer to deploy their code to test/staging or production environments.
The Systems administrator is the infrastructure expert - who contributes to modeling, maintaining and scaling the test/staging and production environments - including physical, virtual or cloud infrastructure and the application infrastructure like databases and middleware.
The release manager has a central role in release planning, scheduling, identifying dependencies and resources to ensure that the release is timely. The release manager helps automating the release process.
The platform engineer is a specialist in modern platforms and aims to empower developers to provision, deploy and decommission tiered environments in a self service manner.
The operations specialist ensures that the deployed application is available and performing to the required performance parameters.
The typical buyer personas for this use case are:
The Infrastructure Engineering Director is responsible for building and scaling highly available environments. He/She frequently has the agenda of Cloud initiatives and Cost Optimization in the organization.
The Release and Change Management Director is responsible for managing complex releases from concept to delivery. The CIO may be the final decision maker or buyer, but the Release and Change Management Director has significant influence in the buying process.
Examples of comparative research for this use case are listed just below. Additional research relevant to this use case can be found in the Analyst Reports - Use Cases spreadsheet.
|Market Requirement||Description||Typical capability-enabling features||Value/ROI|
|1) Release Planning||The solution should be able to define the planning of the release workflow which includes determining what goes into the release (Bill of Material of applications & services), what are the dependencies (application / micro services dependencies), who will do it (people resource management), when will it be done (scheduling), what is the readiness criteria, who will approve the release||- Bill of materials (release modeling)
- Release dependencies
- Release Versioning
- Sequence of the release
- Schedule of events and release calendar
- Resource planning including forecasting
- Readiness criteria
- Approval gates
- List of isuues in the release and their status
- Release Evidence
|2) Manage the artifacts and binary assets||The solution should be able to manage the inputs from continuous integration i.e., artifacts and binary assets to deploy the artifacts to the test, staging or production environments.||- Maintain versions, dependencies, meta data for the application
- Maintain container images
- Retrieve application / binary artifacts for deployment
- Separation of duties and access control
- Support a range of common package formats and third party integrations
- Repository / registry can be used on-prem or in the cloud
|3) Environments management (i.e., Operating Environment)||The solution should be able to enable consistent and repeatable modeling of the environment for test, staging and production - including on-prem, virtual, cloud (a mix of multi and hybrid cloud environments), maintain a system of record of the environment & various elements of the environment (akin to a CMDB)||- Infrastructure modeling (via UI / Infrastructure as a code, blueprints, runbooks)
- Support hybrid infrastructure environments in modeling (phyical, virtual, cloud (both multi & hybrid))
- System of record of various environments (test, stage, production)
- System of record of configurations & policies
- Access control / approvers for environment changes
- Configuration & Policy Change Management
- Automated environment discovery
|4) Database Provisioning||The solution should be able to model, provision and deploy to databases required to support the running application||- Model database dependencies
- Discovery of databases
- Provisioning and configuration of databases such as schema, stored procedures
- Loading data (data provisioning)
- Access control / approvers
- Configuration Change
|5) Middleware Provisioning||The solution should be able to model, provision and deploy to middleware software required to support the running application||- Model middleware dependencies
- Discovery of middleware
- Configuration of middleware servers & clusters
- Access control / approvers
- Configuration Change
|6) Application Release Automation & Delivery||The application should be able to automate the end to end release activities including build & test (which is covered as part of continuous integration) and deployment automation which includes scheduling various tasks, deploying the application to the desired environments, rollout scenarios, rollback and system validation||- Delivery Pipelines
- Pipeline versioning
- Task Scheduling & Sequencing
- Rollout scenarios such as canary, incremental roll out, blue green deployments
- Feature Flags
- Review Apps
- Performance testing & validation
|7) Resource allocation and management||The application should be able to provide a detailed and summarized view of the costs associated with the infrastructure and application infrastructure modeled as well as optimization recommendations||- Cost management
- Cost optimization
|8) Multi Platform/Cloud/Integration Support||The application should be able to play well with multiple clouds, multiple platforms (e.g., Linux, Unix, Windows, container platforms, mainframe, midrange, mobile, specialized), multiple integrations (e.g., CMPs, Registries, Orchestration tools, APM tools, etc)||- Cloud Support (AWS, GCP, Azure, IBM, Oracle, etc)
- Platform Support (Linux, Unix, Windows, container platforms, mainframe, midrange, mobile, specialized)
- Integration Support (CMPs, Registries, Orchestration tools, APM tools)
|9) Governance and Compliance||The solution should be able to enforce separation of duties, access control, maintain a system of record of changes for compliance purposes, maintain release traceability back to requirements, enforce information security checks and policies||- Separation of duties including role based access control to pipelines and deployment environment
- Credential management
- Approver gates
- Traceability to requirements
- Security checks
- Change logs
- Compliance reports
|10) Analytics and reporting||The solution should be able to provide analytics and reports to visualize release status & statistics, pipeline status & statistics, deployment status & statistics, environment status & statistics, change reports for compliance||- Release status & statistics like release plan, timeline, status
- Pipeline status & statistics like success, failure rates, pipeline heath
- Deployment status & statistics like deployment frequency, change failure rates (DORA metrics)
- Environment status & statistics like usage, availability, downtime, failure rates
- Change logs, approvers & compliance reports - Release Evidence
|11) Enterprise readiness||The solution should be able to support support enterprise capabilities such as High Availability / Disaster Recovery, secure storage of data, access control||- High Availability, Disaster Recovery
- Secure data storage
- Separation of duties and access control
A collection of short demonstrations that show GitLab's CD capabilities.
|Market Requirements||How GitLab Delivers||GitLab Stage/Category||Demos|
|1) Release Planning||A GitLab Release is a snapshot of the source, build output, artifacts, and other metadata associated with a released version of your code. The release evidence contains the bill of material of the release i.e., everything in the release including release milestones and release assets||Release Stage: Release Orchestration, Release Evidence||tbd|
|2) Manage the artifacts and binary assets||In the CD usecase, artifacts already created in the CI usecase can be viewed, downloaded, edited and shared. Various formats including maven, npm, nuget, amongst others are supported||Package stage: Package Registry, Container Registry, Dependency Proxy||tbd|
|3) Environments management (i.e., Operating Environment)||GitLab leverages partners like Terraform to model and discover hybrid environments. GitLab supports storing these environments and configurations as code, maintaining a system of record of various environments and their configurations as code, snapshot view of the environments in a dashboard and deploying to hybrid infrastructure environments. While you can use GitLab CD to deploy apps almost anywhere, GitLab naturally supports Kubernetes, with a keen sight to improving non-cloud native support||Configure stage: Auto DevOps, Kubernetes Management, Runbooks, Infrastructure as Code, Environments Dashboard
Terraform based infrastructure automation
|4) Database Provisioning||GitLab integrates with Terraform to enable model and provision infrastructure, including databases. GitLab enables Infrastructure as code for Terraform - maintaining infrastructure and configurations of environments in source control within GitLab||Terraform based infrastructure automation, Infrastructure as code with Terraform and GitLab||tbd|
|5) Middleware Provisioning||GitLab integrates with Terraform to enable model and provision infrastructure, including middleware. GitLab enables Infrastructure as code for Terraform - maintaining infrastructure and configurations of environments in source control within GitLab||Terraform based infrastructure automation, Infrastructure as code with Terraform and GitLab||tbd|
|6) Application Release Automation & Delivery||GitLab supports multiple advanced deployment strategies including progressive and incremental delivery. Review apps provide an opportunity to preview web applications before deployment, feature flags allow you to control the audience of features. GitLab CI/CD pipelines can be architected to configure and sequence your pipeline, gitlab-ci.yml file can be used to setup and define pipeline versions. Additionally, perform post deployment monitoring using browser performance testing for web applications and application performance testing using the monitor stage capabilities||Release Stage: Continuous Delivery, Review Apps, Advanced Deployments, Feature Flags, Release Evidence, Secrets Management
Monitor Stage: Metrics, Logging, Tracing, Error Tracking
Verify: Browser Performance Testing
| Application Release Automation & Delivery
|7) Resource allocation and management||Users can utilize GitLab CI and Monitoring capabilities to chart their resource allocation and consumption and setup alerts when thresholds have been met as well as view cost implications of proposed Infrastructure as Code changes in their Merge Request. Native support for this capability is part of the GitLab roadmap||Cluster Cost Optimization Limiting the number of deployments to a specific resource - If multiple jobs belonging to the same resource group are enqueued simultaneously, only one of the jobs is picked by the runner, and the other jobs wait until the resource_group is free.||tbd|
|8) Multi Platform/Cloud/Integration Support||GitLab can be installed on AWS, Google Cloud, Azure and can be deployed to multiple clouds including AWS, Google Cloud, Azure, VMware, IBM amongst others. GitLab installations support only Linux based distributions.||All Stages: GitLab Installation Clouds Cloud Deployment Targets, Install Requirements, Integrations||tbd|
|9) Governance and Compliance||Compliance testing and audit controls are built into GitLab's CI pipelines.||Compliance at GitLab
Manage Stage: Audit Events, Audit Logs, Audit Reports, Compliance Management, [Release Evidence] (https://docs.gitlab.com/ee/user/project/releases/#release-evidence)
Secure Stage: License Compliance, Dependency Scanning
|10) Analytics and reporting||GitLab provides a variety of Executive Insights, Productivity Insights, Operations Insights and Security Insights||All Stages:
Executive Insights DevOps Score, Value Stream Analytics, CI/CD Charts, Roadmaps
Operations Insights: Operations Dashboard, Environments Dashboard, Environments
Other insights such as Productivity Insights and Developer Insights are applicable to other usecases
|11) Enterprise readiness||GitLab supports enterprise grade authentication and authorization, access management, audit information, compliance, high availability and disaster recovery, geographic replication for great user experience across locations, large user reference architectures, infrastructure as code amongst others||All Stages particularly Manage Stage, Enablement Section||tbd|
|1) Unified deployment and monitoring strategies||GitLab provides the ability to visualise what goes into production (via Review Apps), what to deploy to production (via Feature Flags), who to deploy it to (via Progressive Delivery and deployment strategies like Canary), monitor performance of deployment (via browser performance testing, performance monitoring/tracing) and rollback based on performance via post deployment monitoring, all from a single application.||Strong Performer in the Forrester Wave for Continuous Delivery and Release Automation Q2 2020
- James Governor from RedMonk talking about GitLab’s focus on Progressive Delivery - GitLab is an interesting case for a couple of key reasons:
a) It has a significant and fast growing enterprise footprint, notably with its CD product.
b) It develops software at high velocity, with a monthly release schedule and a strong bias to shipping, so you can watch improvements in real time. The company ships open source software and has a strong culture of corporate observability.
|Unified and integrated monitoring and deployment strategies|
|2) Automated and Integrated Continuous Delivery||GitLab Auto DevOps simplifies and accelerates delivery with a complete delivery pipeline out of the box. Simply commit code and GitLab does the rest. GitLab also provides an integrated dashboard that spans across the CI/CD pipeline status and deployment status||- The built-in features of Auto DevOps have made our experience more rewarding and effective - Daniel B on G2 Peer Reviews
- It has really helped us to shorten lead time, which has positively affected every single metric we measure - Chorus.ai
- GitLab Auto DevOps also delivered the technology component required for true CI/CD, accelerating product delivery with an end-to-end pipeline out of the box. - ExtraHop Networks
|Automated and integrated Continuous Delivery|
|3) Modern Compliance for Continuous Delivery||GitLab simplifies compliance with helping customers define granular policies such as who can approve MR, push to production, segregation of duties, release governance etc, define security policies such as license compliance, password policies, credential inventories etc, track adherence to compliance such as user actions such as commits, permission changes, approval changes, logins, password changes, release evidence etc - all within a single application which allows traceability from deployment all the way back to code changes and requirements||- During a recent audit for SOC2 compliance, the auditors said that Chorus had the fastest auditing process they have seen and most of that is due to the capabilities of GitLab - Chorus.ai
- There is no longer a need for license keys or several different logins, because of the built-in security and compliance. Software is deployed anywhere, which relieves developers localization constraints.
The message house provides a structure to describe and discuss the value and differentiators for Continuous Delivery with GitLab.
For a list of analysts with a current understanding of GitLab's capabilities for this use case, please reach out to Analyst Relations via Slack (#analyst-relations) or by submitting an issue and selecting the "AR-Analyst-Validation" template.
Gartner Peer Insights reviews constitute the subjective opinions of individual end users based on their own experiences, and do not represent the views of Gartner or its affiliates. Reviews have been edited to account for errors and readability.
"GitLab is the most preferred service in the world and its user community is very wide. We can authorize project or branch based user authorization on GitLab. In addition, continuous deployment integrations can be done very quickly. In addition, you can create merge requests within the constraints you want and easily manage them. It is very easy to prevent conflicts. A service that must be used for software development teams."
- Software Development Lead, Gartner Peer Insights Review
"GitLab supports my [company's] entire continuous integration and continous delivery(Ci/Cd) process. It has a smooth integration with Jira , which we use for software process management. "
- Principal Android Engineer, Gartner Peer Insights Review
"At my company we use [GitLab] to host all the different projects as it very easy to use and collaborate with may developers. Every project has access to specific set of people who has access to view, build features in the project. Peer reviews are very simple to view the code changes in a split window. Easy to create pipelines with CI/CD"
- Software Engineer, Gartner Peer Insights Review
"For me, the most impressive part of their toolchain would have to be the CI/CD Platform, the ease of use and it's flexibility is wonderful. Building CI/CD pipelines never felt easier."
- Luca Favaretto Marques, Software Engineer, Mid-Market, G2
"GitLab does a great job at creating a unified experience for our developers. We previously had several best-of bread solutions (code repository, issue tracker, CI runners and deployment pipelines) co-exist between our team, but we managed to consolidate this into a single solutions, which meets most of our needs."
- Joël Cox, Partner, Small Business, G2
"The main reason why I chose GitLab over years of using Github was because of their CI/CD tool. Github doesn't come with it out of the box and we needed a solution in a team where nobody is a DevOps but js developers"
- Cynthia Sanchez, Founder, Product-Manager, SMB, G2
"GitLab has helped me master Git, CI/CD pipelines, and software development in general through the many resources it offers. I don't have to spend time learning so many separate services and figuring out how everything fits together. I would strongly recommend it to anyone looking for a great tool for their development activities."
- Justin Smith, System Administrator, Mid-Market, G2
Request reference calls by pressing the "Find Reference Accounts" button at the top of your stage 3 or later opportunity.
The following section provides resources to help TAMs lead capabilities adoption, but can also be used for prospects or customers interested in adopting GitLab stages and categories.
This table shows the recommended use cases to adopt, links to product documentation, the respective subscription tier for the use case, and product analytics metrics.
|Feature / Use Case||F||P||U||Product Analytics||Notes|
|Try Auto DevOps||x||x||x||instance_auto_devops_enabled and counts.ci_pipeline_config_auto_devops|
|Setup GitLab CI||x||x||x||Having a .gitlab-ci.yml is the basis of using GitLab for deployment|
|Setup an Environment||x||x||x||counts.environmnets|
|Deploy to an Environment||x||x||x||counts.deployments, usage_activity_by_stage_monthly.release.deployments|
|Create a Release||x||x||x||counts.releases|
|Create Release Evidence||x||x||x|
|Setup and use feature flags||x||x||x|
The following will link to enablement and training videos and content.
Why choose GitLab Core/Free for CD? We are committed to lowering the barriers for organizations embarking on their CI/CD journey. In March 2020, we announced a number of features CD features that are moving to core.
Key features with Core/Free:
Why choose GitLab Premium for CD? Premium is ideal for scaling organizations for multi team usage, enabling organizations scale their DevOps delivery with advanced configuration, consistent standards and compliance. Take advantage of enterprise level priority support, including 24/7 uptime support, a named Technical Account Manager (TAM), and live upgrade assistance.
Key features with Premium:
Why choose GitLab Ultimate for CD? Ultimate is ideal for projects with executive visibility while managing priorities, security, risk, and compliance.
Key features with Ultimate:
Check out this introductory video to learn the basics of CI/CD as software development best practices and how they apply with GitLab CI/CD!
Inventory of key pages in the buyer's Journey
learning about the problem
looking for solution ideas
is this the right solution
|topic page?||solution page||proof points|
|-etc?||- product page x
- product page y
- product page z