ICT 학점연계 인턴십 11주차

Lungnaha·2022년 11월 17일
1

ICT 인턴십

목록 보기
11/13

11 주차

한 주의 기록

이번 주는 업무를 하면서 정말 의미 있는 작업을 해보았습니다.
제가 Dev 버전이긴 하지만 처음으로 파이프라인을 돌려보고, 배포를 진행했다는 것입니다!!

이전에는 PR을 생성해서 이를 Main Branch에 Merge 시키는 작업을 했다고 말씀드렸는데, 이번에는 거기서 더 나아가 작업을 진행해 본 것입니다.

많은 PR과 코드 리뷰를 거쳐서 Main branch가 완성되면 이를 Dev에 Merge 시켜주고, 이를 Push 하면 자동으로 Pipeline이 돌면서 Build와 배포를 완료하는 과정입니다.

실제로 아래와 같이 버전이 변경되는 모습을 눈으로 확인하니 너무 뿌듯하더라구요!!

Slot

이번 인턴생활에서 다룰 이야기는 Deployment Slot에 대한 내용입니다.
먼저 Slot을 사용하는 이유는 아래와 같습니다.

  • 사전 준비
    • Production으로 직접 배포하는 대신 Slot에 먼저 배포하면서 사전에 준비를 할 수 있습니다.
  • 쉬운 Fallback
    • Production으로 교환 이후에, 문제가 생기거나 예상과는 다를 경우 즉시 다시 이전 Production으로 교환하여 정상적인 상태로 되돌리는 것이 가능합니다.

(cf) fallback 이란, 어떤 기능에 문제가 생겼을 때, 이에 대처하는 기능 또는 동작

  • 재시작 최소화
    • Production에서 설정을 변경하려면 앱을 다시 시작해야 하지만, 스테이징 슬롯에서 설정을 변경하고 Production으로 변경하면 높은 가용성을 유지할 수 있습니다.

Slot을 이용한 배포에 가장 큰 장점은 바로 무중단 배포가 가능하다는 것입니다.
특히, 업데이트가 빈번하게 발생하는 경우 이를 업데이트 할 때마다 프로덕션에 적용하면 서비스 중단이 자주 발생하고 이는 좋지 못한 서비스라는 인식을 줄 것입니다.

그러나. Slot을 활용하면 최근 소스코드를 Slot에 배포하고, Production 설정과 동일하게 맞춘 뒤에 교체 작업을 하면 해당 문제를 해결할 수 있습니다.

저도 이전에 코드를 Web App에 배포하는 과정에서 사용했었는데, 바로 Release에 적용되는 것이 아니고 실수를 하더라고 원상 복구가 바로 가능하다는 점에서 편하게 배포를 진행할 수 있었습니다!!

무중단 배포

여기서 끝내기는 조금 아쉬워서 추가로 무중단 배포와 관련된 용어를 조금 찾아 봤습니다.

대표적으로 아래와 같은 방식들이 존재했습니다.

Rolling 배포

  • 새 버전을 점진적으로 교체하는 방식
  • 인스턴스 중 일부의 라우팅을 중단하고 새 버전을 적용하고 적용이 완료되면 다시 라우팅

Blue Green 배포

  • Blue는 구 버전, Green은 신 버전
  • 운영 중인 구 버전과 동일하게 신 버전의 인스턴스를 구성하고, 신 버전 인스턴스 구성이 완료되면 모든 트래픽을 한 번에 신 버전 쪽으로 전환하는 방식

Canary 배포

  • 신 버전을 일부 인스턴스에 배포하고, 이를 특정 사용자만 사용하도록 배포하였다가 정상적이면 전체 배포를 진행
  • 특정 사용자는 라우팅을 랜덤하게 설정할 수도 있고, 실제 사용자로 분류할 수도 있음

마치며..

이번주는 정말 짧게 느껴질 정도로 재미있고도 알차게 시간을 보냈던 것 같습니다!
회사 서비스의 관련된 일을 많이 하였기에 인턴생활에는 자세히 적을 수는 없지만, 이번 주도 정말 많이 배울 수 있었습니다!!

profile
Long🌈Now😁Happy💖

0개의 댓글