배포 자동화 제출과제

[C716] 블루/그린, 롤링, 카나리 배포의 차이점과 어떤 경우에 각각의 배포방식을 시도하는지 조사해보세요.

 

배포전략의 배경과 자동화

과거에는 몇달 길게는 몇년에 한번씩 서비스를 릴리즈하여 배포

최근에는 마이크로서비스의 등장으로 서비스를 잘게 나누어 배포를 자주 하는 방식으로 변화를 하고있다.

롤링배포

원래 있는 인스턴스들 중에서 구버전에서 신버전으로 트래픽을 점진적으로 전환하는 배포이다. 이는 서버수의 제약이 있을 경우에 유용한 방법이며, 배포중에는 한쪽 인스턴스의 수가 감소되므로 서버 처리용량을 미리 고려해야한다. 이를 사용한 예는 CodeDeploy인데 기본적으로 롤링배포를 하도록 설정되어있다.

블루/ 그린 배포

블루/그린 배포를 "구 버전의 환경을 새 버전의 환경으로 똑같이 구축해서 한 번에 전환한다" 라고 생각하는데, 사실 이것은 Red/Black 배포의 정의이고,  실제로는 "신 버전과 구 버전의 어플리케이션이 한 순간이라도 공존하였다" 라고 하는 것이 더 올바르다.

신 버전을 배포하고 일제히 전환하여 모든 연결을 신 버전을 바라보게 하는 전략. 구버전, 신버전 서버를 동시에 나란히 구성하여, 배포 시점에는 트래픽이 일제히 전환됨. 하나의 버전만 프로덕션 되기 때문에 버전 관리 문제를 방지 할 수 있고,  빠른 롤백이 가능하고, 운영환경에 영향주지 않으며, 실제 서비스 환경으로 신 버전 테스트가 가능한 장점이 있음. 하지만, 시스템 자원이 똑같이 구성이 되어있어야하니 두배로 필요해져서 비용이 많이 발생한다.하지만 이러한 단점도 AWS와 같은 클라우드 서비스에서는 종량 과금이라는 메리트가 있어 큰 부담 요소로 작용되지 않으니 그리 신경 쓸 부분은 아니다.

카나리 배포

지정한 서버 또는 특정 user에게만 배포했다가 정상적으면 전체를 배포한다. 서버의 트래픽의 일부를 신 버전으로 분산하여, 오류 여부를 확인할수있다. A/B 테스트가 가능하고, 오류율 및 성능 모니터링에 유용하게 사용할 수 있다는 장점이있다. 트래픽을 분산시킬 라우팅은 임의적으로 랜덤하게 또는 사용자 프로필 등을 기반으로 분류할 수 있다. 분산 후에 결과에 따라 새 버전이 운영 환경을 대체할 수도 있고, 다시 구 버전으로 되돌릴 수도 있다.

*A/B 테스트란?

대조군과 실험군으로 나누어서 특정한 UI나 알고리즘의 효과를 비교하는 방법론

https://reference-m1.tistory.com/211

 

[Etc] 배포 전략의 종류(롤링/카나리 배포/블루 그린)

요즘은 MSA 아키텍처를 많이 지향하고 있는 추세이다. 이런 트렌드에 맞춰 배포 전략도 다양하게 개발되고 발전하여 변화하고 있다. 1. 롤링(Rolling) 일반적인 배포를 의미하며, 단순하게 서버를

reference-m1.tistory.com

https://dev.classmethod.jp/articles/ci-cd-deployment-strategies-kr/

 

매번 헷갈리는 CI/CD 배포 전략 정리해버리기 | DevelopersIO

AWS 자격증을 공부하다가 매번 헷갈리는 배포 전략에 대해서 정리해보았습니다.

dev.classmethod.jp


적절한 전략 선택

위에 세가지 배포 전략들은 무중단 배포를 목표로 다양한 배포 전략이 존재한다. 최선의 선택은

비즈니스의 요구사항과 제약사항에 따라 달라지지만 다음 사항에 따라 전략을 선택해야 한다.

- 가장 중요한 고려사항이 뭔지? (비용 또는 다운타임 허용)

- 테스트를 위한 배포인지 아닌지?

- 롤백 기간이 빠른지?

- 호환성은 어떤지?

- 출시 기한

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Bootcamp/Assignments 다른 글

    이전 글

    다음 글