on
CI/CD란?
CI/CD는 소프트웨어 개발 방법론적인 내용이다. 관련하여 글 링크를 하나 첨부하였다. Redhat CI/CD 관련글 바로 가기
지속적 통합(CI)이란?
CI로 더 많이 알려진 지속적 통합은 동일한 소프트웨어 프로젝트에서 작업하는 모든 사람이 코드 베이스에 대한 변경 사항을 정기적으로 공유한 다음, 각 변경 후에 코드가 원래 의도한 대로 작동하는지 확인하는 방식입니다. 지속적 통합은 공동 작업, 자동화 및 짧은 피드백 주기를 촉진하는 데 목적을 둔, 소프트웨어 구축 및 릴리스에 대한 DevOps 접근 방식의 핵심을 이룹니다.
지속적 통합은 변경 사항을 소스/버전 관리 시스템에 정기적으로 커밋하는 작업부터 시작하므로 모두가 같은 기반에서 빌드하게 됩니다. 커밋할 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분이 없도록 보장합니다. 지속적 통합은 그 자체로 유익하지만 CI/CD 파이프라인을 구현하기 위한 첫 번째 단계이기도 합니다.
CI의 실행
지속적 통합의 핵심 요소는 다음과 같습니다.
- 소스 코드 파일, 라이브러리, 구성 파일 및 스크립트를 포함하여 전체 코드 베이스를 포함하는 소스 또는 버전 관리 시스템
- 자동화된 빌드 스크립트
- 자동화된 테스트
- 빌드 및 테스트를 실행할 인프라
모든 사람이 동일한 기반 위에 있으려면 동일한 저장소에서 작업하고 변경 사항을 서로 자주 공유해야 합니다. 경험상 모든 사람이 적어도 하루에 한 번 변경 사항을 커밋하도록 하는 것이 좋습니다.
지속적 배포(CD)이란?
지속적 배포는 빌드, 테스트 및 배포 단계를 자동화하는 DevOps 방식을 논리적 극한까지 끌어 올립니다. 코드 변경이 파이프라인의 이전 단계를 모두 성공적으로 통과하면 수동 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포됩니다. 지속적 배포를 채택하면 품질 저하 없이 최대한 빨리 사용자에게 새로운 기능을 제공할 수 있습니다.
CI / CD 장,단점
-
시장 출시 기간 단축 CI/CD 파이프라인의 주요 목표는 사용자에게 제대로 작동하는 소프트웨어를 자주 빠르게 제공하는 것입니다. 기술 대기업이 Agile 및 DevOps 기술을 채택하여 개발 프로세스에 혁신을 이루고 사용자에게 지속적인 개선을 제공하면서 업계를 선도하고 있지만 그 뒤를 따르는 소규모 조직에게는 경쟁 환경이 더욱 치열해지고 있습니다.
-
위험 감소 단순히 출시 기간이 짧다고 해서 경쟁을 따라 잡는 데 도움이 되는 것은 아닙니다. 빠른 릴리스는 제품 관리자와 마케팅 전문가가 개발 프로세스에 보다 긴밀하게 참여할 수 있는 기회를 제공합니다.
-
검토 시간 단축 통합 도구를 이용하는 개발자는 자연스럽게 더 자주 코드를 변경하고 싶은 마음이 생기게 되는데, 경험적으로 최소 하루에 한 번은 코드를 변경합니다. 나머지 팀원들과 코드를 정기적으로 공유하면 모든 작업자가 동일한 기반 위에서 작업할 수 있을 뿐만 아니라 코드 검토 속도가 빨라지고 변경 사항을 더 쉽게 통합할 수 있습니다.
-
코드 품질 개선 코드의 동작을 테스트하는 일은 소프트웨어 릴리스 과정에서 필수적인 단계이지만 이 작업을 철저하게 수행하려면 엄청난 시간이 소요될 수 있습니다. CI/CD 파이프라인의 핵심 기능으로, 빌드할 때마다 실행되는 일련의 자동화 테스트가 있습니다. 자동화된 테스트를 작성하려면 시간과 전문 지식을 투자해야 하지만 충분히 그 결실을 거둘 수 있습니다.