04. DevOps,CICD

DevOps 기술적 개념(CI/CT/CD/CM)

카이저일공 2024. 1. 18. 14:31
DevOps 기술적 개념

DevOps 기술적 개념

DevOps는 소프트웨어 개발 및 운영 프로세스를 개선하고, 품질을 향상시키고, 비용을 절감하는데 중요한 역할을 합니다.

가. CI (Continuous Integration)

1. 정의: 코드 변경사항을 주기적으로 빌드 및 테스트하고 중앙 리포지토리에 병합하는 프로세스.

2. 오픈소스 솔루션 예시: Jenkins, GitLab CI, Travis CI

3. 도입시 고려사항: 호환성, 확장성, 통합의 용이성

나. CT (Continuous Testing)

1. 정의: 개발 과정에서 지속적으로 소프트웨어를 테스트하여 품질을 유지하는 프로세스.

2. 오픈소스 솔루션 예시: Selenium, JUnit, TestNG

3. 도입시 고려사항: 테스트 자동화, 커버리지, 실행 시간

다. CD (Continuous Deployment/Delivery)

1. 정의: 소프트웨어를 자동으로 테스트하고 프로덕션 환경에 배포하는 프로세스.

2. 오픈소스 솔루션 예시: Jenkins, Spinnaker, Argo CD

3. 도입시 고려사항: 배포 자동화, 롤백 메커니즘, 안정성

라. CM (Continuous Monitoring)

1. 정의: 시스템의 성능을 지속적으로 모니터링하고 데이터를 분석하여 시스템의 상태를 파악하는 프로세스.

2. 오픈소스 솔루션 예시: Prometheus, Grafana, ELK 스택

3. 도입시 고려사항: 모니터링 범위, 경보 시스템, 데이터 분석

마. 파이프라인 예시

  • 코드 작성 및 CI: 개발자가 코드를 작성하고, 커밋하면 CI 도구(Jenkins)가 자동으로 코드를 빌드하고 초기 테스트(JUnit)를 실행합니다.
  • CT 단계: 변경된 코드는 자동화된 테스트(Selenium)를 통해 추가적으로 검증됩니다.
  • CD 단계: 테스트를 통과한 코드는 CD 도구(Spinnaker)에 의해 프로덕션 환경에 자동으로 배포됩니다.
  • CM 단계: 배포된 애플리케이션은 지속적으로 모니터링(Prometheus 및 Grafana)되어 시스템의 성능과 상태를 추적하고, 문제가 발생하면 즉각적인 알림을 제공합니다.

이러한 통합된 DevOps 파이프라인은 지속적인 피드백과 개선을 가능하게 하며, 더 빠른 배포, 더 나은 품질 관리, 그리고 효율적인 운영을 지원합니다.

'04. DevOps,CICD' 카테고리의 다른 글

DevOps vs GitOps  (0) 2024.01.18
DevSecOps의 주요 보안 요소  (0) 2024.01.18
DevSecOps는 개발, 보안, 운영의 통합  (0) 2024.01.18
DevOps Overview  (0) 2024.01.17
Git vs Harbor vs Nexus 구분  (0) 2024.01.15