Infrastructure Platforms
The Infrastructure Platforms department is responsible for the availability, reliability, performance, and scalability of GitLab.com and other supporting services
Mission
The Infrastructure Platforms department enables GitLab (the company) to deliver a single DevOps application, and GitLab SaaS users to focus on generating value for their own businesses by ensuring that we operate an enterprise-grade SaaS platform.
The Infrastructure Platforms department does this by focusing on availability, reliability, performance, and scalability efforts.
These responsibilities have cost efficiency as an additional driving force, reinforced by the properly prioritized dogfooding efforts.
Many other teams also contribute to the success of the SaaS platform because GitLab.com is not a role.
However, it is the responsibility of the Infrastructure Platforms department to drive the ongoing evolution of the SaaS platform, enabled by platform observability data.
Getting Assistance
If you’re a GitLab team member and are looking to alert the Infrastructure Platforms teams about an availability issue with GitLab.com, please find quick instructions to report an incident here: Reporting an Incident.
For all other queries, please see the getting assistance page.
Vision
The Infrastructure Platforms department operates a fast, secure, and reliable SaaS platform to which (and with which) everyone can contribute.
Integral part of this vision is to:
- Build a highly performant team of engineers, combining operational and software development experience to influence the best in reliable infrastructure.
- Work publicly in accordance with our transparency value.
- Use our own product to prepare, build, deliver work, and support the company strategy.
- Align our strategy with the industry trends, company direction, and end customer needs.
Direction
The direction is accomplished by using Objectives and Key Results (OKRs).
Other strategic initiatives to achieve this vision are driven by the needs of enterprise customers looking to adopt GitLab.com. The GitLab.com strategy catalogs top customer requests for the SaaS offering and outlines strategic initiatves across both Infrastructure Platforms and Stage Groups needed to address these gaps.
We are also Product Development
Unlike typical companies, part of the mandates of our Security, Infrastructure, and Support Departments is to contribute to the development of the GitLab Product. This follows from these concepts, many of which are also behaviors attached to our core values:
As such, everyone in the department should be familiar with, and be acting upon, the following statements:
- We should all feel comfortable contributing to the GitLab open source project
- If we need something, our first instinct should be to get it into the open source project so it can be given back to the community
- Try to get it in the open source project first, rather than later, even if it’s 2x harder
- We should be using the whole product to do our jobs
- We are all familiar with our Dogfooding process and follow it
- We should not expect new team members to join the company with these instincts, so we should be willing to teach them
- It is part of managers’ responsibility to teach these values and behaviors
Organization structure
(click the boxes for more details)
flowchart LR
I[Infrastructure Platforms]
click I "/handbook/engineering/infrastructure-platforms/"
I --> TPM[Technical Program Management]
click TPM "/handbook/engineering/infrastructure/technical-program-management/"
I --> DA[Data Access]
click DA "/handbook/engineering/infrastructure/data-access/"
I --> DE[Developer Experience]
click DE "handbook/engineering/infrastructure-platforms/developer-experience"
I --> SP[SaaS Platforms]
click SP "/handbook/engineering/infrastructure/platforms/"
DA --> DF[Database Framework]
click DF "/handbook/engineering/infrastructure-platforms/data-access/database-framework/"
DA --> DO[Database Operations]
click DO "/handbook/engineering/infrastructure-platforms/data-access/database-operations/"
DA --> Durability
click Durability "/handbook/engineering/infrastructure-platforms/data-access/durability/"
DA --> Git
click Git "/handbook/engineering/infrastructure-platforms/data-access/git/"
DA --> Gitaly
click Gitaly "/handbook/engineering/infrastructure-platforms/data-access/gitaly/"
SP --> DE[Delivery]
click DE "/handbook/engineering/infrastructure/team/delivery/"
DE --> Deployments
DE --> Releases
SP --> Ops
click Ops "/handbook/engineering/infrastructure/team/ops/"
SP --> Foundations
click Foundations "/handbook/engineering/infrastructure/team/foundations/"
SP --> Scalability
click Scalability "/handbook/engineering/infrastructure/team/scalability/"
Scalability --> Observability
Scalability --> Practices
SP --> D[Dedicated]
click D "/handbook/engineering/infrastructure/team/gitlab-dedicated/"
D --> E[Environment Automation]
click E "/handbook/engineering/infrastructure/team/gitlab-dedicated/"
D --> PSS[Public Sector Services]
click PSS "/handbook/engineering/infrastructure/team/gitlab-dedicated/us-public-sector-services/"
D --> Switchboard
click Switchboard "/handbook/engineering/infrastructure/team/gitlab-dedicated/switchboard/"
DE --> DA[Development Analytics]
click DA "handbook/engineering/infrastructure-platforms/developer-experience"
DE --> DT[Developer Tooling]
click DT "handbook/engineering/infrastructure-platforms/developer-experience"
DE --> FR[Feature Readiness]
click FR "handbook/engineering/infrastructure-platforms/developer-experience"
DE --> PE[Performance Enablement]
click PE "handbook/engineering/infrastructure-platforms/developer-experience"
DE --> TG[Test Governance]
click TG "handbook/engineering/infrastructure-platforms/developer-experience"
Design
The Infrastructure Library contains documents that outline our thinking about the problems we are solving and represents the current state for any topic, playing a significant role in how we produce technical solutions to meet the challenges we face.
Dogfooding
The Infrastructure Platforms department uses GitLab and GitLab features extensively as the main tool for operating many environments, including GitLab.com.
We follow the same dogfooding process as part of the Engineering function, while keeping the department mission statement as the primary prioritization driver. The prioritization process is aligned to the Engineering function level prioritization process which defines where the priority of dogfooding lies with regards to other technical decisions the Infrastructure Platforms department makes.
When we consider building tools to help us operate GitLab.com, we follow the 5x rule
to determine whether to build the tool as a feature in GitLab or outside of GitLab. To track Infrastructure’s contributions back into the GitLab product, we tag those issues with the appropriate Dogfooding label.
At GitLab, we have a handbook first policy. It is how we communicate process changes, and how we build up a single source of truth for work that is being delivered every day.
The handbook usage page guide lists a number of general tips. Highlighting the ones that can be encountered most frequently in the Infrastructure Platforms department:
- The wider community can benefit from training materials, architectural diagrams, technical documentation, and how-to documentation. A good place for this detailed information is in the related project documentation. A handbook page can contain a high level overview, and link to more in-depth information placed in the project documentation.
- Think about the audience consuming the material in the handbook. A detailed run through of a GitLab.com operational runbook in the handbook might provide information that is not applicable to self-managed users, potentially causing confusion. Additionally, the handbook is not a go-to place for operational information, and grouping operational information together in a single place while explaining the general context with links as a reference will increase visibility.
- Ensure that the handbook pages are easy to consume. Checklists, onboarding, repeatable tasks should be either automated or created in a form of template that can be linked from the handbook.
- The handbook is the process. The handbook describes our principles, and our epics and issues are our principles put into practice.
Projects
Classification of the Infrastructure Platforms department projects is described on the infrastructure department projects page.
The infrastructure issue tracker is the backlog and a catch-all project for the infrastructure teams and tracks the work our teams are doing–unrelated to an ongoing change or incident.
In addition to tracking the backlog, Infrastructure Platforms department projects are captured in our Infrastructure Platforms department Epic as well as in our Quarterly Objectives & Key Results
Supporting Product Features
We have a model that we use to help us support product features. This model provides details on how we collaborate to ship new features to Production.
Ownership
The Infrastructure Platforms team maintains responsibility for the underlying infrastructure on which customer-facing services run. Specific ownership details are in the GitLab Service Ownership Policy
Stable Counterparts
Infrastructure Platforms SREs may be aligned with stage groups as stable counterparts.
Stable Counterparts are used as a framework for managing reliable services at GitLab. The framework provides guidelines for collaboration between Stage Groups and Infrastructure Platforms Teams.
Interviewing
The Infrastructure Platforms department hires for a number of different technical specialisms and positions across its teams. This Infrastructure Platforms Interviewing Guide offers more detail on some of our regular openings, interview process and other useful information related to applying to jobs with us. More information on our current openings can be found on the careers page.
Common Links
Slack Channels
General Issue Trackers
Resources
Other Pages
Vision
Provide other groups with well-designed interfaces and patterns for efficient
data access that is scalable, reliable, performant, and sustainable for the long
term.
All Team Members
The following people are permanent members of teams that belong to the Data
Access Sub-department:
Database Framework
The Database Framework
team develops solutions for scalability, application performance, data growth and
developer enablement especially where it concerns interactions with the
database.
Developer Experience is a newly formed group, born from the strategic merger of the Engineering Productivity team and the Test Platform sub-department. This exciting combination allows us to take a holistic approach to delivering cutting-edge Platform capabilities.
The GitLab Delivery Stage focuses on enhancing the reliability, efficiency, and speed of GitLab’s end-to-end software delivery across all platforms and offerings.
Vision
The Tenant Scale group is working towards a horizontally scalable, fault-tolerant architecture for gitlab.com. It is accomplishing this by introducing Cells at the infrastructure layer and Organizations at the application layer, along with Geo for end-to-end resiliency.
Team Members
Group Leads
Name |
Role |
Gerardo Lopez-Fernandez |
Engineering Fellow |
Kamil Trzciński |
Senior Distinguished Engineer |
Steve Xuereb |
Staff Site Reliability Engineer |
Thong Kuah |
Principal Engineer |
Rémy Coutable |
Principal Engineer |
Nick Nguyen |
Senior Engineering Manager |
Geo
Organizations
Cells Infrastructure
Resources