버
버즈빌
June 21, 20221회
배포를 안전하게 - 카나리 배포, 롤백

간단 소개
버즈빌의 쿠버네티스 배포 자동화, 카나리 배포 전략, 롤백 시스템 구현 및 개선 과정을 소개합니다.
AI Summary
- 쿠버네티스 배포 자동화
- 도커 이미지는 커밋 SHA를 태그로 사용하여 빌드되고 저장소에 저장됩니다.
- 헬름을 사용하여 쿠버네티스 매니페스트를 생성하고, 스피네이커를 통해 배포를 간접적으로 실행합니다.
- 깃헙 배포 이벤트를 웹훅 트리거로 사용하여 스피네이커 파이프라인을 실행하고, 파이프라인 표현식을 통해 커밋 SHA를 동적으로 설정합니다.
- 카나리 배포 전략
- 쿠버네티스에서 기본적으로 지원하지 않는 카나리 배포를 직접 구현하여 A/B 테스트를 가능하게 하고 배포 안정성을 높입니다.
- 카나리 릴리즈는 메인 릴리즈와 동일한 방식으로 배포되지만, 헬름 차트 설정을 통해 쿠버네티스 리소스 이름에 접미사를 추가하여 구분합니다.
- 이스티오의 트래픽 시프팅 기능을 사용하여 트래픽 일부를 카나리 릴리즈로 분산하고, 데이터독을 통해 각 버전별 메트릭을 비교하여 검증합니다.
- 롤백 구현 및 개선
- 배포 히스토리의 커밋 SHA를 이용하여 롤백을 구현하고, 이전 버전의 values.yaml 파일을 통해 동일한 쿠버네티스 매니페스트를 생성합니다.
- 과거의 롤백 과정에서 발생했던 문제점을 개선하여, 현재는 한 번의 클릭으로 롤백이 가능하고 문제 해결 동안 배포를 막을 수 있도록 시스템을 개선했습니다.
Next Feeds
사람인 iOS App Refactoring
사람인 iOS 앱 리팩토링 과정을 공유하며, Clean Architecture, MVVM, Coordinator 패턴을 적용하여 코드 품질과 유지보수 효율성을 개선한 사례를 설명합니다.
리팩토링Clean ArchitectureMVVMCoordinatoriOS
2022. 6. 21.
사람인
카카오페이 iOS 개발자의 채용 과제 서버 개발기 with Vapor
카카오페이 iOS 개발팀이 Vapor 프레임워크를 사용하여 iOS 채용 과제 서버를 개발한 과정과 경험을 공유합니다.
iOSVaporSwift채용 과제서버 개발
2022. 6. 17.
카카오페이

신입 웹프론트엔드 개발자 1개월 차 후기
비브로스 웹프론트엔드팀 신입 개발자의 온보딩 경험 공유 및 개발 문화 적응 과정, 개선점을 다룬 후기
온보딩웹프론트엔드코드 리뷰Angular개발 문화
2022. 6. 17.
비브로스

ECR - "저도 배포요정입니다 ✋🏻"
Teamcity를 사용하여 Docker Container Image를 ECR로 Push하고 배포 자동화하는 방법을 소개합니다.
ECRTeamcityDockerCI/CDAWS
2022. 6. 15.
올리브영

스포카에서 Jira를 활용하여 프로젝트를 수행하는 방법
스포카는 Jira를 활용하여 스크럼과 칸반을 혼합한 프로젝트 관리 방식을 사용하며, 스프린트 및 운영 이슈 관리 방법을 상세히 설명합니다.
Jira스크럼칸반프로젝트 관리이슈 관리
2022. 6. 15.
스포카

배포를 우아하게 - 원-클릭(one-click) 배포
버즈빌은 깃헙 배포 API를 통해 런타임 환경에 상관없이 원클릭 배포 시스템을 구축하여 배포 복잡성을 줄이고 사용자 편의성을 높였습니다.
배포깃헙 API자동화DevOpsCI/CD
2022. 6. 14.
버즈빌