[CI/CD] CI/CD 기초 지식


프로젝트를 만들고 배포 후 동작이 올바르게 동작하지 않거나 수정사항이 생겼을 때,

수정 -> 컴파일 -> 빌드 -> 테스트

과정들을 반복해야한다.


 

CI (Continuous Integration)

  • 지속적인 통합이라는 의미
  • 개발을 진행하면서 여러명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있도록 하는 것을 의미한다.
참고

개발자들 각자 구현해야 할 기능을 new branch에 개발하고 main으로 통합을 Merge라고 한다.


CD (Continuous Deployment)

  • 지속적 서비스 제공, 지속적인 배포를 의미
  • 코드를 변경을 하고 Merge를 통해 빌드, 테스트를 통과하면 수동 개입 없이 해당 변경 사항을 자동으로 배포한다.

CI/CD 파이프라인

Push/Merge와 같은 이벤트가 발생했을 경우 테스트/빌드/배포와 같은 작업을 자동으로 수행해주는 것을 말한다.

단계별 설명

  1. 관리 및 계획 - JIRA를 통해 프로젝트를 생성하고 할당한다.
  2. 코딩 - 개발자들이 코딩을 한다.
  3. 검증 (CI) - 개발자가 작성한 코드를 커밋하고 푸시한다. (GitLab으로 오류 발견 및 수정)
  4. 패키지 - 배포 가능한 형태인 Docker 이미지로 패키징 된다.
  5. 코드 보안 - 코드의 취약점 분석한다.
  6. 배포 (CD) - K8S, ECS 같은 오케스트레이션 도구를 사용해서 자동으로 배포 된다.
  7. 환경 구성 및 모니터링 - 배포된 애플리케이션을 모니터링 한다.
  8. 방어 - WAF와 같은 것들로 보안 수준을 유지 및 관리한다.

'DevOps > CI & CD' 카테고리의 다른 글

[CI/CD] GitLab 기초 지식  (0) 2024.09.30
[CI/CD] 이중화 기초 지식  (1) 2024.09.23
[CI/CD] Storage 기초 지식  (0) 2024.09.23
[CI/CD] Gitlab Vs Github  (5) 2024.09.23
[CI/CD] Docker 기초 지식  (4) 2024.09.20