doc/development/database/pg_upgrade_timeline.md
GitLab implements annual PostgreSQL database version upgrades to maximize operational efficiency and capitalize on enhanced functionality. This critical infrastructure update impacts multiple teams and requires coordination to ensure minimal disruption to our production environment.
This document establishes a comprehensive framework outlining the responsibilities of each team involved in the PostgreSQL upgrade process at GitLab. By clearly defining ownership of specific tasks and establishing a timeline for completion, we aim to standardize our approach, mitigate risks, and ensure successful implementation across all database environments.
The timeline detailed in this document serves as a roadmap for our PostgreSQL upgrade journey, ensuring that all necessary steps are properly sequenced and executed. By following this structured approach, we can deliver the best possible experience to our customers, minimizing downtime and maintaining the high level of service they expect from GitLab.
The following sections detail the specific responsibilities assigned to each team, along with the recommended sequence of activities. This framework will serve as the standard operating procedure for all future PostgreSQL version upgrades.
Owner: All Cross-functional Teams
Teams: Database Operations Team, Database Frameworks Team, Build Team, Durability Team, Geo Team, Dedicated Team
This foundational phase initiates the mobilization of resources, with all teams conducting strategic planning for the forthcoming PostgreSQL version implementation.
Team Tasks: All teams to prepare their work and to allocate team resources for the upcoming PostgreSQL update.
Analyze and propose the new PostgreSQL version for GitLab.
Owner: Database Operations Team
Team Tasks:
Ensure the compatibility of GitLab.com to the new proposed PostgreSQL version.
Owner: Database Frameworks Team
Team Tasks:
Ensure the compatibility of GitLab Dedicated cloud-managed PostgreSQL to the stable version used by GitLab.com.
Owner: Dedicated Team
Team Tasks:
Owner: Geo Team
Team Tasks: Verify the upgrade procedure for the PostgreSQL new version on Geo installations;
Validates the bundled PostgreSQL upgrade based on GitLab.com production-stable version. This usually happens on a major release only, around May every year.
Owner: Build Team
Team Tasks:
Owner: Build Team
Team Tasks:
pg-upgrade utility tool, allowing for planned and controlled PostgreSQL upgrades;Upgrade GitLab.com environments.
Owner: Database Operations Team
Team Tasks:
Proceed with updating the tooling based on the stable production version of GitLab.com.
This upgrade migrates customers to the new PostgreSQL version, thereby discontinuing support for the current version they are using.
Owner: Build Team
Team Tasks: Auto-upgrade the PostgreSQL version for non-high availability environments;
Owner: Build Team
Team Tasks:
Proceed with GitLab Dedicated cloud-managed upgrade.
Owner: Dedicated Team
Team Tasks: