Skip to content

22.07.19 인기있는 학습로그 관련 장애 대응

Jihoon Choi edited this page Aug 1, 2022 · 2 revisions

장애 대응 과정

  • 7월 19일 오전 배포 서버(v1.14) 장애 발견
    • 인기있는 학습로그가 로드되지 않는 장애
  • 오전 hotfix 대응
  • 오후 추가 문제 발견
    • 학습로그 게시물이 로드되지 않는 장애
  • 오후 이전 버전(v1.13) 롤백

원인

  • 프론트엔드
    • 인기있는 학습로그 추가 기능을 논의하면서, 학습로그 서버의 반환값이 변경되었음.
    • 학습로그 데이터 통신을 여러 컴포넌트에서 하고 있었지만, 몇개의 컴포넌트만 변경사항을 반영하였고, 추적하지 못한 컴포넌트가 있었음.
  • 백엔드
    • 인기있는 학습로그 추가 기능을 도입하면서, session의 값을 기준으로 게시물 분류를 하기로 하였음.
    • 학습로그 작성 시, session을 입력하지 않았을 때 null을 넣어주고 있었고, 개발과정에서 이를 인지하지 못해 null에 대한 방어로직이 존재하지 않았음.
    • dev DB와, prod DB상에서 데이터가 충분히 다를 수 있음을 인지하지 못하였기 때문에 발생한 오류라고 판단

대처

  • 1차 hotfix 대응 (프론트)
  • 2차 추가 문제 발견 후 이전 버전 롤백

롤백 방법 공유

  • 프롤로그 배포는 github action을 통해 이루어지고 있음.
  • github actions에 들어가서 Workflows 중 front/back , dev/prod 카테고리를 선택함
  • Run workflow 에서 Tags에서 이전 버전을 선택하고 배포함.
  • 매 배포마다 Tag를 생성하고 있으므로 이전 버전 롤백이 손쉽게 가능함.

향후 장애 시 대응 전략에 관한 의견

  • hotfix로 모든 것이 대응되리라 확신하기 어려우므로, 일단 정상적으로 동작하는 서비스인 이전 버전으로 롤백합니다.
  • develop에서 장애 대응 한 후 재배포합니다.
  • prod 배포 시, 배포 일정의 공유가 이루어지면 좋을 것 같습니다. (배포 후 빠르게 장애 유뮤를 판단 할 수 있을 것으로 생각!)
  • 각 스쿼드별로 최소 한명식, 배포 작업에 참여하여 프로세스를 익히고 스쿼드별로 공유하면 장애 상황 발생시 좀 더 능동적으로 대응할 수 있을 것이라 생각합니다.
Clone this wiki locally