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

[#63] 블루 / 그린 무중단 배포를 위한 스크립트 추가 #64

Merged
merged 4 commits into from
May 7, 2024

Conversation

yel-m
Copy link
Member

@yel-m yel-m commented May 7, 2024

#️⃣ 연관된 이슈

Resolves #63

📝 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요 (이미지 첨부 가능)

  • CodeDeploy의 배포에는 각 단계 별 수명 주기가 존재합니다. 수명 주기에 따라 원하는 스크립트를 수행할 수 있습니다.

  • ApplicationStart라는 수명 주기에 세 가지 스크립트를 차례로 실행시키기 위해 appspec.yml에 스크립트를 추가했습니다.

  • 세 가지 스크립트(run_new_was.sh, health_check.sh, switch.sh)는 다음과 같은 역할을 수행합니다.

  • run_new_was.sh: 새로운 WAS 시작

    • service_url.inc 에서 현재 서비스를 하고 있는 WAS의 포트 번호를 읽어옵니다.
    • 현재 포트 번호가 8081이면 새로 WAS를 띄울 타겟 포트는 8082, 혹은 그 반대 상황이라면 8081을 지정합니다.
    • 만약 타겟포트에도 WAS가 떠 있다면 kill하고 새롭게 WAS를 띄웁니다.
  • health_check.sh: 새로 띄운 WAS가 완전히 실행되기까지 health check

  • switch.sh: nginx 리로드를 통해 서비스하는 포트를 스위칭

    • sudo service nginx reload 는 nginx 서버의 재시작 없이 바로 새로운 설정값으로 서비스를 이어나갈 수 있도록 합니다.
    • sudo service nginx restart 는 말그대로 서버의 shutdown 이후 재시작하는 명령이므로 의도하지 않았다면 주의해야 합니다.

이 세 파일을 통해 새 애플리케이션 버전의 배포와 실행, 트래픽 전환 과정을 자동화하여 사용자 경험에 영향을 주지 않고 안정적으로 서비스를 제공할 수 있습니다.

스크린샷 (선택)

💬 리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

✅ Check List

  • PR 제목을 커밋 규칙에 맞게 작성했는가?
  • PR에 해당되는 Issue를 연결했는가?
  • 적절한 라벨을 설정했는가?
  • 작업한 사람을 모두 Assign했는가?

@yel-m yel-m self-assigned this May 7, 2024
@yel-m yel-m added the chore 빌드 업무 수정, 패키지 매니저 수정(gitignore 같은 것도) + 기타 사항 label May 7, 2024
@yel-m yel-m changed the title [#63] [chore] 블루 / 그린 무중단 배포를 위한 스크립트 추가 [#63] 블루 / 그린 무중단 배포를 위한 스크립트 추가 May 7, 2024
@yel-m yel-m merged commit 4300197 into develop May 7, 2024
1 check passed
@yel-m yel-m deleted the chore/#63 branch May 7, 2024 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore 빌드 업무 수정, 패키지 매니저 수정(gitignore 같은 것도) + 기타 사항
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant