1. 제로다운타임 이란 ?
: 프로젝트를 배포하는 과정 중 다운타임(시스템을 이용할 수 없는 시간)이 존재할 수 있다.
또한 다운타임이 존재한다면, 서비스 장애와 배포의 부담이 올 수 있다. 이러한 부담을 최소화 하기 위해 중단없이 영중인 서비스를 배포할 수 있는 기술이 제로다운타임 기술
* 요즘은 배포 시스템이 잘 갖추어 져 다운타임이 그렇게 길게 존재하지는 않는다.
하지만 찰나의 다운타임 순간이 존재하고, 그 과정 중 오류가 발생할 수 있는 여지는 존재한다.
현재 ploi에서 배포하는 과정 중 composer update를 하는 과정과 데이터베이스 migrate하는 과정이 포함되어 있음.
composer update를 하는 과정 중에서는, 네트워크의 송 수신이 잠시 차단될 수 있으며
데이터베이스 migrate를 하는 과정 중에서는 찰나의 시점에 코드와 데이터베이스의 호환이 유지되지 않을 수 있다.
: 제로다운타임 기술을 적용하면 이러한 문제점을 해결할 수 있다.
2. 제로다운 타임과 큐
: 하지만 현재 문제점은 큐를 사용하는 프로세스에선 문제가 발생할 수 있는 여지가 있다. 배포하는 과정 중 큐를 재시작하는 queue:restart 과정이 포함되어 있기 때문.
* queue:restart를 사용하는 이유
: queue worker는 장시간 살아있는 프로세스 이기 때문에 재시작하지 않으면 코드 변경사항이 적용되지 않음.
이러한 문제점을 해결하기 위한 방안으로는 배포시에 queue:restart를 진행하지 않고, 큐 관련 코드 변경시에만 별도로 queue:restart를 진행하는 방법 등이 있음.
'Back-end > Server' 카테고리의 다른 글
(리눅스) 세션 저장경로 확인하는 방법 (0) | 2021.11.14 |
---|---|
(리눅스) mount 란 무엇인가? mount 옵션 정리 (0) | 2021.11.13 |
(리눅스) log 파일 크기 조절하기 (원하는 크기로 잘라내기) (0) | 2021.11.02 |
(nginx) 가상호스트 연결 방법 (0) | 2021.08.01 |
(리눅스) 파일 소유자, 그룹 변경 및 권한 변경 정리 (0) | 2021.07.28 |