#배포·관측
「배포·관측」 태그가 붙은 글 16편이다.
글 목록
16편 중 1–16
장애인지 30분째 따지고 있다면 SLO 가 없는 것이다
사용자는 느리다는데 평균 응답 시간은 평소와 같다. 그래서 30분째 장애가 맞는지부터 따지고 있다. 무엇이 정상인지 장애가 나기 전에 한 문장으로 적어 두지 않아서다.
2년 만에 기능 플래그가 200개가 됐다
기능 플래그를 2년 쓰다 보니 200개가 됐고, 뭐가 켜져 있는지 아무도 모른다. 지우자니 무섭다. 만들 땐 이득이 바로 보이는데 지울 땐 위험만 보인다.
카나리를 통과한 배포가 전체 확대 뒤에 터졌다
카나리에서 30분을 지켜보고 통과한 배포가 전체로 넓힌 뒤에 터졌다. 통과했으니 배포 탓은 아니라고 믿는 바람에 원인 찾기도 늦어졌다.
로그는 초당 수천 줄인데 요청 하나를 못 찾는다
로그는 초당 수천 줄씩 쌓이는데, 장애 때 특정 사용자의 요청 하나를 못 찾아 몇 시간을 헤맸다. 남기는 것과 찾을 수 있는 건 다르다.
분산 추적이 큐만 지나면 끊긴다
분산 추적을 붙였는데 하필 시간이 제일 오래 걸리는 큐와 워커 구간에서 추적이 끊겼다. 추적 문맥은 스레드에 묶여 있어서, 경계를 넘을 때 아무도 안 옮겨 주면 사라진다.
타임아웃 값 하나 바꿨는데 서비스가 무너졌다
콘솔에서 타임아웃 값 하나 바꿨을 뿐인데 서비스가 무너졌다. 되돌리려니 이전 값이 뭐였는지 아무도 몰랐다. 설정은 코드보다 쉽게 바뀌는데 영향은 더 클 때가 많다.
컬럼 이름 하나 바꿨는데 배포 중에 오류가 쏟아졌다
컬럼 이름 하나 바꾸고 배포했을 뿐인데 운영에서 몇 분간 오류가 쏟아졌다. 스테이징에선 멀쩡했다. 배포 중에는 옛 코드와 새 스키마가 잠깐 같이 산다.
알림이 하루 200개면 진짜 장애도 묻힌다
알림을 꼼꼼히 걸었더니 하루 200개씩 와서 아무도 안 보게 됐다. 진짜 장애 알림도 그 사이에 묻혔다. 알림이 많다는 게 안심의 근거였는데.
user_id 라벨 하나에 모니터링이 죽었다
디버깅하기 쉬우라고 지표에 사용자 ID 라벨을 붙였다. 몇 시간 뒤 모니터링 시스템이 메모리를 다 쓰고 죽었다. 서비스는 멀쩡한데 아무것도 안 보였다.
새로 띄운 인스턴스만 느리다, 늘릴수록 나빠진다
부하가 올라 서버를 늘렸는데 새로 뜬 인스턴스만 유독 느리고, 늘릴수록 상황이 나빠졌다. 같은 이미지인데도. 오래 산 인스턴스에만 쌓여 있는 게 따로 있었다.
알림도 안 울린 장애, 범인은 로그만 찍는 catch
장애가 났는데 알림도 안 울리고 에러율 그래프도 평평했다. 몇 시간 뒤 사용자 문의로 알았다. 예외를 잡아 경고 로그만 남기는 코드 한 군데가 장애를 통째로 가리고 있었다.
평균 응답 시간은 120ms 인데 왜 느리다고 할까
대시보드 평균 응답 시간은 120ms 인데 느리다는 문의가 계속 온다. 로그를 뒤지면 5초, 10초짜리 요청이 하루 수만 건 숨어 있다. 평균은 그 꼬리를 뭉개 버린다.
배포할 때마다 502 가 조금씩 난다
무중단 배포를 설정했는데 배포할 때마다 502 가 몇십 건씩 났다. 설정은 다 맞았다. 서버가 내려가는 순간과 트래픽이 끊기는 순간이 같지 않았을 뿐이다.
조건에 맞는 글이 없다. 브루니가 숨었나 보다.