Slide 1

Slide 1 text

Journey of dash’s release-cycle With Trunk base development(TBD) Copyright ⓒ All Right Reserved by Buzzvil

Slide 2

Slide 2 text

Copyright ⓒ All Right Reserved by Buzzvil Once upon a time

Slide 3

Slide 3 text

Copyright ⓒ All Right Reserved by Buzzvil

Slide 4

Slide 4 text

Copyright ⓒ All Right Reserved by Buzzvil Speed

Slide 5

Slide 5 text

Copyright ⓒ All Right Reserved by Buzzvil Feature branch -> PR -> master -> staging -> production

Slide 6

Slide 6 text

Copyright ⓒ All Right Reserved by Buzzvil

Slide 7

Slide 7 text

Copyright ⓒ All Right Reserved by Buzzvil 문제점들 - 피쳐단위로 QA를 진행해야 하기 때문에 리그레이션 테스트를 진행하기 어려움 - 새로추가되는 기능들에 대한 커뮤니케이션의 어려움 - QA를 하긴했지만 테스트가 부족한 기능들.

Slide 8

Slide 8 text

Copyright ⓒ All Right Reserved by Buzzvil Release cycle

Slide 9

Slide 9 text

Copyright ⓒ All Right Reserved by Buzzvil Release cycle 도입으로 얻고 싶었던점들 - 스프린트와 맞물려서 돌아가는 릴리즈 주기 - 산발적으로 일어나는 QA 요청을 릴리즈 주기에 맞추어 QA리소스 최적화를 하고 싶었음 - 주기적인 배포를 통한 커뮤니케이션 비용 최소화 - + 너무 어렵지 않은 워크 프로세스야 한다.

Slide 10

Slide 10 text

Copyright ⓒ All Right Reserved by Buzzvil Trunk base development에서 제시하는 개발 스타일 - Committing straight to the trunk - Short-Lived Feature Branches - Patch Review System

Slide 11

Slide 11 text

Copyright ⓒ All Right Reserved by Buzzvil Committing straight to the trunk - 작은 팀에게 어울림 - 코드 리뷰 시스템보단 페어프로그래밍으로 코드를 검증하는 방식을 추천 - 누군가 빌드를 깰수도 있는 커밋을 푸시할 수도 있음

Slide 12

Slide 12 text

Copyright ⓒ All Right Reserved by Buzzvil Short-Lived Feature Branches - 기존에 사용하던 익숙한 방식 - 가능한 작은 단위의 피쳐 브랜치를 생성 후 Pull request 리뷰를 통해 마스터로 머지된다.

Slide 13

Slide 13 text

Copyright ⓒ All Right Reserved by Buzzvil Patch Review System (Continuous code review) - 엔터프라이즈급에 어울림 - Gerrit, Rietveld, Phabricator 와 같은 서비스를 이용

Slide 14

Slide 14 text

Copyright ⓒ All Right Reserved by Buzzvil 배포 방법 - Release from trunk - Branch for release

Slide 15

Slide 15 text

Copyright ⓒ All Right Reserved by Buzzvil Release from trunk Trunk에서 직접 배포하는 방법 릴리즈 주기가 짧은팀에게 적합

Slide 16

Slide 16 text

Copyright ⓒ All Right Reserved by Buzzvil Branch for release - 릴리즈 브랜치를 사용하는 방법

Slide 17

Slide 17 text

Copyright ⓒ All Right Reserved by Buzzvil Observed habits - No Code Freeze - Quick Reviews - Chasing HEAD - Running the build locally - Always Release Ready

Slide 18

Slide 18 text

Copyright ⓒ All Right Reserved by Buzzvil You're doing it wrong - Cherry-pick of bug fixes from release branches to the trunk - Merging rather than cherry-pick to/from a release branch - Duration of ‘short-lived’ feature branches - Numbers of developers on ‘short-lived’ feature branches - Keeping a single release branch - Merge from one release branch to another release branch - Merge everything back from a release branch at the end of the release branch

Slide 19

Slide 19 text

Copyright ⓒ All Right Reserved by Buzzvil Current dash release cycle 릴리즈 브랜치 생성

Slide 20

Slide 20 text

Copyright ⓒ All Right Reserved by Buzzvil Dash versioning 대시에서는 SemVer(Semantic versioning) 의 포멧을 저희 유즈케이스에 맞게 변경해서 사용하고 있습니다. 2.32.0-beta.1 Major.Minor.Patch-Pre releasetag.deploy_number

Slide 21

Slide 21 text

Thank you! Please contact design team if any question! Copyright ⓒ All Right Reserved by Buzzvil