지속적인 통합
을 의미.지속적인 배포
를 의미.우리는 개발의 협업 과정에서 계속해서 코드를 통합하고 배포하는 과정을 반복한다.
이 과정을 자동화하기 위한 개념으로써 CI와 CD가 등장.
그리고 이 개념의 실체가 되어주는 것이 자동화 서버인 Jenkins이다.
이 외에도 TravisCI와 AWS의 Pipeline 등 다른 도구를 사용할 수 있으나 Jenkins가 가장 대표적이다.
다섯가지의 핵심 키워드로 젠킨스를 요약할 수 있다!
만약 파이프라인을 안한다면 빌드까지만 젠킨스의 도움을 받고, 다른 툴 또는 방법으로 배포를 진행할 수도 있다.
젠킨스는 오픈소스이고, 플러그인이 1,000가지 이상 존재한다.
자주 쓰이는 것은 소수이고 예시로 Credentials Plugin
을 들 수 있다.
Credentials Plugin
빌드부터 배포까지 자동화 하려면 당연하게도 git repo부터 시작해서 접근 등 권한이 필요한 일이 많다.
각종 token 등 권한 관련 중요한 정보들을 저장하는데 도움을 주는 플러그인이다.
보통 이렇게 설치하면서 필요한 플러그인 선택할 수 있게 해준다.
위에서 말한 Credentials 같은 경우는, 당연히 필요한거라 기본 설치(제안목록)에 들어있어서 별도로 선택하진 않는다.
이 외에도 ssh 관련 이라던지, 본인이 필요하다고 느껴지는 모든 플러그인들을 찾아보고 추가해주면 된다.
젠킨스에게 이렇게 빌드하고 저렇게 배포해줘 라는 일종의 작업 명세서
를 말한다.
즉, 이렇게 스크립트
를 통해 원하는 순서대로 파이프라인을 구축할 수 있는 것이다.
스크립트 작성 또한 여러 방법이 있는데, 현재 우리 회사는 선언형
으로 작성되어 있다.
stages {
stage('Build') ...
}
이런식으로 빌드 단계
에서는 어떤걸 할거다~
라고 알려줄 수 있다.
젠킨스 파이프라인 과정중에 실패했다면, 어느 지점에서 실패 했는지 확인할 수 있다.
젠킨스는 서버 ip에 8080 포트를 디폴트로 접속할 수 있다.
윈도우/맥/리눅스 등 모두 사용가능하고, 서비스를 돌릴 서버에서 다운받아 사용하면 된다.
클라우드 서비스를 사용한다면, AWS에 EC2 등의 컨테이너에서 돌릴 수 있다. (AWS에서 자체적으로 제공하는 Pipeline도 있음)