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

[REFACTOR/#295] 배포 방식 변경 #296

Merged
merged 5 commits into from
Dec 29, 2024
Merged

[REFACTOR/#295] 배포 방식 변경 #296

merged 5 commits into from
Dec 29, 2024

Conversation

yummygyudon
Copy link
Member

@yummygyudon yummygyudon commented Dec 27, 2024

Related Issue 🚀

Work Description ✏️

  • CI
    • docker 기반 Build 방식으로 변경했습니다.
    • operation-api 모듈의 build.gradle 내에 build profile parameter(-Pprofile)에 따라 yaml 파일을 선택할 수 있도록 했습니다.
    • test yaml의 경우, 변경 필요성이 존재하지 않기 때문에 제외 했습니다.
  • CD
    • EC2 SSH 접속 및 배포 명령 방식으로 변경했습니다.

PR Point 📸

※ CI Script Build 명령 시, -x test(테스트 제외) 제거

기존 CI의 경우, Local에서의 테스트 통과 후 PR을 생성하는 컨벤션에 의존한 채 Script 내에서는 테스트를 제외하고 Build 했습니다.
하지만 신뢰성 보장 후에 Merge 및 배포되는 것이 바람직하다고 판단하여 -x test 명령을 제거했습니다.


※ SSH 접속 & Github Actions 로컬 환경 파일 복사

<작업>

  • Code Deploy를 활용하여 Deployment 생성 & EC2 내 Code Deploy Agent 로 배포 실행되는 방식에서 Github Actions에서 SSH로 직접 접속하여 배포를 실행하도록 변경했습니다.
  • EC2 내 저장 공간을 확보하기 위해 Java(Docker 기반 배포이기 때문에 불필요) & Ruby(Code Deploy Agent)를 제거했습니다.

<이유>

  • 배포 과정에서 EC2 내에 실행되는 리소스 및 프로세스를 최소화
  • 배포 과정 가시화 (인수인계 효율, 문서화 용이)
  • AWS 서비스 의존성 절감

<우려점>

  • Github Actions 내에서 사용하는 appleboy라이브러리 변경에 대한 의존성 우려

- profile 파라미터에 따른 동적 yaml 설정
- `application-*.yml`을 메인 yaml 설정 & build 환경으로 복사
- 동적 Profile `ARG` 적용 (기본 값 = test)
- `-x test` 제거 (CI를 통한 안정성 검증 목적)
@yummygyudon yummygyudon linked an issue Dec 27, 2024 that may be closed by this pull request
10 tasks
Copy link

height bot commented Dec 27, 2024

Link Height tasks by mentioning a task ID in the pull request title or commit messages, or description and comments with the keyword link (e.g. "Link T-123").

💡Tip: You can also use "Close T-X" to automatically close a task when the pull request is merged.

Copy link
Contributor

@sung-silver sung-silver left a comment

Choose a reason for hiding this comment

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

작업하느라 고생 많으셨습니다!

Comment on lines +22 to +34
def profile = project.findProperty("profile") ?: "test"
println("Build Profile: $profile")

tasks.register("processProfileYaml", Copy) {
from("src/main/resources/application-${profile}.yaml")
into("build/resources/main") // 빌드 시 사용할 리소스 경로
rename { "application.yaml" } // 모든 프로파일 파일을 application.yaml로 변경
}

// processResources 작업 후에 실행되도록 의존성 추가
tasks.named("processResources") {
dependsOn("processProfileYaml")
}
Copy link
Contributor

Choose a reason for hiding this comment

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

오옹 배워갑니다!

@yummygyudon yummygyudon merged commit 34b5b8f into develop Dec 29, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[REFACTOR] 배포 전략 변경
2 participants