💾 CS
CI/CD (Continuous Integration/Delivery & Deployment)
별이⭐
2024. 3. 21. 09:27
DevOps
💡 Development(개발) + Operations(운영)
- 소프트웨어 개발의 Agile 방법론을 기반으로 개발, 운영 팀 간의 협력과 통합을 강조하는 문화 철학, 방식 및 도구의 조합
- Agile 방법론?
- 변화에 빠르게 대응하고, 고객의 피드백을 적극 반영해 짧은 주기로 소프트웨어를 개발, 배포하는 것을 목표로 한다.
- Agile 방법론?
DevOps를 왜 사용할까?
💡 왜 사용할까?
- 개발주기 단축과 신속한 제공
- CI/CD 같은 자동화된 프로세스를 통해 개발-배포까지의 시간을 크게 단축시킨다.
- 배포 빈도와 속도를 개선해 제품을 더 빠르게 혁신하고 개선할 수 있다. 즉, 고객에게 빠르게 새로운 기능을 제공할 수 있다.
- 안정성
- CI/CD 방식을 사용해 각 변경 사항이 제대로 작동하는지, 안전한지 테스트해 품질을 보장한다.
- 협업 강화
- 개발팀과 운영팀이 긴밀하게 협력해 많은 책임을 공유해 비효율성을 줄이고 시간을 절약한다.
CI/CD
💡 지속적 통합과 지속적 제공/배포
- CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미한다.
- DevOps 방법론의 필수적인 부분이다.
- 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 한다.
- CI/CD가 연결된 사례를 CI/CD 파이프라인이라고 부른다.
💡 CI(지속적 통합)
- 개발자가 코드 변경 사항을 공유 소스 코드 리포지토리에 자동으로 자주 병합(merge)하는 소프트웨어 개발 방식
- 이 과정에서 자동화된 빌드 및 테스트를 실행해 코드 변경 사항이 기존 코드와 잘 통합되는지 검증한다.
- 핵심 목표는 신속한 버그 해결, 품질 개선, 업데이트 검증 및 배포 시간 단축이다.
💡 CD(지속적 제공/배포)
- 코드의 변경 사항의 통합, 테스트, 제공을 나타내는 프로세스. 두 가지 부분으로 구성된다.
- 지속적 제공
- 코드 변경 사항이 자동으로 빌드, 테스트를 거쳐 준비된 환경까지 자동으로 배포되는 것
- 프로덕션 환경에 배포하기 위해 준비하는 단계. 프로덕션 환경 배포 자동화 X
- 지속적 배포
- CI/CD 파이프라인의 최종 단계
- 업데이트를 실제로 프로덕션 환경에 배포하는 것을 자동화해 고객이 사용할 수 있도록 하는 것
- 지속적 제공