안녕하세요! 뎁옵 엔지니어 제제예요.

이번 프로젝트를 통해 배운걸 정리하면서 여러분들께도 알려드리고자 문서를 작성합니다. 틀린 정보가 있을 수 있어서 피드백 많관부입니다!

배포 전략

저희 파이프라인은 gitops로 구현되어 있어요.

gitops란 인프라 프로비저닝부터 git에서 시작돼서 서버 배포까지 git으로 끝나는 방식을 뜻합니다. 인프라 리소스는 테라폼으로 프로비저닝(VPC만)하여 git으로 인프라가 시작되고 서비스 저장소는 gitflow 전략으로 feature 브랜치를 제외한 prod(운영서버), dev(개발서버) 브랜치만 배포가 됩니다.

Untitled

gitops 배포 전략 중에 push type을 사용하고 있어요.

push type이란 외부 저장소(이미지 저장소)에서 push를 하고 배포 환경 저장소(깃허브)에서 이미지 저장소(도커 허브)의 이미지를 서버에 배포하는 과정을 뜻합니다.

배포 성공시 깃허브 액션 GUI

배포 성공시 깃허브 액션 GUI

슬랙 배포 알람

슬랙 배포 알람

push 전략의 단점은 서버가 깃허브에 배포 성공 여부를 알려주지 않는다는 점입니다. 저희는 이러한 점을 보안하기 위해 배포 성공시 슬랙 알람이 오도록 chatOps를 구현했습니다.

배포 툴

Github Action

큰 그림을 알았으니 이제 조금 더 구체적으로 알아보겠습니다.

gitOps 구현 툴 중 Github Action을 선택한 이유는 다음과 같습니다.