본문 바로가기
DevOps

CI/CD 구축 시 방식에 대한 고민(Jenkins, Github Actions)

by 이숴 2023. 7. 17.
반응형

이번 프로젝트를 배포할때 무중단 배포를 적용하기 위해 두가지 방법에 대해 공부를 했었습니다.

 

결국에는 Github Actions을 선택해서 구축을 했는데요.

그 이유를 적어보겠습니다.

 

저는 먼저 Jenkins를 배우고 Github Actions를 배웠었는데요.

둘의 차이점을 간단히 보겠습니다.

Jenkins

Jenkins의 경우 많은 지원기능이 있고, 오픈소스이기 때문에 매우 큰 커뮤니티를 가지고 있습니다. 이를 통해서 문제해결에 빠른 도움을 받을 수 있습니다.

 

하지만 Jenkins 서버를 따로 호스팅해야하기도 하고, 설정과 관리가 복잡하다는 단점이 있습니다.

 

Github Actions

Github Actions 같은 경우는 github 플랫폼과 완벽히 통합되어있어서, 추가적으로 플러그인을 설치하는 등의 설정이 필요없습니다.

그리고 매우 친화적인 UI를 가지고 있으면 코드로 저장되고 github에서 버전을 관리해주기 때문에 간단히 설정을 할 수 있습니다.

 

하지만 Github Actions는 비공개 리포지토리에서는 유료로 사용되기 때문에 기업단위에서는 Jenkins를 사용하는 것으로 알고 있습니다.

 

CI/CD

저희 프로젝트의 경우 공개 리포지토리이면서 빠르게 사용을 해야했기 때문에 비교적 러닝 커브가 낮은 Github Actions를 사용해서 CI/CD를 구축했습니다.

 

추가로 워크플로우 과정 중에  Docker를 활용하여 애플리케이션을 이미지로 빌드하고, 이 이미지를 GitHub의 컨테이너 레지스트리인 ghcr.io에 푸시하는 과정을 수행을 함으로, 나중에 서버를 ScaleOut 할 때 해당 이미지를 사용해 새로운 서버에 애플리케이션을 배포할수 있도록 구성했습니다.

 

지금은 Github Actions를 쓰는게 편하기 때문에 사용하지만, 이후 실무에서는 비용때문에 Jenkins를 사용할 수 있기 때문에 둘다 공부를 지속할 예정입니다.

 

 

 

 

반응형

'DevOps' 카테고리의 다른 글

슬랙 웹훅 url을 잊어버렸을 때  (0) 2023.11.20
Docker로 pinpoint를 띄우는법  (0) 2023.07.21
jar 파일 생성 및 AWS 배포 작업  (0) 2023.03.03

댓글