AI Briefing

하루에 1000번 배포하는 조직 되기

·2020.02.29 09:00

핵심 내용

뱅크샐러드가 Git-Flow와 ChatOps 한계를 극복하고 GitHub Actions 기반의 새로운 배포 시스템을 도입해 배포 횟수를 4배 늘렸다.

자세히 보기

뱅크샐러드 Engineering Foundation Framework Team은 기존 Git-Flow와 Travis CI, Slack ChatOps로 구성된 배포 프로세스의 비효율성을 해결하기 위해 새로운 시스템을 구축했다. 기존 방식은 복잡한 브랜치 관리와 수동 개입으로 인해 배포당 스텝이 많고, 설정 변경 이력 추적이 어려우며 휴먼 에러 발생 위험이 높았다.

새로운 배포 아키텍처

새로운 시스템은 Lightweight Branching Model을 채택해 master 브랜치 외의 불필요한 브랜치를 제거하고, Squash and Merge를 통해 커밋 히스토리를 단순화했다. 또한 Commit-Train Based Deployment 방식을 적용해 master에 머지된 커밋들을 묶어 한 번에 배포함으로써 사이드 이펙트와 커뮤니케이션 비용을 줄였다. CI/CD 파이프라인은 GitHub Actions로 통합되어 Travis CI보다 더 많은 동시 실행을 지원하며, Build와 Deploy 워크플로우를 분리해 운영한다.

내부 ChatOps 도구 'deploybot' 개발

기존 Slack 통합의 한계(특정 commit SHA 배포 불가, 이력 추적 어려움)를 극복하기 위해 Go 언어로 작성된 내부 도구 deploybot을 개발했다. 이 도구는 gRPC와 Protobuf를 사용해 배포 로직을 담당하는 'deploy' 서비스와 Slack 인터페이스를 담당하는 'deploybot' 서비스로 분리되었다. 개발자는 @deploybot status, @deploybot deploy, @deploybot history 명령어를 통해 커밋 단위 배포, 현재 배포 환경 확인, 배포 이력 추적을 실시간으로 수행할 수 있다.

도입 성과 및 안정성

새로운 시스템 도입 후 배포에 필요한 스텝이 60~83% 감소했으며, 병목 현상이 제거되어 더 적은 리소스로 더 빠른 배포가 가능해졌다. 배포 건수는 이전 대비 약 4배 증가했으며, 서버 개발자 1명당 하루 평균 5회의 배포를 수행하는 수준에 도달했다. 잦은 배포에도 불구하고 Rollout 과정을 내부 실험 플랫폼과 Observability 도구로 관리하여 안정성을 유지하고 있다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.