PaaS/CI CD

CI/CD 배포 전략 설계시 고려사항

armyost 2022. 1. 17. 06:33
728x90

관련링크 : https://d1.awsstatic.com/whitepapers/AWS_Blue_Green_Deployments.pdf

 

빌드배포 환경의 범위를 결정하는 요소들

 

요 소 기 준
Application Architecture Dependencies, loosely/Tightly Coupled
Organization Speed and Number of Iterations
Risk and Complexity Blast radius and impact of failed deployment
Teams Expertise of teams
Process Testing/QA, rollback capability
Cost Operating budgets, additional resources

 

 

Blue/Green 배포 전략을 설계할때는 다음의 기술적 도구로 라우팅 할 수 있다 

1. DNS : 특히 Blue/Green 배포 방식에서 핵심 도구역할을 한다. 아래는 Weight(가중치)를 주는 방식으로 커넥션을 점진적으로 옮겨가는 Case를 표현하였다.

2. LoadBalancer : LB에서도 Green 서비스로 라우팅 할 수 있다. 이때는 AutoScaler를 사용하여 점진적으로 Green 서버의 가중치를 늘릴 수 있다. 주의할 점은 Blue서버를 0상태로 만들지는 말고, RollBack을 대비하여 일정부분은 유지하는 것이 현명하다. 

 

 

 

Blue/Green을 전환할때 데이터베이스는 어떻게 할 것인가?

위와 같이 RDS의 구조, 스키마 등의 변경사항이 없다면 Application만 전환되면 되지만, 구조형(RDS 포함)데이터베이스가 변경사항이 있을때는 Rollback을 고려하여 주의가 필요하다.  만약 S3이거나, No-SQL과 같은 비구조형이라면 쉽겠지만, 그게 아니라면 As-Is 데이터이던, To-Be 데이터이건 동기화가 필요하다.

 

 

가장 일반적인 방법은 Application과 Database를 Decoupling 하는 것이다. 

  • 어플리케이션 전환에 앞서 스키마를 변경한다. 이때 DB 업데이트는 Blue/Green 양쪽 어플리케이션 모두가 호환되게 변경해야 한다.  

 

 

Blue/Green이 Recommand되지 않을때는 언제일까?

 

1. 데이터베이스의 디커플링이 너무 복잡하거나, 데이터공유가 불가능하거나 할때는 불가능하다. 

 

2. 배포가이드가 정해져 있는 완제품형 솔루션을 적용한 경우에는 부적합하다.