![프로젝트를 위한 무중단배포 준비(Doker,Jenkins(CI/CD),nginx)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXIluZ%2FbtsG5kQthuZ%2FfJm9t2yBGBZaaFjY7kigi0%2Fimg.png)
이번 2차 프로젝트를 시작하며 배포가 목표이기에 Doker를 활용한 배포를 진행해보려고 한다.
배포이전에 개념정리 후 시작할 예정이다. 아직 부족해서 개념이 틀릴 수 있을 거 같다.
Jenkins를 활용한 CI/CD 구축 - Docker를 활용한 무중단 배포
1. 무중단 배포가 왜 필요할까?
프론트엔드는 실시간으로 파일이 변경되는 반면, 백엔드는 서비스를 일시적으로 중단시켜야 한다.
배포 중 중단되면 사용자경험에 부정적인 영향을 끼치므로 무중단 배포를 통해 서비스를 지속적으로 제공하여
사용자 경험을 향상하고 , 신뢰성을 높일 수 있다.
2. 전략
찾아보니 무중단배포에도 여러가지 방식(롤링, 블루그린, 카나리)이 있지만 블루그린을 많이 추천받아 블루그린을 이용해보려고 한다.
1. 인스턴스를 두개 만들어 현재버전(blue) , 신버전(green)을 준비해 놓는다.
2. 한번에 전환해 다운타임을 없게 할 수도 있고 배포 이후에 문제가 생길 시 빠르게 롤백할 수도 있다.
3. 단, 자원이 두배로 든다.
3. Doker , Jenkins , CI/CD , nginx 흐름도
개발자 (push) -> Github(CI:지속통합) -> Jenkins -> Jar(nginx 등록)
깃헙에 push를 하나 단 , 다른 브랜치에서 최종 test 후실행 이 잘되면 main으로 merge 하고 배포로 넘긴다.
이후 Jenkins로 Jar 파일을 올리고 배포를 바로 하는 게 아니라 도메인, 서버 오류가 날 수 있기 때문에 이때에도 test를 진행해야 한다 test 후 에러 없을 때 배포를 한다.
server 방식에도 아파치와 nginx 가 있으며 작은 앱웹 애플리케이션은 아파치로 된다고 하지만 공부를 위해
nginx를 채용했다.
대략적인 흐름을 알았으니 도커 설치부터 시작해서 배포까지 마쳐볼 예정이다.
'Doker+AWS' 카테고리의 다른 글
윈도우(ubuntu) + AWS 연동 (0) | 2024.05.04 |
---|---|
배포를 위한 Linux(ubuntu) + docker 설치 (0) | 2024.05.02 |
이제 갓 시작한 개발자 블로그 계속 발전하겠습니다. 최예나 팬입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!