|Product Marketing||Technical Marketing|
|Parker Ennis ( @parker_ennis )||Itzik Gan-Baruch ( @iganbaruch )|
The Continuous Integration (CI) use case is a staple of modern software development in the digital age. It's unlikely that you hear the word "DevOps" without a reference to "Continuous Integration and Continuous Delivery" (CI/CD) soon after. In the most basic sense, the CI part of the equation enables development teams to automate building and testing their code.
When practicing CI, teams collaborate on projects by using a shared repository to store, modify and track frequent changes to their codebase. Developers check in, or integrate, their code into the repository multiple times a day and rely on automated tests to run in the background. These automated tests verify the changes by checking for potential bugs and security vulnerabilities, as well as performance and code quality degradations. Running tests as early in the software development lifecycle as possible is advantageous in order to detect problems before they intensify.
CI makes software development easier, faster, and less risky for developers. By automating builds and tests, developers can make smaller changes and commit them with confidence. They get earlier feedback on their code in order to iterate and improve it quickly increasing the overall pace of innovation. Studies done by DevOps Research and Assessment (DORA) have shown that robust DevOps practices lead to improved business outcomes. All of these "DORA 4" metrics can be improved by using CI:
GitLab CI/CD comes built-in to GitLab's complete DevOps platform delivered as a single application. There's no need to cobble together multiple tools and users get a seamless experience out-of-the-box.
The typical user personas for this usecase are the Developer, Development team lead, and DevOps engineer.
Software developers have expertise in all sorts of development tools and programming languages, making them an extremely valuable resource in the DevOps space. They take advantage of source code management and CI capabilities together to work fast and consistently deliver high quality code.
Development team leads care about their team's productivity and ability to deliver planned work on time. Leveraging CI helps maximize their team's productivity and minimize disruptions to planned tasks.
DevOps Engineers have a deep understanding of their organization's SDLC and provide support for infrastructure, environments, and integrations. CI makes their life easier by providing a single place to run automated tests and verify code changes integrated back into the SCM by development teams.
CI purchasing typically does not require executive involvement. It is usually acquired and installed via our freemium offering without procurement or IT's approval. This process is commonly known as shadow IT. When the upgrade is required, the Application Development Manager is the most frequent decision-maker. The influence of the Application Development Director is notable too.
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) Build automation||Streamlines application development workflow by connecting simple, repeatable, automated tasks into a series of interdependent automatic builds. This includes compiling, linking, packaging, and ensuring that the binary libraries/files output are ready for testing. Ensure software is consistently built without manual intervention, allowing developers to incorporate automated tests into their pipelines and start verifying/validating code changes. Teams have control over where automated jobs run either in the cloud (public/private/hybrid) or using shared infrastructure.||CI/CD pipelines, scalable resources, job orchestration/work distribution, caching, external repository integrations. Automated builds support a wide variety of languages, frameworks, and libraries development teams rely on.||Increase build speeds. Development teams work more efficiently by reducing otherwise manual work.|
|2) Test automation||Run and manage automated tests and validate changes before they're merged to production. This includes everything from basic to more in-depth tests and extends test automation into areas of functional, system, performance testing, and more. Ensure software is consistently tested to meet both technical and business requirements without manual intervention, enabling developers to get rapid feedback if their code changes introduce potential defects or vulnerabilities.||Ability to run isolated, automated, tests in CI/CD pipelines. Various tests may include but aren't limited to unit testing, code integration testing, regression testing, static code analysis, functional testing, and accessibility testing.||Catch potential errors sooner rather than later before they intensify.|
|3) Pipeline configuration management||The CI solution makes it easy for developers to automate the build and test workflow, specifically connecting to their source code repository, defining specific actions/tasks in build pipelines, and set parameters for exactly how/when to run jobs, using scripts and/or a GUI to configure pipeline changes. Configurations are easily reproducible and traceability exists to allow for quick comparisons and tracking of changes to environments.||Configurations via web UI or supports config-as-code in a human readable syntax, like YAML.||Maximize development time and improves productivity. Less manual work.|
|4) Visibility and collaboration||The solution enables development teams to have visibility into pipeline structure, specific job execution, and manage changes and updates to the pipeline jobs. The solution should enable teams to easily collaborate and make code changes, review work, and communicate directly. CI solutions should provide visibility and insights into the state of any build.||Pull requests or merge requests, commit history, automatic notifications/alerts, chatOps, code reviews, preview environments.||Faster feedback and less risk that changes cause builds to break.|
|5) Platform and language support||Many organizations use a mix of operating systems and code stacks within their development teams. The CI solution must operate on multiple operating systems (Windows, Linux, and Mac). The CI solution must also be language-agnostic supporting automation of build and test for a wide variety of development languages(Java, PHP, Ruby, C, etc.).||Option to use native packages, installers, downloads from source, and containers. Cloud-native platform support for public, private, or hybrid hosting. Runs on any OS.||Gives teams more flexibility, making it easier to adopt.|
|6) Pipeline security||Building security into an automated process ensures access to CI pipelines is consistently managed and controlled. Facilitate secure access to jobs/branches for the right users, safely store/manage sensitive data (such as secrets), and enforce governance and compliance policies without slowing anyone down.||Access control (like RBAC), enterprise-based access systems (like LDAP), data encryption, secrets management, and secure network connections.||Reduces business risk and protects intellectual property. Instills confidence in end-users.|
|7) Built in compliance||The solution has capabilities and policies built in to ensure that code being delivered is compliant and secure in the event of an audit. Be able to track and manage important events, trace them back to who performed specific actions, as well as when they occurred.||Automated security and compliance testing baked into CI pipelines. Automatic notifications for compliance issues. Audit controls and policies in place.||Reduce risk and discover flaws or potential violations earlier in the development process.|
|8) Easy to get started||The steps required to successfully setup CI should be simple and straightforward with minimal barrier to entry. The time and effort required for teams to get started from initial installation, configuration, onboarding users, and delivering value should be short (days, not weeks).||Supports both on-premise and SaaS implementations. Has robust documentation outlining steps to connect to a repository and get a CI server up and running quickly. Supports configuration-as-code or provides a GUI for initial configurations. Web interface to provision users.||Faster time to value.|
|9) DevOps tools and integrations||The solution supports strong integrations to both upstream and downstream processes such as project management, source code management and version control, artifact repositories, security scanning, compliance management, continuous delivery, etc. A CI solution with strong DevOps integrations means there's flexibility for users who need or want a balance between native capabilities and integrations.||Integrations with build automation tools (Gradle, Maven etc.), code analysis tools, binary repos, CD tools, IDEs, APIs, third party libraries or extensibility via plugins.||Increases efficiency. Lessens cost and the extra work that comes along with potential migrations.|
|10) Analytics||Capture and report on pipeline performance metrics and data throughout the build/test processes in order to identify bottlenecks, constraints, and other opportunities for improvement. Identify failing tests, code quality issues, and valuable trends in data indicative of overall application quality.||Build health, pipeline visualization, code coverage, logging, and performance metrics such as deployment frequency.||Increase efficiencies and reduce unnecessary costs.|
|11) Elastic scalability||The solution supports elastic scaling leveraging well understood, third-party, mechanisms whenever possible. Supports build scalability around existing native per-cloud and per-virtual environment vendor capabilities since they represent already debugged code for a complex problem, and the customers architects/operators are much more likely to be familiar with these mechanisms in their chosen infrastructure/cloud provider.||Supports ephemeral provisioning. Utilizes strong Kubernetes integration at-scale or supports non-Kubernetes scaling options. For example, use AWS Autoscaling Groups in AWS, GCP scaling in GCP, and Azure Autoscale in Azure.||Faster and more efficient. Reduce infrastructure overhead with on-demand resources. Provides flexibility to scale large workloads using popular cloud providers.|
|12) Artifact and dependency management||The solution allows for easy management of outputs and binaries from the build/test process. Manage repos, application packages, and containers with visibility into their dependencies.||View and download artifacts. Modify, store, and share images. Support for a wide range of common package formats and third-party integrations. Can be used on-prem or in the cloud.||Streamlines your CI/CD workflow and speeds up development.|
|Market Requirements||How GitLab Delivers||GitLab Stage/Category||Demos|
|Build automation||Architect CI pipelines with .gitlab-ci.yml files, structure CI processes, and build your app using GitLab Runner as the execution agent. Includes CI services, parent-child pipelines, multi-project pipelines, and merge trains||Verify stage: CI, GitLab Runner, Merge Trains||Build and test automation|
|Test automation||Run various automated tests in your CI pipelines to verify/validate code pre-production. Includes JUnit tests, integration testing, browser performance testing, code quality, code coverage, usability testing, and accessibility testing.||Verify stage: CI, Code Quality, Code Testing and Coverage, Web Performance, Usability Testing, Accessibility Testing||Build and test automation|
|Pipeline configuration management||AutoDevOps automatically sets your CI/CD configuration based on pre-configured CI/CD templates.||Verify stage
|Pipeline configuration management|
|Visibility and collaboration||See code quality analysis and code coverage details from source code. Get feedback on code changes directly in GitLab with merge requests (MRs) and issues: edit, comment, review, and share in one place. Preview changes in review apps, see commit history, and get automatic alerts on important events.||Verify stage: CI, Code Quality, Code Testing and Coverage
Create stage: Code Review, Source Code Management, Design Management
Configure stage: ChatOps
Release stage: Review Apps
|Visibility and collaboration|
|Platform and language support||GitLab is multi-platform (Unix, Windows, OSX, and any other platform that supports Go) and multi-language (Java, PHP, Ruby, C, and any other language).||All||tbd|
|Pipeline security||Security automation and scanning capabilities are built into GitLab's CI pipelines (SAST, DAST, dependency scanning, container scanning). Use Security scanning capabilities with Auto DevOps as well.||Verify stage: CI
|Built in compliance||Compliance testing and audit controls are built into GitLab's CI pipelines.||Manage stage: Audit Events, Compliance Management
Verify stage: CI
Secure stage: License compliance
|Easy to get started||GitLab supports config-as-code via .gitlab-ci.yml files and Auto DevOps to predefine configurations or a web UI to get started quickly and easily.||Verify stage: CI||Easy to get started|
|DevOps tools and integrations||Slack, Jira, Docker, Kubernetes, external repos like GitHub, Bitbucket, and any other Git-based repo. GitLab also supports various APIs and third-party libraries for connecting external services and build tools, as well as GDK and Frontend Foundations for community contributors.||All||tbd|
|Analytics||Manage and optimize your software delivery lifecycle with metrics and value stream insight in order to streamline and increase your delivery velocity. Visualize pipelines and report on performance metrics such as memory usage, load testing results, code complexity, and code coverage stastics.||Manage stage: Insights, Value Stream Management
Verify stage: CI, Code Quality, Code Testing and Coverage, Web Performance
|Elastic scalability||Orchestrate and distribute workloads for parallel builds. Autoscale with GitLab Runner.||Verify stage: CI, GitLab Runner
|Artifact and dependency management||Manage packages, repositories, and containers along with their dependencies in GitLab. View/download artifacts. Edit, store, and share images.||Package stage: Package Registry, Container Registry, Dependency Proxy||tbd|
|1) Leading SCM and CI in one application||GitLab enables streamlined code reviews and collaboration at proven enterprise scale, making development workflows easier to manage and minimizing context switching required between tools in complex DevOps toolchains. Users can release software faster and outpace the competition with the ability to quickly respond to changes in the market.||Forrester names GitLab among the leaders in Continuous Integration Tools in 2017, Alteryx uses GitLab to have code reviews, source control, CI, and CD all tied together. Axway overcomes legacy SCM and complex toolchain.|
|2) Rapid innovation||GitLab embraces an approach to rapid innovation that organizations undergoing digital transformations or adopting CI/CD also work diligently to implement internally with frequent, regular, releases delivered on a monthly basis. This provides end users with the latest and greatest in terms of capabilities/features, consistent security updates, and other incremental value adds over time. By GitLab "walking the talk" in regards to CI/CD, we understand the needs and pains that our users and organizations using GitLab face and share a mutual benefit from fully embracing this model centered around continuous improvement.||GitLab deploys over 160 times a day and is one of the 30 Highest Velocity Open Source Projects from the CNCF, we're voted as a G2 Crowd Leader 2018 with more than 170 public reviews and a 4.4 rating noting "Powerful team collaboration for managing software development projects," and have over 2,900 active contributors.|
|3) Built in security and compliance||GitLab comes with security features out-of-the-box and automated security testing with audit controls to facilitate policy compliance. Moving security testing farther left into the SDLC catches potential problems earlier and shortens feedback loops for developers. This means a faster time to market delivering secure, compliant, code and an increase in customer confidence.||Gartner mentions GitLab as a vendor in the Application Monitoring and Protection profile in its 2019 Hype Cycle for Application Security. GitLab positioned in the niche players quadrant of the 2020 Gartner Magic Quadrant for Application Security Testing. Wag! takes advantage of built-in security and faster releases with GitLab, and Glympse makes their audit process easier and remediates security issues faster.|
The message house provides a structure to describe and discuss the value and differentiators for Continuous Integration with GitLab.
The sample discovery questions below are meant to provide a baseline and help you uncover opportunities when speaking with prospects or customers who are not currently using GitLab for CI. See a more complete list of questions, provide feedback, or comment with suggestions for GitLab's CI discovery questions and feel free to contribute!
Please see the Jenkins-specific questions (GitLab internal only)
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. Obvious typos have been amended.
"We've migrated all our products from several "retired" VCS's to GitLab in only 6 months. - Including CI/CD process adoption - Without [loss] of code - Without frustrated developers - Without enormous costs"
- Application Development Manager, Gartner Peer Review
"Finally, the most amazing thing about GitLab is how well integrated the [GitLab] ecosystem is. It covers almost every step of development nicely, from the VCS, to CI, and deployment."
- Software Engineer, Gartner Peer Review
"One of the best ways to approach source code management (Git) and release pipeline management [CI/CD]. [Gitlab] gives you a simple yet highly customizable approach to release management which is a complicated topic."
- System Engineer, Gartner Peer Review
"The best software tool to manage all our projects and configure [CI/CD]. I will definitely recommend GitLab to everyone that wants to start a new project and doesn't want to use too many tools, GitLab has everything that you need to manage."
- Web Developer, Gartner Peer Review
"Over the years, we have successfully taken advantage of [Gitlab's] continuous deployment and integration mechanisms to build [and] maintain a robust and solid codebase."
- Co-Founder/CEO, Gartner Peer Review
"One of the best [tools] for continuous integration and continuous deployment. "
- Lead - Mobile Apps, Gartner Peer Review
"Overall, the experience with GitLab is very positive, it provides many powerful features especially regarding Continuous Integration and [Continuous Deployment]"
- Developer Analyst, Gartner Peer Review
"[GitLab's] UI is so easy and manageable to understand. Built-in continuous integration is one of its best [features]."
- Technical Evangelist, Gartner Peer Review
"GitLab isn't just for hosting your code, it's for the entire lifecycle of your code. Since they host code, it makes sense for them to provide services around development and getting code into production. Their integration into other services is really easy. They give you GitLab-CI for any CI/CD needs, driven from a yaml file."
- Testing Analyst, Gartner Peer Review
"This is really an amazing source code repository toolset which enables the robust CI practices which are inbuilt features of GitLab. This can be utilized well in any enterprise looking for the smooth CI/CD pipelines."
- Software Engineer, Gartner Peer Review
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 telemetry metrics.
|Feature / Use Case||F/C||Basic||S/P||G/U||Telemetry||Notes|
|Try Auto DevOps||x||x||x||x|
|Enable shared runners||x||x||x||x|
|Enable container registry across instance||x||x||x||x||GitLab.com container registry enabled at Group level|
|Build Instance Template Repository||x (Premium only)||x (Ultimate only)|
|Create custom instance-level project templates||x (Premium only)||x (Ultimate only)||GitLab.com can utilize group-level project templates|
|Add.gitlab-ci.yml file to your repositories root directory||x||x||x||x|
|Convert declarative Jenkinsfiles (Jenkins conversion only)||x||x||x||x|
|Run your pipeline! CI/CD examples can be viewed here||x||x||x||x|
|Make use of GitLab’s CI feature index||x||x||x||x|
The table includes free/community and paid tiers associated with GitLab's self-managed and cloud offering.
The following will link to enablement and training videos and content.
GitLab offers a variety of pre-packaged and custom services for our customers and partners. The following are service offers specific to this solution. For additional services, see the full service catalog.
Why choose Gitlab Premium/Silver for CI? As you scale CI throughout your organization and onboard additional teams, GitLab Premium/Silver unlocks a faster path to value for any number of teams with expert support, advanced configurations, and consistent standards.
Key features with Premium/Silver:
Why choose Gitlab Ultimate/Gold for CI? Achieve advanced DevOps maturity with executive visibility, deeper insights/analytics around usage, and additional capabilities to keep your environments secure and compliant across the board.
Key features with Ultimate/Gold:
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!