Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: Nginx Blue/Green 무중단 배포 구현 #259

Merged
merged 2 commits into from
Oct 22, 2024
Merged

Conversation

adorableco
Copy link
Contributor

@adorableco adorableco commented Oct 22, 2024

PR

✨ 작업 내용

  • prod 환경의 무중단 배포를 위해 nginx를 이용하여 Blue/Green 방식으로 구현했습니다.

✨ 참고 사항

  • deploy.sh 는 깃허브에서 같이 형상관리를 할까.. 안전하게 인스턴스에 바로 작성해뒀습니다.
    • 노션 환경변수 페이지에 기록해뒀습니다.
  • 컴포즈 파일을 dev, prod가 모두 동일하게 사용하므로 기존의 docker-compose-dev.yml 이름 대신 docker-compose.yml 로 변경했습니다.
  • redis 컨테이너는 배포와 상관없이 계속 돌아가면 된다고 생각해서 compose 파일에서 제외하는 것을 제안합니다!

⏰ 현재 버그

(버그는 아니지만)

  • redis 와 동일 네트워크로 연결돼있어야 해서 blue, green 모두 네트워크로 연결돼있는데 이런 경우에도 포트 번호를 같이 써도 되는지 확실하지 않습니다. (보통 포트를 중복으로 사용해도 된다고 함)
    • 이는 develop 브랜치에서 확인을 한 후에 불가능하다면 compose 파일을 blue, green 으로 나눠서 레디스를 배포 때마다 해당 도커 네트워크에서 재구동해줘야할 것 같습니다.

✏ Git Close

@adorableco adorableco added ✨ Feature 기능 개발 🌏 Infra 인프라 관련 🫧 seyeon seyeon labels Oct 22, 2024
@adorableco adorableco requested a review from RinRinPARK October 22, 2024 03:11
@adorableco adorableco self-assigned this Oct 22, 2024
@adorableco adorableco linked an issue Oct 22, 2024 that may be closed by this pull request
1 task
Copy link

테스트 커버리지 측정

There is no coverage information present for the Files changed

Total Project Coverage 80.26% 🍏

Copy link
Contributor

@RinRinPARK RinRinPARK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

노션에 deploy.sh가 중간에 잘린 듯합니다
마지막에 그린 컨테이너 올린 후에 헬스체크, nginx 재부팅, 블루 컨테이너 다운하는 과정이 빠져있어!

redis 컨테이너는 배포와 상관없이 계속 돌아가면 된다고 생각해서 compose 파일에서 제외하는 것을 제안합니다! -> 이거 동의!!

Comment on lines 8 to 21
ports:
- "8080:8080"
networks:
- phote-network

jarimage:
depends_on:
- redis
green:
image: rinpark/phote:latest
restart: unless-stopped
container_name: myphote
environment:
- TZ=Asia/Seoul
ports:
- "8080:8080"
- "8081:8080"
networks:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금 blue가 8080:8080 green이 8081:8080인데,
blue에서 8080이 중복으로 쓰이니까 8082:8080으로 명확히 역할을 분리해주는게 좋을 것 같아용
808n은 외부에서 호스트를 가리키는 번호, 8080은 내부에서 쓰는 번호로!!

Copy link

테스트 커버리지 측정

There is no coverage information present for the Files changed

Total Project Coverage 80.26% 🍏

@adorableco adorableco merged commit fcba7fb into develop Oct 22, 2024
1 check passed
@adorableco adorableco deleted the seyeon/swm-199 branch October 22, 2024 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발 🌏 Infra 인프라 관련 🫧 seyeon seyeon
Projects
None yet
Development

Successfully merging this pull request may close these issues.

✨ Feat: Nginx Blue/Green 무중단 배포 구현
2 participants