ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CI/CD란
    Etc/WEB 2021. 8. 31. 20:53
    728x90

    - 시장과 고객의 요구에 빠르게 반응하여 제품을 출시, 업데이트 하는 것이 중요

    세계적으로 많은 기업들이 ci/cd를 개발 프로세스로 활용하고있다.

     

    - CI/CD어플리케이션 개발부터 배포까지 모든 단계들을 자동화하여

    사용자에게 빈번히 배포할 수 있도록 만드는 것이다.

    CI: continuous integration

    CD: continuous delivery (혹은 deployment)

     

    CI는 버그 fix나 새로 추가한 기능들이 main repository에 주기적으로 merge되고, 빌드, 테스트되는 프로세스를 의미한다.

     

    CI가 중점적으로 둔 사항은 

     

    1. 개발자들은 코드 변경사항을 주기적으로, 빈번하게 merge해야 한다.

     

      => 동일한 소스파일을 서로 다른 개발자들이 너무 오랜기간동안 변경을 할 경우 conflict에 대한 수정시간이 매우 오래걸리기 때문이다. 그래서, 최대한 작은 단위로 개발하여 빈번하게 merge를 하는 것이 중요하다.

     

    2. 통합을 위한 단계(빌드, 테스트, 머지)의 자동화

     

      => 개발자들이 코드 리뷰를 받고 merge를 했다면, 자동으로 팀에서 만든 CI script를 통해 추가된 코드와 이 repository가 build가 되고, build가 잘 된다면 팀에서 작성한 unit Test, integrate test등 여러가지 test도 실행이 된다.

    build 나 test에 실패한다면 개발자에게 알림이 가서 다시 수정을 하는 식이다.

     

    장점

     

      => merge를 빈번하게 하여 빌드, 테스트 과정을 하므로 더 작은단위로 개발이 이루어지기 때문에

    버그를 발견하고 fix하기가 더 쉬워진다.

     

    jenkins 

    - java runtime 환경에서 작동을 하는 자동화 서버. 빌드, 테스트, 배포 모든 것을 자동화해준다.

    - 많은 플러그인을 활용해서 각종 자동화작업을 할 수 있다.

    - 개발자가 개발에만 몰입을 할 수 있게 해주는 좋은 툴이다.

    댓글

Designed by Tistory.