티스토리 뷰
CI/CD
- CI/CD는 지속적인 통합(Continuous Integration)을 의미하는 CI와 지속적인 배포(Continuous Deployment)을 의미하는 CD로 구성된 소프트웨어 개발 방법론입니다.
- CI/CD를 사용하면 개발자들은 새로운 코드 변경 사항을 개별적으로 통합하고, 자동화된 빌드 및 배포 프로세스를 통해 테스트와 프로덕션 환경으로 지속적으로 전달할 수 있습니다.
- 이러한 방법론을 사용하면 개발자는 더 빠르게 소프트웨어를 개발하고, 버그를 더 빠르게 찾아내며, 안정적인 애플리케이션 배포를 달성할 수 있습니다.
CI/CD의 단계
- CI/CD는 위와 같은 순서로 진행되며, Code,Build,Test 부분은 CI이고 Release - Deploy - Operate은 CD입니다.
- CI는 개발자들이 작성한 코드를 자동으로 빌드하고 테스트하는 자동화 프로세스입니다.
- Code는 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계입니다.
- Build는 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계입니다.
- Test는 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인하는 과정입니다.
- 개발자들은 작업한 코드를 잦은 풀 리퀘스트와 머지로 주기적으로 통합함으로써 충돌이나 문제를 조기에 발견하고 해결할 수 있습니다.
- CD는 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며,빌드된 코드를 자동으로 배포하는 과정입니다.
- Release는 배포 가능한 소프트웨어 패키지를 작성합니다.
- Deploy는 프로비저닝을 실행하고 서비스를 사용자에게 노출하는 실질적인 배포를 담당하는 부분입니다.
- Operate는 서비스 현황을 파악하고 생길 수 있는 문제를 감지합니다.
- 프로세스를 통해, 준비가 완료된 빌드를 코드 리포지토리에 자동으로 배포할 수 있기 때문에 운영팀이 보다 빠르고 손쉽게 애플리케이션을 프로덕션으로 배포할 수 있게 됩니다
Github Action
- GitHub Actions는 Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼입니다. 레포지토리의 action 탭에서 사용가능합니다.
- 레포지토리에서 Pull Request 나 push 같은 이벤트를 트리거로 GitHub의 자동화 프로세스인 워크플로우(Workflow)를 구성하여, 각 작업은 자체 가상 머신 또는 컨테이너 내부에서 실행됩니다.
- 워크플로우는 .yml (혹은 .yaml ) 파일에 의해 구성되며, .github/workflows 디렉토리 이하에 위치합니다.
- 테스트, 배포 등 기능에 따라 여러 개의 워크플로우로도 만들 수 있습니다.
댓글