유연하고 안전하게 배포 Pipeline 운영하기
김동석 · 토스 · 토스 기술 블로그
소개
생산성, 안정성, 보안성을 모두 달성하기 위해선 ‘Pipeline’을 어떻게 설정해야 할까요? 다양하고 복잡한 토스뱅크의 배포 ‘Pipeline’를 안전하게 운영하기 위한 노력을 소개합니다.
AI 핵심 요약
400개가 넘는 GoCD Pipeline을 운영하면서 웹 UI만으로는 설정을 찾고 비교하거나 변경 이력을 추적하기 어려웠고, 복사·붙여넣기와 공통 변경 과정에서도 실수가 발생했습니다. 토스뱅크는 gocd-yaml-config-plugin으로 설정을 YAML 파일화해 Git에서 관리하고, 공통 동작은 Template으로 재사용하도록 했습니다. Template 관리에는 Pipeline 설정과 함께 저장할 수 있고 조건문으로 일부만 시험할 수 있는 Helm Template을 도입했으며, GitHub Actions CI에서 Rendering 결과를 검증해 의도치 않은 변경을 감지하도록 했습니다. 설정을 코드로 관리하고 재사용·테스트 가능하게 만들면 대규모 Pipeline도 더 잘 파악하고 안전하게 변경할 수 있다는 점을 보여줍니다.
- GoCD 설정을 YAML로 저장하고 Git에서 관리하면 Pipeline 목록과 단계, 변경 이력을 한곳에서 확인할 수 있습니다.
- 공통 동작은 Template으로 추상화하고 서비스별 차이는 Values로 주입해 복사·붙여넣기 실수를 줄이세요.
- Helm Template의 조건문을 활용해 변경을 일부 Pipeline에서 먼저 검증하면 전체 적용 시의 위험을 낮출 수 있습니다.
- Rendering 결과를 기준 파일과 비교하는 CI를 구성하고, 예상치 못한 차이가 있으면 반영을 막아 검토와 알림을 유도하세요.
비슷한 학습 자료
토스ㅣSLASH 23 - 유연하고 안전하게 배포 Pipeline 운영하기
SLASH · YouTube
경계 보안부터 제로트러스트 보안까지, 고도화 여정
김영재/조성현 · 토스 기술 블로그
수천 개의 API/BATCH 서버를 하나의 설정 체계로 관리하기
나재은 · 토스 기술 블로그
유연하고 확장 가능한 배너 기능 구현하기
김선우 · 토스 기술 블로그
대규모 CDC Pipeline 운영을 위한 Debezium 개선 여정
김용우 · 토스 기술 블로그
달리는 기차의 바퀴 교체하기 1. Planning
한재엽 · 토스 기술 블로그