항해 99 & 회고
[트러블 슛팅] : 자동 배포
Haksae
2022. 4. 12. 23:05
실전 프로젝트에서 겪은 트러블 슛팅을 소소하게 적어봅니다
1. 문제
- 게임 서비스 특성상 예상치 못한 에러나 버그가 많이 발생하여, 이를 보완 수정해야하는 경우가 잦음
- 그러나 서비스 운영 도중에는, 서비스를 이용 중인 유저로 인해 최신화된 내용을 즉시 배포하기가 어려워 유저가 없는 시간대를 기다렸다가 배포하는 비효율이 발생함
2. 해결 과정
1) 서비스 특성에 맞추어 예약 자동 배포로 결정
- 스케일 아웃을 하여 무중단 배포를 하는 것도 고려했으나, 정확하게 서버마다 같은 방에서 게임을 하는 사람들을 배분하는 것이 불가능하고, 포인트와 승패가 민감한 게임이라 무중단 배포가 현재 서비스에 맞지 않는 배포 방식이라 판단함
- 평균적으로 새벽 4시 경에는 유저가 없다는 것을 파악하여, 해당 시간대에 예약 자동 배포하여 업데이트 하는 것으로 문제를 해결 할 수 있다고 판단함
- 여러 자동 배포 툴 중에 전반적으로 효율적인 Github Actions를 사용하기로 결정
2) Github Actions Issue 관련
- Github Actions로 새벽 4시에 맞추어 예약 자동 배포를 테스트 하던 중, Actions schedule의 실행 딜레이가 있음을 발견하였고, 실제로 해당 이슈가 있음을 알게됨
- 몇 번의 테스트를 거쳐 평균 대략 10분 정도 딜레이가 있는 것으로 파악되었고, 시간대상 큰 무리가 없을 것으로 판단하여 Actions를 계속 사용하기로 함
- 서버에 공식적으로 새벽 4:00-4:30을 서버 정기 업데이트 시간으로 공지하고 자동배포를 시작함
3. 결과
- Github Actions를 통해 버그 리폿으로 파악된 버그들을 수정하여, 매일 새벽 4시 경에 자동 배포하는 방식으로 서비스를 운영하고 있음
- 이를 통해 팀원들의 업무 효율을 개선됨