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

[BE] 무중단 배포를 구성한다. #434

Open
Seungpang opened this issue Sep 13, 2022 · 1 comment
Open

[BE] 무중단 배포를 구성한다. #434

Seungpang opened this issue Sep 13, 2022 · 1 comment

Comments

@Seungpang
Copy link
Collaborator

기능 상세

  • 현재 배포시 무중단 배포가 아닌 상황
  • 로드밸런싱을 적용하여 무중단 배포를 적용할 계획
    • blue/green 배포 방식

고려할 점

  • flyway로 db까지 작업을 진행하는데 데이터를 추가한다고 가정할 시 이게 무중단 배포에 영향이 가지 않을까? 라는 생각
@Seungpang
Copy link
Collaborator Author

배포방식

  • Rolling
    • 구 버전에서 신 버전으로 트래픽을 점진적으로 전환하는 배포
    • 구버전과 신버전이 동시에 존재한다는 단점이 있음
  • Blue/green
    • 구 버전이 블루, 신 버전이 그린그룹이다. 신 버전을 배포하고 일제히 전환하여 모든 연결을 신버전을 바라보게 하는 전략
    • 운영환경에 영향을 주지않고 빠른 롤백이 가능하다.
    • 인스턴스 구성의 자원이 2배가 든다.... -> 우테코 끝나고 이런 구성을 할 수 있을까...?
  • 카라니
    • 위험을 빠르게 감지할 수 있는 배포 전략
    • 지정한 서버 또는 특정 user에게만 배포했다가 정상적이면 전체를 배포
    • A/B 테스트가 가능
    • 이것도 신 버전과 구 버전이 동시에 존재한다.

일단은 심플하게!

일단은 심플하게 Rolling방식으로 진행하려 한다.
현재 docker도 사용하지 않고 있기때문에 프로젝트에 health check를 위한 api를 만들까 생각중이다.

  1. 인스턴스에 기존 실행되고 있는 포트가 아닌 다른 포트에 새론 애플리케이션 실행
  2. health check를 진행
  3. 성공이면 다른 서버도 동일하게 실행
  4. 두 인스턴스에 애플리케이션이 정상적으로 동작한다면 nginx가 바라보고 있는 port를 변경
  5. 바뀐 설정 적용을 위해 재시작

일단은 이런 플로우를 생각중이다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant