여러 컨테이너 구성에서 Discourse를 업그레이드하는 방법은?

안녕하세요! 방금 새로 설치한 멀티 컨테이너 기반 Discourse 환경을 구축했는데, 어떤 업그레이드 방법이 가장 좋을지 궁금합니다.

문서에는 이렇게 나와 있습니다:

Discourse의 새 버전으로 업그레이드할 때 다운타임을 최소화하세요. 사이트가 실행 중인 상태에서 새로운 웹 프로세스를 부트스트랩할 수 있으며, 빌드가 완료된 후에야 새 이미지로 전환할 수 있습니다.

이 내용을 읽으면서, 다른 컨테이너가 업그레이드되는 동안 이전 버전의 Discourse를 라이브로 실행하는 것이 안전한지 궁금해졌습니다.

예를 들어:

로드 밸런서 뒤에 별도의 VM에서 실행 중인 웹 전용 컨테이너 두 개가 있다고 가정해 보겠습니다. 컨테이너 인스턴스 중 하나를 로드 밸런서에서 제거하고 최신 버전으로 부트스트랩을 실행합니다. 이때 이전 버전은 여전히 서비스 중이므로 다운타임이 0입니다(이것이 괜찮은가요?). 그런 다음 업데이트된 컨테이너를 로드 밸런서에 다시 연결하고, 다른 컨테이너에 대해 동일한 과정을 반복합니다.

이렇게 이해하는 것이 맞나요?

대충 맞습니다. 진정한 제로 다운타임 업그레이드를 위해서는 새 컨테이너를 SKIP_POST_DEPLOYMENT_MIGRATIONS: 1로 부트스트랩한 후, 구동하고, 기존 컨테이너가 더 이상 실행되지 않는 시점에 SKIP_POST_DEPLOYMENT_MIGRATIONS=0 rake db:migrate를 실행해야 합니다. 그렇지 않으면 부트스트랩 과정이 (모든 업그레이드에서 그런 것은 아니지만) 기존 컨테이너가 더 이상 사용할 수 없는 상태로 데이터베이스를 만들 수 있습니다.

와, 정말 멋지네요! 데이터베이스 마이그레이션이 정확히 제가 걱정하던 부분이었는데, 어떻게 제어하는지 알 수 있어서 정말 도움이 됩니다!