ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CI/CD와 Jenkins 동작 프로세스
    Dev Ops 2023. 1. 1. 21:22

    23년 자유롭게 본인 연구과제로 나는 CI/CD 개발을 선택했다. 왜냐하면.. 연말에 개발하면서 같은 소스베이스에서 여러개발자와 개발을 하는데.. 개발하다가 commit할라고 보면 충돌 나있고 또 비교하며 Merge하고 또 Commit할라고 하면 충돌나고 이런 경우가 많았다.(상당히 지치고 짜증나는 작업임) 그래서 해결방법을 찾아보니 Jenkins를 이용하여 자동 통합(CI)작업을 하면 이와 같이 merge할 경우 충돌하는 경우를 크게 줄일 수 있다고 한다. 그럼 CI/CD가 무엇인지 알아보자.

     

    - CI/CD란

    CI : 여러 개발자의 코드 베이스를 지속적으로 통합하는 것. (Continuous integration)

    CD : 여러 개발자의 코드 베이스를 지속적으로 배포가 가능한 상태로 만들고(Continuos Delivery), 배포하는 것.(Continuous Deploy)

    < CI/CD PipeLine>

    - 위의 사진은 CI/CD PIPE라인으로써 코드를 작성하고 commit을 하면 빌드,테스트를 겨처(통과하여야만) 배포상태 및 배포가 될 수 있는 것이다.

     

    - Jenkins와 git action

     

    위 CI/CD를 제공하는 대표적인 툴은 Jenkins와 git action이다. jenkins는 내가 얘기를 들은지 벌써 5년이 되었고 git action은 최근에 회사에서 사용해보려다가 못한 것으로 알고 있다. 

    간략히 비교해보면 Jenkins 자료가 많고 여러환경에서 사용가능하지만 적용하는 데 오래걸린다. GitHub Action의 경우, Github에 orientied되 있어 Git사용 시 수월하게 적용할 수 있으나 다른환경에서 적용이 어렵고 자료가 적다. 

    그리고 결정적으로 유료이다.. ㅎㅎ

    그래서 CI/CD 적용 Tool은 Jenkins로 해볼 생각이다.

    - Jenkins pipeLine 구성

     

    jenkins pipeLine구성은 4가지로 되어 있는데 admin, post, declaratives, steps 이렇게 있다. 

     

    간략히 admin은 어떤 jenkins instance를 사용할 지 결정

    post는 한 stage가 끝나고 후속 처리

    declaratives는 환경설정,트리거,언제 설정 약간 meta data느낌?

    steps는 stage의 하나하나 스탭을 의미한다.

     

    흠... 아직 지식 습득이 많치 않아 이만 줄이고 계속해서 수정 보완 할 생각이다. 그럼 이만...

     

     

     

     

Designed by Tistory.