CI/CD: GitHub Actions | 개요

Lumpen·2023년 7월 23일
0

CI/CD

목록 보기
1/2

GitHub Actions 는 빌드 테스트 및 배포 파이프라인을
자동화 할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼

CI/CD

Continuous Integration / Continuous Delivery
애플리케이션 개발 단계를 자동화하여 더 짧은 주기로 고객에게 제공하는 방법으로
지속적 통합, 지속적 서비스 제공, 지속적 배포

CI / CD 는 새로운 코드 통합으로 인해
개발 및 운영 시 팀에 발생하는 문제(integration hell) 를 해결하기 위한 솔루션이다

특히 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포에 이르는
애플리케이션 라이프사이클 전체에 걸쳐
지속적 자동화와 모니터링을 제공한다
이러한 구축 사례를 CI/CD 파이프라인 이라 부른다

CI 와 CD 의 차이

지속적 통합(CI)은 개발자를 위한 자동화 프로세스를 의미한다
지속적 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이
정기적으로 빌드 및 테스트를 거쳐 공유 저장소에 병합되낟
따라서 작업이 서로 출동하는 문제를 해결할 수 있다

CD는 지속적 서비스 제공 및 지속적 배포를 뜻한다
지속적 서비스 제공은 애플리케이션에 적용한 변경 사항이 테스트를 거쳐 배포 저장소에 자동으로 업로드 되는 것을 뜻하며
운영팀은 실시간 프로덕션 환경으로 배포할 수 있다
개발팀과 비즈니스팀 간의 가시성 및 커뮤니케이션 부족 문제를 해결하준다
지속적인 서비스 제공은 최소한의 노력으로 코드를 배포하는 것을 목표로 한다

지속적 배포는 개발자의 변경 사항을 저장소에서 고객이 사용 가능한
프로덕션 환경까지 자동으로 릴리즈 하는 것을 의미한다
수동 프로세스로 인한 어플리케이션 제공 속도 저하 및 운영팀의 프로세스 과부하 문제를 해결한다

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

Gitgub Actions 의 구성 요소

풀 리퀘스트나 이슈 생성 등 저장소에서 이벤트가 발생할 때
트리거되도록 워크플로를 구성할 수 있다
워크플로에는 순차적, 병렬로 실행할 수 있는
하나 이상의 작업이 포함되어 있다
각 작업은 자체 가상 머신 실행기 내부 또는
컨테이너 내부에서 실행되며
정의한 스크립트를 실행하거나 워크 플로를 단순화할 수 있는
재사용 가능한 확장 작업을 실행하는 하나 이상의 단계가 있다

Workflows

워크플로는 하나 이상의 Job 을 실행하는 구성 가능한 자동화 프로세스
저장소 체크인한 YAML 파일에 의해 정의되며
이벤트에 의해 트리거될 때 실행하거나
수동으로 정의된 일정에 따라 실행할 수 있다

워크플로는 저장소 내의 .github/workflows 디렉토리에 정의되며
각각 다른 작업 집합을 수행할 수 있는 여러 워크플로가 있을 수 있다
워크플로 내에서 다른 워크플로를 참조할 수도 있다

한마디로 Jobs 모음

Events

이벤트는 워크플로 실행을 트리거하는 저장소의 특정 활동이다
누군가 풀 리퀘스트를 생성하거나 이슈를 열 때 등
REST API 게시 등 수동으로 일정에 따라 실행되도록 워크플로를 트리거 할 수도 있다

특정 이벤트를 감지하는 이벤트 리스너 같은 역할

Jobs

작업은 동일한 실행기에서 실행되는 워크플로의 일련의 단계다
각 단계는 실행될 쉘 스크립트거나 또는 실행될 조치다
각 단계는 순서대로 실행되며 서로 의존적이다
동일한 러너에서 실행되므로 한 단계에서 다른 단계로 데이털르 공유할 수 있다

기본적으로 작업에는 종속성이 없으며 서로 병렬로 실행되지만
각 작업끼리의 종속성을 구성할 수 있다

워크플로의 구성 요소로 해야할 작업 모음
Job 끼리는 병렬 처리된다
Job 내부 작업은 순차적으로 실행됨

Actions

액션은 복잡하지만 자주 반복되는 작업을 수행하는 사용자 지정 어플리케이션 이다
액션을 사용하여 반복 코드를 재사용하는 데 도움을 줄 수 있다

만들어져있는 함수를 사용하는 것과 같음

Runners

러너는 트리거될 때 워크플로를 실행하는 서버
각 러너는 한 번에 하나의 작업을 실행할 수 있다
각 워크플로의 샐항은 새로 프로비저닝된 새로운 가상 머신에서 실행된다
GitHub 는 더 큰 구성에서 사용할 수 있는 더 큰 러너도 제공한다

Runners 는 각각의 Jobs 를 실행하는 VM 혹은 컨테이너 같은 것
때문에 Jobs 는 병렬 처리된다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기