이슈 관련 키워드
- 일단 네트워크 탭부터 확인 (콘솔, 네트워크만 볼 줄 알아도 아주 급한 건 트러블슈팅이 가능)
- 네트워크 대역폭(bandwidth)
- 무중단 배포(Rolling 배포, Blue Green 배포, 카나리 배포)
- 로드밸런서 health check
- 고가용성/다운타임
부트캠프 교육장소인 ZEP을 접속하려는데 무한로딩으로 오류가 발생했다.
부트캠프 동료가 공유한 서버 에러 화면이다.
30분 뒤 무한로딩 오류가 해결된 후의 개발자 도구 콘솔창이다. 여전히 트러블슈팅 중인지라 여러 에러 메시지가 뜬다.
부트캠프 선발대에서 추정한 시나리오는 이러하다. 고가용성의 중요성을 알게 해주는 대목이다.
- zep이 로직을 업데이트하면서 새로운 버그가 발생됨
- Rolling Update 정책으로 서버를 업데이트하는 과정에서 점진적으로 에러가 퍼짐
- 로드밸런서가 health check를 해야하는 서버들이 전부 비정상적으로 상태가 변화하면서 웹소켓 접속도 되지 않음
그렇다면 만약에 Rolling Update가 아니고 Blue/Green 배포였으면 어땠을까?
- Blue는 구버전 Green은 신버전
- 어제 부트캠프 선발대 수업에서 배운 데이터베이스 이중화에서 '스탠바이'로 생각하면 구버전이 '스탠바이'의 역할을 한다고 보면 됨
- 안정성이 확보되면 블루는 내리면 됨
*참고 : 부트캠프 동료가 공유한 무중단 배포 관련 글이다.
https://www.slideshare.net/ifkakao/ss-113145623
채팅창 에러로그를 통해 핫픽스 중인 것을 확인할 수 있었다.
runLater()
Unexpected token '<'
InvokeOnScriptThread():254
- Jint.Runtime.JavaScriptException: Unexpected token '<'
at parse :707:17
at :707:28
- Unexpected token 에러 (Have a JavaScript Unexpected Token Error? Check Your Syntax)
- 아래 글 제목에서 알 수 있듯이 신텍스 에러
- 파싱하다 문법 오류가 객체로 변환을 못한 것으로 추정
https://blog.airbrake.io/blog/javascript-error-handling/unexpected-token
재배포한 서버에 신텍스 에러가 있던 거다. 테스트를 돌리고 배포한 것이겠지만 test suite에 결함이 있었을 수 있겠다.
https://www.ibm.com/docs/en/elm/7.0.3?topic=scripts-test-cases-test-suites
키워드 관련자료
https://velog.io/@ragnarok_code/%EB%8C%80%EC%97%AD%ED%8F%AD-bandwidth%EB%9E%80
- 무중단 배포(Rolling 배포, Blue Green 배포, 카나리 배포)
- 로드밸런서 health check
https://pearlluck.tistory.com/113
- 고가용성/다운타임
ZEP 이용 장애 관련 게시글
https://zep-news-guides.super.site/ddc6b0eb42d64cd294e308d16e7c2c1b