개발/Git

Github Action을 사용한 CI/CD

2021. 12. 11. 18:09
목차
  1. 1. CI/CD
  2. 2. Github Action
  3.  
  4.  
반응형

1. CI/CD

1.1 현업 개발 프로세스

Local

- 각자의 컴퓨터에서 개발

- 각자의 환경을 통일시키기 위해 Docker 등을 사용

Dev

- Local에서 개발한 기능을 테스트할 수 있는 환경

- Test 서버

Staging

- Production 환경에 배포하기 전에 운영하거나 보안, 성능 측정하는 환경

- Staging 서버

Production

- 실제 서비스를 운영하는 환경

- 운영 서버

 

1.2 CI/CD 개념

 

Continuous Integration, 지속적 통합

- 새롭게 작성한 코드 변경 사항이 Build, Test 진행한 후 Test Case에 통과했는지 확인

- 지속적으로 코드 품질 관리

- 10명의 개발자가 코드를 수정했다면 모두 CI 프로세스 진행

=>빌드 테스트 자동화

 

Continuous Deploy/Delivery, 지속적 배포

- 작성한 코드가 항상 신뢰 가능한 상태가 되면 자동으로 배포될 수 있도록 하는 과정

- CI 이후 CD를 진행

- dev / staging / main 브랜치에 Merge가 될 경우 코드가 자동으로 서버에 배포

=>배포자동화

 

 

 

2. Github Action

2.1 Github Action 소개

핵심 개념 : Workflow, Event, Job, Step, Action, Runner

Workflow

- 여러 Job으로 구성되고 Event로 Trigger(실행)되는 자동화된 Process

- 최상위 개념

- Workflow 파일은 YAML으로 작성되고, Github Repository의 .github/workflows 폴더에 저장

Event

- Workflow를 Trigger하는 특정 활동, 규칙

- 특정 Branch로 Push하는 경우

- 특정 Branch로 Pull Request하는 경우

- 특정 시간대에 반복(Cron)

Jobs

- Runner에서 실행되는 Steps의 조합

- 여러 Job이 있는 경우 병렬로 실행하며, 순차적으로 실행할 수도 있음

- 다른 Job에 의존 관계를 가질 수 있음(A Job Success 후 B Job 실행)

Step

- Step은 Job에서 실행되는 개별 작업

- Action을 실행하거나 쉘 커맨드 실행

- 하나의 Job에선 데이터를 공유할 수 있음

Actions

- Workflow의 제일 작은 단위

- Job을 생성하기 위해 여러 Step을 묶은 개념

- 재사용이 가능한 Component

- 개인적으로 Action을 만들 수도 있고, Marketplace의 Action을 사용할 수도 있음

Runner

- Github Action도 일종의 서버에서 실행되는 개념

- Workflow가 실행될 서버

- Github-hosted Runner : Github Action의 서버를 사용하는 방법

- 성능 : vCPU 2, Memory 7GB, Storage 14GB

- Self-hosted Runner : 직접 서버를 호스팅해서 사용하는 방법

 

 

 

2.2 Github Action을 사용한 배포

cloud computing을 사용 할 경우 해당 컴퓨팅에서 

 

1) 키생성

cd ~/.ssh/

ssh-keygen -t rsa -b 4096 -C “본인 이메일”

로 ssh key를 생성한다

2) 키등록

인스턴스에 public key등록

privatekey와 username ip를 github action의 secret에 등록하여사용

 

 

반응형

'개발 > Git' 카테고리의 다른 글

git 폴더별 유저 설정  (0) 2023.02.16
한 디바이스에 git 계정 여러개 등록  (0) 2022.10.03
터미널에서 git 인증 id, pw 안될 때  (0) 2022.01.17
  1. 1. CI/CD
  2. 2. Github Action
  3.  
  4.  
'개발/Git' 카테고리의 다른 글
  • git 폴더별 유저 설정
  • 한 디바이스에 git 계정 여러개 등록
  • 터미널에서 git 인증 id, pw 안될 때
모플로
모플로
현재 진행하는 개발 과정을 자주 기록하는 곳
반응형
모플로
모던플로우
모플로
전체
오늘
어제
  • 분류 전체보기 (143)
    • 개발 (41)
      • Python (5)
      • Docker (3)
      • Shell (3)
      • Airflow (0)
      • Elasticsearch (0)
      • AWS (4)
      • DataAnalysis (2)
      • Tensorflow (9)
      • NLP (4)
      • ML,DL 나중에 카테고리분류 (1)
      • Nestjs (1)
      • Git (4)
      • Algorithm (0)
      • 설계 (2)
      • Database (1)
    • 부스트캠프 AI Tech 2기 (97)
      • Precourse (27)
      • 2기 U-Stage (20)
      • 2기 P-Stage (2)
      • 2기 CV U-Stage (12)
      • 2기 CV P-Stage-Objectdetecti.. (10)
      • 2기 CV P-Stage-Semantic Segm.. (8)
      • 2기 CV 데이터제작 (7)
      • 2기 모델 최적화 (0)
      • 2기 Product Serving (10)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • Object Detection
  • CICD
  • aws
  • Node
  • detection
  • 프로그래머스
  • tensorflow
  • MLOps
  • efficientnet
  • Python
  • 경사하강법
  • ubuntu20.04
  • gradient descent
  • Docker
  • Example
  • Object
  • nlp
  • ubuntu
  • CV
  • yolo
  • 알고리즘
  • fcn
  • codepipeline
  • Transformer
  • ElasticBeansTalk
  • transfer learning
  • MLE
  • Semantic Segmentation
  • pytorch
  • NestJS

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.1.4
모플로
Github Action을 사용한 CI/CD
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.