티스토리 뷰

기타

CI/CD 와 GitHub Actions

이지홍 2023. 10. 6. 15:04
반응형

CI/CD


CI/CD란?

CI/CD(Continuous Integration/Continuous Delivery)는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다.

CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 “CI/CD 파이프라인”이라고 부르며, 개발 및 운영팀의 애자일 방식 협력을 통해 DevOps 또는 SRE방식으로 지원된다.

CI/CD차이

CI는 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합된다. 따라서 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 이 방법으로 해결할 수 있다.

CD는 지속적인 서비스를 제공 및/또는 지속적인 배포를 의미하며 이 두 용어는 상호 교환하여 사용된다. 두가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.

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

 

배포 자동화


개념

배포 자동화는 CI/CD 파이프라인의 후반부를 형성합니다. 지속적 통합 단계의 일환으로 빌드 아티팩트를 퍼블리싱한 후에는 자동화된 통합, 엔드투엔드, 성능 및 보안 테스트용 사전 프로덕션 환경에 해당 아티팩트를 배포해야 합니다. 다음으로 수동 탐색 테스트와 스테이징 단계의 피드백을 수집합니다.

배포 자동화를 활용하면 명령어 하나만으로 테스트, 스테이징 및 라이브 환경을 업데이트할 수 있습니다.

배포 자동화 프로세스

배포 파이프라인은 일반적으로 빌드, 테스트, 배포의 3가지 주요 단계로 이루어진다. 이 파이프라인을 통해 배포 프로세스를 자동화하고 코드를 커밋단계에서 배포 단계로 빠르게 이동할 수 있다.

  • 빌드: 개발자가 소프트웨어 리포지토리에 코드를 커밋합니다. 코드 변경 사항은 프로덕션 환경과 일치하는 환경에 통합합니다.
  • 테스트: Jenkins나 Ansible과 같은 배포 자동화 툴에서 새로운 코드를 인식하고 일련의 테스트를 트리거합니다. 모든 테스트를 통과한 빌드는 프로덕션 환경으로 릴리스할 수 있습니다. 배포 자동화 프로세스가 없으면 이 단계를 수동으로 처리해야 합니다.
  • 배포: 이 단계에서는 애플리케이션이 프로덕션 환경에 배포되어 사용자에게 제공됩니다.

참고 https://www.redhat.com/ko/topics/automation/what-is-deployment-automation?cicd=32h281b

 

GitHub Actions


개념

GitHub Actions는 코드 저장소(repository)로 유명한 깃허브(GitHub)에서 제공하는 CI(Continuous Integration, 지속 통합)와 CD(Continuous Deployment, 지속 배포)를 위한 비교적 최근에 추가된 서비스이다.

GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트가 발생했을때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬수도 있다. 예를 들어, 누군가가 코드 저장소에 Pull Request를 생성하게 되면 GitHub Actions를 통해 해당 코드 변경분에 문제가 없는지 각종 검사를 진행할 수 있다. 또한 어떤 새로운 코드가 기본 브랜치(master 또는 main)에 유입(push)되면 GitHub Actions를 통해 소프트웨어를 빌드(build)하고 상용 서버에 배포(deploy)할 수도 있다. 뿐만 아니라 매일 밤 특정 시각에 그날 하루에 대한 통계 데이터를 수집시킬 수도 있다.

GitHub Actions를 사용하기 전에 숙지하고 있으면 큰 도움이 되는 몇 가지 핵심 개념을 살펴보도록 하자.

Workflows

GitHub Actions에서 가장 상위 개념인 워크플로우는 쉽게 말해 자동화 해놓은 작업 과정이라고 볼 수 있다. 워크플로우는 코드 저장소 내에서 .github/workflows 폴더 아래에 위치한 YAML 파일로 설정하게 된다.

GitHub Actions을 이용해 자동배포 구축하기


참고

테스트도구 관련 https://www.intelligencelabs.tech/061061d9-4901-4bfa-be82-df013d74baeb

자동 배포 https://tech.kakao.com/2022/05/06/github-actions/

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함