[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/개발상식

CI/CD란?

inu 2021. 7. 17. 21:22
반응형

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