CI (Continuous Integration : 지속적 통합)
개발팀의 소프트웨어 변경 사항을 지속적으로 통합하고 테스트
통합 문제를 조기에 발견하고 해결함
CI를 사용하는 이유
다수의 개발자가 형상관리 툴을 사용하는 환경에서 원천 소스의 충돌을 방어
MSA 환경에서 추가된 기능, 각 Micro Service의 동작 테스트를 통해 기능 충돌 방지
-> 버그를 신속하게 찾고, 새로운 업데이트의 검증 및 릴리즈 시간 단축
CD (Continuous Delivery/Continuous Deployment : 지속적 배포)
- Continuous Delivery
사용자에게 CI 이후 소프트웨어를 지속적으로 배달
- Continuous Deployment
CI 이후 소프트웨어를 자동 배포
CI : 빌드 -> 테스트 -> 병합
CD : 병합된 소스코드를 릴리즈
Jenkins
Java로 만들어진 오픈 소스 CI 툴
플러그인을 통한 AWS 배포, 테스트, 도커 빌드를 자동화 작업 처리
개발 환경
Gitlab
EC2 Server (T2-medium)
목표
Jenkins로 CI/CD 환경 만들기
단 Jenkins를 서버에 직접 설치하는 것은 별도의 추가 설치 및 설정이 필요하므로, docker 컨테이너로 생성된 jenkins 이미지를 사용하도록 하겠습니다.
EC2 Server SSH 적용하기
EC2 Server에 Docker 설치하기
Jenkins 이미지 설치 및 사용자 계정 등록하기
파이프라인 구축하기
Reference
데이터 기반으로 지속적인 CI/CD 개선 환경 만들기
https://engineering.linecorp.com/ko/blog/build-a-continuous-cicd-environment-based-on-data
[Infra] EC2 Server에 Docker 설치하기 (0) | 2023.10.27 |
---|---|
[Infra] EC2 Server SSH 적용하기 (1) | 2023.10.25 |
[PuTTY] EC2 ssh pk(ppk, pem)으로 접속하기 (1) | 2023.07.25 |
[Yarn] Windows 환경에서 Yarn 최신 버전 적용하기 (1) | 2023.07.16 |
[bat] 확장자 일괄 변경하기 (0) | 2022.08.06 |