CI/CD 간단 지식
CI란
CI(Continuos Integration) 지속적 통합
자동화된 빌드 및 테스트가 수행된 후 개발자에 의해 변경된 코드를 Repository로 Merge를 진행하는 개발 방식
핵심 목표 : 버그를 신속하게 찾아 해결 & 품질 개선 & 업데이트 검증 & release 시간 단축
CD란
CD(Continuous Deployment) 지속적 배포
or CD(Continuos Delivery) 지속적 제공 (상호 교환하여 사용)
CD(Continuos Delivery)
애플리케이션에 적용한 변경 사항을 버그 테스트를 거쳐 Repository에 자동으로 업로드되는 것
CD(Continuous Deployment)
변경 사항을 Repository에서 프로덕션 환경(Cloud환경, On-Premises)까지 자동으로 릴리스하는 것
주의 유효한 코드를 Repository에 자동으로 Release -> 효과적으로 CD Process를 실현하기 위해서는 CI가 먼저 구축되어 있어야 함
CI 구축
우선 CI/CD에 대한 구축은 Github Action을 사용하여 구축을 할 예정이다
구축 이전에 간단하게 Github Action에 대해서 알아보자
Github Action
자동으로 build, test, deployment를 가능하게 해주는 CI/CD(여기서의 CD는 Continuos Deployment의 개념) 플랫폼
WorkFlow라는 Github Action이 제공해주는 템플릿을 작성하여 원하는 방식으로 구성을 할 수 있다
구성 요소
- WorkFlow
하나 이상의 Job들을 실행시킬 수 있는 자동화된 process 설정 파일(yaml 형식)
항상 Repository의 root path 하위에 .github/workflows 디렉토리 아래에 작성이 되어야 함
물론 여러개의 WorkFlow를 작성 가능
- Events
WorkFlow를 동작 시킬 Repository에서 일어나는 특정 동작
이번에 실습을 할 때는 Pull Request
와 Push
를 사용할 것이다
Github Action Events에 모든 예시들이 있으므로 필요할 때마다 찾아서 사용하면 되겠다
- Jobs
같은 Runner에서 실행 시킬 workflow파일 안에 있는 step들의 집합
shell script이거나 action을 통해 순서에 따라 독립적으로 실행된다
같은 Runner에서 실행이 되므로 이전에 만들어진 데이터들을 같이 공유해서 사용이 가능하다
- Actions
복잡한 반복적인 task들을 실행 시켜줄 custom한 application
많이 제공해주는 것이 있어 우선은 제공되는 것들을 사용해도 충분하다고 생각한다
만일 추가적으로 필요하다면 Github Action Action를 참고해서 만들어 보자
이번 실습에서는 actions/checkout@v3
, gradle/gradle-build-action@v2
등을 사용할 것이다
- Runners
WorkFlow를 동작 시킬 내부 서버
Github에서는 Ubuntu, Windows, macOS 3가지를 제공
'공부기록' 카테고리의 다른 글
Nginx 적용기 (0) | 2023.11.05 |
---|---|
[실습] CICD-4 (0) | 2023.09.29 |
실습CICD-3 (0) | 2023.09.29 |
[실습] CICD - 2 (0) | 2023.08.29 |
[Infra] CICD (0) | 2023.05.24 |