CI/CD 기본 개념

nomoreFt·2021년 6월 24일
0

CI/CD

목록 보기
1/1

CI - Continuous Integration (지속적 통합)

sw는 여러 팀에 의해 개발되는데 버전 컨트롤시스템(GIT) 등 출시하기 위해 통합한다.

이 과정에서 각 구성원의 코드를 받아 합치기 전에, 검증을 하지 않으면 문제가 발생할 수 있다.

(Conflict, 코드의 결함 등)

수시로, 지속적으로 테스트 작업을 해야하는데, 자동화 할 필요가 있다. (자동화 지원 다양한 도구와 서비스)

CD - Continuous Deployment (지속적 배포)

sw 코딩한 결과를 최종 사용자에게 넘겨주는, 실행가능한 단계로 올린다. (AppStore에 올리거나 서버 배포 등)

코딩을 마칠때마다 지속적으로 수행하는 것.(CI 이후 CD 실행)

CI/CD 툴 (보통 함께 구축되어 묶여서 언급된다. 자동화를 위한 개념)

종류**

설치형 (Jenkins)

****- 보통 Linux에서 많이 사용되는데, 해당 컴퓨터나 서버의 주소로 크롬등의 브라우저로 접속할 수 있는 페이지가 하나 열린다. (CI/CD 설정을 위한 설정 페이지)

ex) SpringBoot로 코딩한 프로젝트를 서버에 배포를 위해 Jenkins에 새 자동화작업, 매크로를 하나 생성, 이를 Github 등 프로젝트를 저장하는 서비스 계정에 연동을 시킨다.

소스가 푸쉬될때마다 이 Git 저장소의 특정 브랜치에 소스가 Push될때마다 젠킨스 전용 폴더에 자동으로 다운된다. 그 다음에 이뤄질 일들을 매크로로 지정하면 된다.

/CI

Github에서 당겨온 코드에 문제가 없는가? → Test코드에 지정된 test를 돌려 확인 (Gradle 을 사용하면 Gradle명령어를 이용해 검사 가능. 마켓에 1800개가 넘는 플러그인이 있어서 사용 가능, 오류나면 메일로 전송 가능)

/CD

프로젝트를 배포용 파일로 빌드한다음, 원하는 파일로 변경해서 돌고있는 서비스를 중지하고 새 서비스를 실행하는 스크립트를 만드는것.

모든 과정은 젠킨스 페이지에서 거시화되어있다.

Jenkins 플러그인을 잘 활용하면 AWS에 연동해서 Docker 컨테이너로 올려주거나, 다수의 작업들을 파이프라인으로 체계화하거나 젠킨스 화면을 편리하고 예쁘게 바꿔주는 편리한 기능들이 많다.

클라우드형 (Travis CI, Circle CI, Team City)

클라우드로 컴퓨팅 공간을 제공하여, 자동화 작업을 설정할 수 있다.

/CI

github 연동, ci/cd 진행할 레포지토리 연동, 지정한 형식대로 어떤 자동화 작업을 진행할지 설정

/CD

깃허브에서 자체 제공 (Github Actions)

자기 프로젝트에 있는 레포지토리에 들어가면 Actions에서 'workFlow' 자동 템플릿이 있어서 매크로 제작, yml로 제작 등 할 수 있다.

profile
디지털 세상에서 살아남기

0개의 댓글