PostgreSQL 업그레이드 타임라인
GitLab v19.5요약
GitLab은 운영 효율을 높이고 개선된 기능을 활용하기 위해 매년 PostgreSQL 데이터베이스 버전을 업그레이드합니다. 이 문서는 GitLab의 PostgreSQL 업그레이드 과정에 참여하는 각 팀의 책임을 정리한 전체 프레임워크를 제시합니다.
GitLab은 운영 효율을 높이고 개선된 기능을 활용하기 위해 매년 PostgreSQL 데이터베이스 버전을 업그레이드합니다. 이 인프라 업데이트는 여러 팀에 영향을 미치며, 프로덕션 환경의 중단을 최소화하려면 팀 간 조율이 필요합니다.
이 문서는 GitLab의 PostgreSQL 업그레이드 과정에 참여하는 각 팀의 책임을 정리한 전체 프레임워크를 제시합니다. 개별 과업의 소유권을 명확히 하고 완료 일정을 정함으로써, 접근 방식을 표준화하고 위험을 줄이며 모든 데이터베이스 환경에서 업그레이드를 완수하는 것을 목표로 합니다.
이 문서에 정리한 일정은 PostgreSQL 업그레이드 여정의 로드맵 역할을 하며, 필요한 모든 단계가 올바른 순서로 실행되도록 보장합니다. 이 구조화된 접근 방식을 따르면 다운타임을 최소화하고 고객이 GitLab에 기대하는 서비스 수준을 유지하면서 최선의 경험을 제공할 수 있습니다.
다음 절에서는 각 팀에 배정된 구체적인 책임과 권장 활동 순서를 설명합니다. 이 프레임워크는 향후 모든 PostgreSQL 버전 업그레이드의 표준 운영 절차로 사용합니다.
일정 및 팀별 책임#
1월: 팀 인지 및 준비#
담당: 모든 교차 기능 팀
팀: Database Operations Team, Database Frameworks Team, Build Team, Geo Team, Dedicated Team
이 준비 단계에서는 자원 동원을 시작하며, 모든 팀이 다가오는 PostgreSQL 버전 적용을 위한 전략 계획을 수립합니다.
팀 과업: 모든 팀은 다가오는 PostgreSQL 업데이트에 대비해 작업을 준비하고 팀 자원을 배정합니다.
2월~4월: GitLab.com 플랫폼 호환성 확보#
업그레이드 주기 전략 수립#
GitLab에 적용할 새 PostgreSQL 버전을 분석하고 제안합니다.
담당: Database Operations Team
팀 과업:
- 적용 전략을 상위 수준으로 요약합니다.
- New Project 템플릿에 따라 업그레이드 에픽에 목적과 GitLab 이 얻을 이점을 기록합니다.
- 이해관계자와 교차 기능 팀을 초대해 에픽에서 직접 협업하고 의견을 남기도록 합니다.
PostgreSQL 테스트 호환성 및 성능#
제안된 새 PostgreSQL 버전에 대해 GitLab.com의 호환성을 확인합니다.
담당: Database Frameworks Team
팀 과업:
- 새 PostgreSQL 버전을 야간 스펙에 통합합니다.
- 새 PostgreSQL 버전과의 호환성을 확인합니다.
- PostgreSQL 불일치 사항, 기술적 발견, 야간 스펙 결과를 업그레이드 에픽에 연결된 이슈로 기록하고 공유합니다.
- 전면 테스트 결과 GitLab 이 새 PostgreSQL 버전에서 정상 동작함을 업그레이드 에픽에 기록하고 교차 기능 팀에 전달합니다.
클라우드 관리형 PostgreSQL 테스트 호환성#
GitLab Dedicated의 클라우드 관리형 PostgreSQL 이 GitLab.com에서 사용하는 안정 버전과 호환되는지 확인합니다.
담당: Dedicated Team
팀 과업:
- 안정적으로 지원되는 PostgreSQL 버전에 대한 RDS 및 CloudSQL 업그레이드 문서를 검토합니다.
- AWS와 GCP에서 현재 안정 PostgreSQL 버전으로 업그레이드를 테스트합니다.
- 롤아웃 일정과 고객 안내 계획을 기록합니다. 롤아웃 일정은 업그레이드 에픽에 연결합니다.
Geo 업그레이드 준비#
담당: Geo Team
팀 과업: Geo 설치 환경에서 새 PostgreSQL 버전의 업그레이드 절차를 검증합니다.
5월~7월: 번들 PostgreSQL 호환성 확보#
GitLab.com 프로덕션 안정 버전을 기준으로 번들 PostgreSQL 업그레이드를 검증합니다. 이 작업은 보통 메이저 릴리스에서만, 매년 5월 무렵에 진행합니다.
지원 배포 방식별 번들 PostgreSQL 업그레이드 검증#
담당: Build Team
팀 과업:
- Docker, Kubernetes, Omnibus에서 PostgreSQL 호환성을 확인하기 위해 배포 방식별 테스트를 수행합니다.
- 자동 업그레이드 경로를 빠짐없이 테스트합니다.
번들 PostgreSQL 업그레이드 선택 지원 제공#
담당: Build Team
팀 과업:
- 설치 가이드에 배포 방식별 업그레이드 절차를 기록합니다.
- 기존 설치 환경은
pg-upgrade유틸리티 도구로 검증된 업그레이드 경로를 사용할 수 있으며, 계획하고 통제된 방식으로 PostgreSQL을 업그레이드할 수 있습니다.
8월~10월: 프로덕션 전 준비 및 GitLab.com 업그레이드#
GitLab.com 환경을 업그레이드합니다.
담당: Database Operations Team
팀 과업:
- DDL 작업이 업그레이드 과정과 충돌하지 않도록 데이터베이스 업그레이드 DDL 잠금을 설정합니다.
- STG 데이터베이스 2개와 PRD 데이터베이스 2개를 업그레이드합니다. 보통 CI + SEC 또는 Registry 입니다. 대상 데이터베이스는 해마다 달라질 수 있습니다.
- 나머지 STG 데이터베이스 2개와 PRD 데이터베이스 2개를 업그레이드합니다. 대상 데이터베이스는 해마다 달라질 수 있습니다.
- GitLab 이 새 PostgreSQL 버전으로 전환을 마쳤음을 교차 기능 팀에 전달합니다.
11월~1월: 안정 릴리스 통합#
GitLab.com의 프로덕션 안정 버전을 기준으로 도구를 업데이트합니다.
이 업그레이드로 고객이 새 PostgreSQL 버전으로 이전하며, 현재 사용 중인 버전에 대한 지원은 종료됩니다.
Self-Managed 단일 노드 Omnibus 인스턴스 자동 업그레이드#
담당: Build Team
팀 과업: 고가용성이 아닌 환경의 PostgreSQL 버전을 자동으로 업그레이드합니다.
번들 PostgreSQL 신규 버전을 기본값으로 지정#
담당: Build Team
팀 과업:
- 안정 번들 PostgreSQL 버전이 모든 신규 설치의 기본 데이터베이스 버전이 됩니다.
- 고객 도입 현황을 모니터링하고 발생하는 문제를 처리합니다.
- 관련 문제는 업그레이드 에픽에 기록합니다.
클라우드 관리형 PostgreSQL 업데이트#
GitLab Dedicated 클라우드 관리형 업그레이드를 진행합니다.
담당: Dedicated Team
팀 과업:
- UAT 업그레이드: USPubSec 및 Commercial Dedicated 환경을 업그레이드합니다.
- 프로덕션 테넌트 업그레이드: 프로덕션 USPubSec 및 Commercial Dedicated 환경을 업그레이드합니다.
- 코드 정리 및 롤아웃 후속 작업: Instrumentor의 기본 PostgreSQL 버전을 업데이트합니다.