Continuous Integration
과 continuous deployment
의 약자로, 직역하면 지속적인 통합 + 지속적인 배포를 뜻한다.
아마 대략적으로 무엇을 의미하는지 짐작할 수 있었겠지만, 쉽게 설명하자면 개발 단계부터 배포까지 자동화 하는 것을 의미한다.
배포를 배운 적이 있었는데, 그 당시 쿠버네티스를 이용해서 배포를 했다. 이때 수정사항이 생길 때마다 git에 push하고, docker도 따로 build하고 구글 클라우드로 push도 한 뒤에, 구글 클라우드 shell을 통해 kubernetes 해당 클러스터에 접속해 이미지 업데이트 명령어를 작성해야만 했다. 설명만 했는데도 아마 과정이 복잡하고 귀찮게 느껴질 수 있을 것이다. 하지만 CI/CD 배포 자동화를 설정해두면, git에 push하기만 해도, 위의 과정이 자동으로 이루어져 훨씬 간단하게 처리할 수 있다.
그럼 어떻게 하면 되는걸까?
예전에 이미지 업로드를 공부할 때, 이미지를 업로드하면 자동으로 이미지를 크기별로 저장하는 기능을 만들어 본 적이 있다. 해당 글은 블로그로 안올려서 참고를 도와줄 순 없을 것 같다.. 다음에 올리면.. 참고로 넣어두겠다 그때 구글 클라우드의 트리거
를 이용해서, 이미지가 업로드 될 때! 해당 기능을 수행하도록 코드를 짰었다.
이와 마찬가지로 CI/CD도 git에 push가 될 때를 기준으로 어떤 기능을 실행할 것인지 코드를 작성해 설정해두면 된다!
우리가 처리해줘야하는 과정을 위에서 언급했지만, 다시 정리하면 아래의 순서와 같다
- docker 이미지 build
- docker 이미지 push
- 해당 이미지로 업데이트