면접에서 배포 전략을 물어봤다.
기억이 제대로 나지 않아 조졌다.
다시는 그러지 않기 위해 작성하는 배포 전략
트래픽을 점진적으로 구버전 -> 신버전으로 옮기는 방식이다.
방법 1 : 서버 하나를 추가 후, 새로운 버전을 실행시킨다. 로드 밸런스에서 이 인스턴스를 연결하고 기존 구버전 서버 하나를 종료한다.
방법 2 : 서버 하나를 로드밸런스에 떼어내고, 떼어낸 서버에 새로운 버전을 실행시킨다. 이후 다시 로드 밸런스에 연결한다. 이를 반복
장점 : 많은 오케스트레이션 도구에서 지원하는 방식이다.
많은 서버 자원을 확보하지 않아도 된다.
단점 : 구버전, 신버전의 서버가 둘다 서비스 되므로 호환성 문제가 발생할 수 있다.
트래픽을 한번에 구버전 -> 신버전으로 옮기는 방법이다.
현재 운영 중인 서버를 Blue라고 하고
새로 운영하려는 서버를 Green이라 한다.
Blue, Green 서버를 동시에 구성해둔 상태로 Green이 성공적으로 배포가 되면 트래픽을 Blue -> Green으로 완전히 옮긴다.
장점 : 트래픽을 모두 새로운 버전으로 옮기므로 호환성 문제가 발생하지 않는다.
단점 : 리소스가 2배로 든다.
롤링 배포 방식과 비슷하게 구버전에서 신버전으로 트래픽을 옮기지만, 새로운 버전에 대해 오류를 조기에 감지한다.
소수 인원에 대해서만 트래픽을 새 버전 서버로 옮기고 새로운 버전에 문제가 없다고 판단을 하면, 모든 트래픽을 신규 버전으로 옮긴다.
장점 : 새로운 버전으로 인한 위험을 최소화 할 수 있다.
단점 : 호환성 문제가 있을 수 있다.