CI/CD 알아보기

사람은 언제, 어디서든 실수를 할 수 있다. 그렇기 때문에 실수를 최소화 하기 위해서는 단순 반복 작업은 자동화 하기도 한다. 서비스를 운영하는 단계에서도 이러한 human error를 방지하기 위해 자동화 단계를 거친다.

가장 많이 사용하는, 그리고 이야기 하는 자동화는 바로 서비스 검증부터 배포에 이르는 단계이다. 이 단계에 적용되는 자동화를 CI/CD 라고 이야기 한다.

  • CI : build와 test를 통합한 프로세스
  • CD : 신규 배포에 대한 비용과 위험을 줄이고 언제나 신뢰할 수 있는 상태를 유지하는 것

서비스가 배포된다는 것은 이미 테스트와 빌드가 선행되어야 하기 때문에 CI 이후에 CD 단계를 거친다.

github이나 gitlab같은 git 기반의 서비스들도 CI를 위한 서비스를 제공하고 있는데,
push를 하는 경우 미리 작성된 테스트 코드를 실행하고,
테스트에 성공하는 경우 docker image를 만든다거나 하는 등의 단계를 자동화해 주곤 한다.

이를 통해 개발자는 배포 프로세스에 대해 신경을 덜 쓸 수 있으며, 여러 개발자가 항상 신뢰 할 수 있는 코드를 기반으로 개발하게 되어 협업에 유리해 진다.