본문 바로가기

TIL

2022/02/14 TIL

클린 아키텍처 16장 : 독립성

목표는 즉각적인 배포이다.

오늘도 회사에서 작업 단위가 큰 PR을 요청받았는데 컨트롤하기 힘든 conflict가 발생해서 힘들었던 경험이 있다. 대화를 하며 어떻게 해결할 수 있을지 얘기를 했었다.

뛰어난 아키텍트라면 변경을 예측하여 큰 무리 없이 반영할 수 있도록 만들어야 한다는 점이다.

레거시 코드를 수정할 때 유연하지 못해 불편함을 느꼈지만, 오래전에 작성된 나의 코드를 봐도 그런 경험이 있다. 독립성을 가진 영역을 잘 나누면 유연성이 올라간다는 것을 알게 되었으니 이를 천천히 실천해보고 싶다.

AWS Elastic Beanstalk 배포 설정

배포 할 때 몇 가지 옵션이 있는데 오늘 트래픽 분할 이라는 방법을 알게 되었다. 이는 배포하는 동안 기존의 인스턴스 구성을 복사하여 생성하고 설정해둔 시간 동안 천천히 트래픽을 받는 부분을 옮긴 후 이상이 없다면 기존 인스턴스 설정을 중지시키고 새롭게 만들어진 인스턴스 설정을 활용하는 방식이다.
또한 트래픽 분할은 내부적으로 Canary 배포 방식을 활용한다.

Canary 배포란?

Canary는 카나리아는 새를 뜻하며 과거 광부들이 일을 할때 주변에 카나리아라는 새를 옆에 두고 일하다가 새가 죽으면 대피했다고 한다. 이처럼 카나리아는 위험을 빠르게 감지한다는 뜻이다.
배포에서도 비슷한데, 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단하게 되고, 이 기간 동안 구 버전에서 대부분의 트래픽을 담당하게 된다. 배포 결과에 따라 구버전으로 다시 돌아갈 수도 있고 새로운 버전을 사용할 수도 있다.

참고 : https://onlywis.tistory.com/10

'TIL' 카테고리의 다른 글

2022/02/16 TIL  (0) 2022.02.17
2022/02/15 TIL  (0) 2022.02.16
2022/02/13 TIL  (0) 2022.02.14
2022/02/12 TIL  (0) 2022.02.13
2022/02/11 TIL  (0) 2022.02.12