에브리톡 · 회사 업무 · 외주 시스템 인수·개선
배포 슬롯이
바뀌는 순서.
쓰던 서버를 내리기 전에, 다음 버전을 먼저.
단계를 바꾸며 요청이 어디로 향하는지 확인합니다.
과거 단일 호스트 배포의 설명용 시뮬레이션입니다. 실제 서버 상태나 실시간 요청을 표시하지 않습니다.
1 / 5 · 유휴 슬롯 기동
기존 슬롯을 유지하며 준비합니다.
새 요청 → nginx → 기존 슬롯 A. 이전 슬롯: 요청을 받는 중. 다음 슬롯: 새 버전 기동.
배포의 전체 순서는 아래 다섯 단계로 읽을 수 있습니다.
자동 진행 없이, 한 단계씩.
유휴 슬롯 기동
기존 슬롯이 요청을 받는 동안 다음 버전을 준비합니다.
설정 확인·스왑
upstream을 바꾸고 nginx 설정 검사 후 reload합니다.
전환 직후 확인
프록시를 거친 응답을 확인하되 이것만으로 전환 완료를 선언하지 않습니다.
이전 슬롯 드레인
진행 중 요청을 기다린 뒤 정지 결과까지 확인합니다.
새 슬롯 단독 검증
이전 슬롯 없이도 응답하는지 확인하고 실패 시 복구 경로로 들어갑니다.
이미 쓰는 앱을,
계속 쓸 수 있도록.
기존 사용자와 데이터가 있는 회원·관리자 React Native 앱, 웹관리, NestJS API를 인수했습니다. 새로 만든 서비스가 아니라, 운영 중인 시스템을 이어받아 개선한 일입니다.
채팅 이전, 푸시·권한 문제부터 배포와 복구까지. 앱을 쓰는 사람의 다음 요청도 받을 수 있도록 바꿨습니다.
완료 조건을 다시 세우다
그 성공 응답은,
새 버전의 응답일까?
전환 직후의 응답만 확인하면 아직 살아 있는 이전 슬롯을 새 버전의 성공으로 오인할 수 있습니다. 그래서 이전 슬롯을 드레인·정지한 뒤에도 다시 확인했습니다.
실패한 단계에 맞춰 복구하고, 이전 슬롯 정지가 실패하면 정상 완료 대신 수동 확인 상태를 남겼습니다. 모든 상황의 무중단을 보장하는 방식으로 소개하지 않습니다.
배포 판단과 검증 읽기보내기 전의 요청부터.
구조를 보았다면, 이 판단을 내린 과정으로.
에브리톡의 조사·결정·검증 읽기