6P by xguru 2020-04-17 | favorite | 댓글 1개

Shopify는 릴리즈 문화를 "모든 멤버의 신념과 행동의 합" 이라고 정의
"Shipping이 하기 싫은 일이 아닌, 축하의 느낌을 갖도록 한다"

Shopify가 릴리즈 문화를 측정하는 법
- 수동적 : 개발자 행복도 조사(2년마다), 슬랙 채널
- 능동적 : 도그푸딩, 내부지원팀, UX리서치

Shopify의 릴리즈 프로세스
- 릴리즈 파이프라인 : PRㅤ→ CI/Merge( Merge Queue)ㅤ→ Canaryㅤ→ Production
* 릴리즈 매니저 없음. PR 담당한 개발자가 프로덕션 까지 가는 전체 프로세스를 담당
* 특정윈도우가 없고 아무때나 /shipit 커맨드로 진행
* 에러/충돌 발생시 /shipit --emergency 로 패스트트랙 릴리즈
* 가능한 모든 것을 자동화

Merge Queue 는 작년에 공개한 글을 먼저 읽으면 이해하기 쉬움
"Successfully Merging the Work of 1000+ Developers"
https://engineering.shopify.com/blogs/engineering/…

Shopify는 트렁크 기반 개발을 하며, 일 약 400개 커밋 머지, 하루에 40번 정도 사이트가 변경 됨
오픈소스로 공개한 Shipit 엔진 https://github.com/Shopify/shipit-engine 을 통해서 배포를 진행.

기본 원칙
1. 마스터 브랜치는 항상 Green : CI 통과 해야 함
2. 마스터는 Production에 가까워야함
3. 긴급 머지는 빠르게 처리가 가능해야 함