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