AngelPlayer`s Diary

개념

CI (Continuous Integration : 지속적 통합)

개발팀의 소프트웨어 변경 사항을 지속적으로 통합하고 테스트

통합 문제를 조기에 발견하고 해결함

 

 

 

CI를 사용하는 이유

다수의 개발자가 형상관리 툴을 사용하는 환경에서 원천 소스의 충돌을 방어

MSA 환경에서 추가된 기능, 각 Micro Service의 동작 테스트를 통해 기능 충돌 방지

-> 버그를 신속하게 찾고, 새로운 업데이트의 검증 및 릴리즈 시간 단축

 

 

 

CD (Continuous Delivery/Continuous Deployment : 지속적 배포)

- Continuous Delivery

사용자에게 CI 이후 소프트웨어를 지속적으로 배달

 

- Continuous Deployment

CI 이후 소프트웨어를 자동 배포

 

 

CI : 빌드 -> 테스트 -> 병합

CD : 병합된 소스코드를 릴리즈

 

 

 

Jenkins

Java로 만들어진 오픈 소스 CI 툴

플러그인을 통한 AWS 배포, 테스트, 도커 빌드를 자동화 작업 처리

 

 

 

 

To Do

개발 환경

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

 

 

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band