본문으로 이동
유연하고 안전하게 배포 Pipeline 운영하기
문서

유연하고 안전하게 배포 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를 구성하고, 예상치 못한 차이가 있으면 반영을 막아 검토와 알림을 유도하세요.