CI/CD 툴 결정
채팅 서비스를 개발하며, 지속적인 통합(CI)과 지속적인 배포(CD)의 필요성을 인지했습니다.
코드의 통합을 자동화하여 개발 초기 단계부터 문제를 발견하고자 했고, 배포 과정을 자동화하여 배포 사이클을 빠르고 효율적으로 만들기를 원했기에 CI/CD 도구의 도입을 결정했습니다.
Jenkins vs GitHub Actions
우리팀은 CI/CD 툴로 자주 언급되는 Jenkins와 GihubActions를 비교 후 선택하였습니다
•
Jenkins
장점 | 단점 |
• 다양한 플러그인으로 확장이 가능하여 확장성이 높다.
• 관련한 큰 커뮤니티가 형성되어 있어 참고할 자료가 많다 | • 설정과 관리를 직접 해줘야해서, 초기 설정에 시간이 많이 소요된다.
• 학습 커버리지가 있다. |
•
Github Actions
장점 | 단점 |
• GitHub 저장소에 내장되어 있어, 손쉽게 CI/CD를 구성할 수 있다
• 학습 커버리지가 적다. | • 비교적 최근에 나온 거라 자료가 적다. |
GitHub Actions를 선택한 이유
1.
Github과의 통합성
a.
프로젝트의 Repository로 GitHub을 사용중이었기에, 추가적인 연동 작업 없이 바로 CI/CD 파이프라인을 구성하고 실행하기 위해 GitHub Actions를 선택했습니다.
2.
사용 용이성
a.
1개월동안 진행되는 프로젝트인만큼 CI / CD 환경을 빠르게 구성해야 했기에 사용자 친화적 UI를 갖고 있고, 학습 커버리지가 적은 GitHub Actions를 선택했습니다.
배포 과정에서 AWS 서비스 사용
대규모 트래픽 환경을 고려한 인프라 설계 필요
동시에 많은 사용자가 접속하는 채팅서비스의 특성상, 서비스의 확장성과 안정성은 중요한 과제였습니다.
트래픽의 급격한 변화에 유연하게 대응할 수 있는 인프라 설계가 필요하다 생각하여 자동 배포를 위한 서비스 등을 찾게 되었습니다.
AWS 서비스
AWS 서비스 선택이유
AWS의 서비스들은 통합성이 뛰어나, 초기 설정에 드는 수고를 줄이고, AWS가 제공하는 강력한 관리 및 모니터링 기능을 활용하기 위해 AWS의 다양한 서비스를 선택했습니다.
CI / CD 도입 이유