Product categories

Introduction

We want intuitive interfaces both within the company and with the wider community. This makes it more efficient for everyone to contribute or to get a question answered. Therefore, the following interfaces are based on the product categories defined on this page:

Definitions

The functionality of GitLab is ordered in 4 level hierarchy:

  1. Stages: One of the 7 DevOps lifecycle stages (see below), one of the two areas that span the entire lifecycle, or a non-lifecycle stage like Auth or BizOps.
  2. Categories: High-level capabilities that may be a standalone product at another company. e.g. Portfolio Management.
  3. Capabilities: An optional group of functionality that is made up of smaller discrete features. e.g. Epics. Capabilities are listed as the second tier of bullets below. We have feature categories but it is incomplete and not used everywhere.
  4. Features: Small, discrete functionalities. e.g. Issue weights. Some common features are listed within parentheses to facilitate finding responsible PMs by keyword. Features are maintained in features.yml.

DevOps lifecycle stages

DevOps lifecycle

At GitLab the Dev and Ops split is different because our CI/CD functionality is one codebase that falls under Ops.

Dev

  1. Manage - Jeremy
    • Reporting & Analytics
      • Cycle Analytics
      • DevOps Score (previously Conversational Development Index / ConvDev Index)
      • Usage statistics (Version check (incl. version.gitlab.com), Usage ping)
  2. Plan - Victor
    • Project management
      • Issue tracker (assignees, milestones, time tracking, due dates, labels, weights, quick actions, email notifications, todos, search, Elasticsearch integration, Jira and other third-party issue management integration)
      • Issue boards
    • Portfolio management
      • Epics
      • Roadmaps
    • Service desk
    • Chat integration (Mattermost, Slack)
    • Markdown
  3. Create - Victor and James and Andreas
    • Source code management
      • Version control / Git repository management (Commits, file locking, LFS, protected branches, project templates, import/export, mirroring, housekeeping (e.g. git gc), hooks) - James
      • Gitaly - James
      • Snippets - Andreas
    • Code review (merge requests, diffs, approvals) - Victor
    • Web IDE - James
    • Wiki - Andreas
    • Admin Area - Andreas
  4. Auth - Jeremy
    • User management & authentication (incl. LDAP, signup, abuse)
    • Groups and Subgroups
    • Navigation
    • Audit log
    • GitLab.com (our hosted offering of GitLab)
    • Subscriptions (incl. license.gitlab.com and customers.gitlab.com)
    • Internationalization
  5. Gitter - n/a
  6. Production - Job
  7. Geo - Andreas

Ops

  1. Verify - Vivek
  2. Package - Josh
    • Container Registry
    • Binary Repository
  3. Release - Fabio
  4. Configure - Daniel
    • Application Control Panel
      • Auto DevOps
    • Infrastructure Configuration
    • Operations
      • ChatOps
    • Feature Management
      • Feature flags
  5. Monitor - Josh
    • Application Performance Monitoring (APM)
      • Metrics
      • Tracing
    • Infrastructure Monitoring
      • Cluster Monitoring
    • Production Monitoring
    • Error Tracking
    • Logging
  6. Secure - Fabio
    • Security Testing
      • Static Application Security Testing (SAST)
      • Dynamic application security testing (DAST)
      • Dependency Scanning
      • Container Scanning
      • License Management
      • Runtime Application Self-Protection (RASP)
  7. Distribution - Josh (note: the engineering backend team reports into the dev backend department)
    • Omnibus
    • Cloud Native Installation
  8. BizOps - Josh

Composed categories

GitLab also does the things below that are composed of multiple categories.

  1. Software Composition Analysis (SCA) = Dependency Scanning + License Management
  2. Interactive Application Security Testing (IAST) = Dynamic application security testing (DAST) + Runtime Application Self-Protection (RASP)