반응형
CI/CD란?
- CI(Continuous Integration) : 지속적 통합
- CD(Continuous Deployment) : 지속적 배포
- 코드 저장소(Github, BitBucket, GitLab)에 코드를 통합시키면 CI로 통합된 코드에 에러가 없는지 체크하고 CD로 배포한다.
- 설치형 도구인
Jenkins
- 클라우드형 도구인
Travis CI
,Circle CI
등이 있다. - 코드 저장소인
Github
,BitBucket
,GitLab
등에서 자체 제공하는 기능들도 있다. (Github Actions
,GitLab CI/CD
,BitBucket Pipelines
)
설치형 : Jenkins
- 내 컴퓨터 혹은 서비스가 돌아갈 서버에 직접 설치 후 사용한다. (윈도우, 맥, 리눅스 모두에서 사용 가능)
- 설치 시 해당 컴퓨터(서버)의 주소로 접속 가능한 웹사이트가 만들어진다.
- 해당 웹페이지에서 코드 통합 시 일어날 작업을 직접 설계한다.
- 코드 저장소에서 소스가 Push, Merge 되면 젠킨스가 서버의 젠킨스 폴더로 코드를 다운로드한다.
- 그리고 해당 코드에 대해 CI를 수행한다.
- 테스트 실패 시 지정된 메일 주소로 이메일을 보내거나, Slack 메시지로 내용을 전송해 사용자가 이를 파악할 수 있도록 한다.
- 테스트 성공 시 프로젝트를 젠킨스 폴더에서 배포용 파일로 빌드 후 돌고 있던 서비스를 중지하고 해당 파일로 새 서비스를 실행한다.
- 또한 젠킨스 플러그인을 활용해 AWS, 도커 컨테이너에 파일을 올릴 수도 있고, 다수의 작업을 파이프라인으로 체계화할 수도 있다.
클라우드형 : Travis CI
- 기본적인 원리는 대부분 동일하다.
- 프로젝트 최상위 폴더에. travis.yml 파일을 생성해 해당 파일에 작업내용을 작성한다.
- 코드 저장소에 코드를 통합하면 이를 클라우드 환경의 Travis Server가 받아가고, 이에 대해 테스트를 진행한 후 사용자에게 성공과 실패 여부를 전송한다.
- 성공할 경우 배포서버까지 소스를 전달해 업데이트한다.
자체 제공형 : Github Actions
- 기본적인 원리는 대부분 동일하다.
- 코드 저장소 자체적으로 제공하는 CI/CD기능이다.
- 소스코드를 테스트하고 배포하는 워크플로우의 조합으로 매크로를 생성한다.
- 직접 yml파일을 작성하여 설정할 수도 있다.
- 마켓플레이스에서 기작성 된 워크플로우를 다운하여 사용할 수도 있다.
참고 및 내용출처 : https://youtu.be/UbI0Q_9epDM?list=PLcTre5kSvixpF0kPJFWaLR02ana5hBjmK
반응형
'🛠 기타 > 개발상식' 카테고리의 다른 글
Docker란? (0) | 2021.07.17 |
---|---|
유데미(Udemy) 한글자막 undefined 해결 (21.07.15) (0) | 2021.07.15 |
함수형 프로그래밍이란? (0) | 2021.05.02 |
명령형 UI와 선언형 UI (0) | 2021.05.02 |
SSH(Secure Shell Protocol) (0) | 2021.01.22 |