“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 optimize the software delivery process.
Why Continuous Delivery?
Consistent & repeatable release process - lesser manual processes imply the release process is less error prone and hence can be repeatable for every minimal change to the code
Faster time to market - automation of environment provisioning, software deployment and rapid feedback helps teams to iterate faster and rollback when necessary
Lower risk releases - by using progressive delivery practices such as advanced deployments: incremental / blue green / canary deployments, review apps, feature flags and a deployment performance feedback loop, organizations are able to validate their software before widespread deployment
Personas
User Persona
The typical user personas for this use case are:
DevOps Engineer, Devon
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.
Systems Administrator, Sidney
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.
Release Manager, Rachel
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.
Platform Engineer, Priyanka
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.
Application Operations, Allison
The operations specialist ensures that the deployed application is available and performing to the required performance parameters.
Buyer Personas
The typical buyer personas for this use case are:
Infrastructure Engineering Director, Kennedy
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.
Release and Change Management Director, Casey
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.
Industry Analyst Resources
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 Requirements
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
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 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
The GitLab Solution
How GitLab Meets the Market Requirements
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
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
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
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
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
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
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
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.
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
tbd
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
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.
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
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.
tbd
Message house
The message house provides a structure to describe and discuss the value and differentiators for Continuous Delivery with GitLab.
For details specific to each use case, and in respect of our contractual confidentiality agreements with Industry Analyst firms, our engagement plans are available to GitLab team members in the following protected document: IAR Use Case Profile and Engagement Plan.
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.
Competitive Comparison
Proof Points - Customer Recognitions
Quotes and reviews
Gartner Peer Insights
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.”
“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. "
“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”
“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.”
“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.”
“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”
“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.
Adoption Guide
The following section provides resources to help CSMs lead capabilities adoption, but can also be used for prospects or customers interested in adopting GitLab stages and categories.
Playbook Steps
Ask Discovery Questions to identify customer need
Complete the deeper dive discovery sharing demo, proof points, value positioning, etc.
Agree to adoption roadmap, timeline and change management plans, offering relevant services (as needed) and updating the success plan (as appropriate)
Lead the adoption plan with the customer, enabling teams and tracking progress through engagement and/or product analytics data showing use case adoption
Adoption Recommendation
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.
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:
Package repository: private repository for a variety of package managers
AutoDevOps: simplify build, test, deploy, monitor of your applications
Premium
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 Customer Success Manager (CSM), and upgrade assistance.
Operations dashboard- get a holistic view of the overall health of CI/CD pipelines and organization wide operations.
Environments dashboard - cross project environment based view to track deployment status
CI/CD for external repositories- connect your external repositories instead of moving your entire existing project(s) to get the benefits of GitLab CI/CD. This feature supports GitHub, Bitbucket Cloud, and any other Git-based repository.
Ultimate
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:
Compliance dashboard - high level view of project compliance status and merge request approvers
Container Scanning- analyze Docker images and check for potential security issues.
Dynamic Application Security Testing- analyze review applications to identify potential security issues on running web applications before deployment
Resources
What is CI/CD?
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!
Continuous Delivery with GitLab automates application delivery for DevOps engineers, Operations and Release Management Personnel via an out of the box, integrated solution to create application delivery pipelines that are consistent, repeatable and compliant.
Short Description
GitLab’s Continuous Delivery helps customers automate application deployment with repeatable and compliant delivery processes from a single application.
Long Description
As developers build code faster and organizations move towards more frequent deployments, automating the application delivery processes is crucial. Automation gives organizations better control over the deployments (what is delivered, when it is delivered, what features, who can approve etc) and allows teams to revert back to a previous state if needed. Without adequate controls, applications can become out of sync. Without adequate automation, organizations are forced to manually cobble up different tools to create a coherent Continuous Delivery pipeline.
Key-Values
CONSISTENT
EFFICIENT
COMPLIANT
Promise
- Build repeatable application delivery processes
- Integrated delivery pipeline to minimize manual cobbling together of tools - End-to-end visibility of delivery pipeline and status
- Frictionless compliance with adequate controls to manage the application delivery process
Pain points
- Deployment is too manual - Hard to maintain consistency in environments and configurations - Hard to detect performance issues due to deployment and rollback
- Manual/hard-coded processes - Too dependent on other teams - Team spending too much time in creating and maintaining toolset - No unified view of deployment status
- Cannot determine adequately what went into a release, who approved it, was the action authorized etc
Why GitLab
GitLab provides the ability to visualize 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 - all in a single application
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
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
Customer Proof points
Now it’s so easy to deploy something and roll it back if there’s an issue. It’s taken the stress and the fear out of deploying into production." – Dave Bullock, Wag!
- 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
- 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.