Develop/DevCourseTIL

06.13 데이터 엔지니어링 47일차 - CI,CD

2023. 6. 14. 00:02
목차
  1. 소프트웨어 빌드
  2. Continuous Integration (CI)
  3. Github Actions
  4. flake8

소프트웨어 빌드

  • 우리가 개발한 소프트웨어를 최종적으로 출시하기 위한 형태로 만드는 것
    • 테스트가 빌드의 중요한 일부로 포함
    • 테스트를 다 통과해야 패키지 포맷으로 만듦
    • 테스트가 충분히 있어야 함
  • 참여 개발자들이 많을수록 더 중요
  • 개발이 끝나기 전부터 빌드를 하면 소프트웨어의 안정성 증대 -> Continuous Integration

개발자가 코드를 고칠 때 마다 테스트를 돌림 -> 테스트가 많아야 함 -> 작은 회사에서는 어려움 

 

Continuous Integration (CI)

  • 기본 원칙
    • 코드 Repo는 하나만 유지 (master/main)
    • 코드 변경은 최대한 자주 반영
    • 테스트를 최대한 추가
      • Test Coverage
    • 빌드를 계속적으로 수행 (자동화)
      • Commit Build vs. Nightly Build
    • 성공한 빌드의 프로덕션 릴리스 (자동화)
      • CD: Continuous Delivery

빌드 실패하면?!

  • 새 코드의 커밋으로 인해 테스트가 실패하는 경우
  • 많은 회사들이 빌드 실패 시 빌드가 다시 성공할 때 까지 코드 변경 금지
    • 어느 정도 조직이 커지면 빌드만 전담하는 엔지니어가 생김
    • 빌드 실패시 가벼운 형태로 패널티 부여

CI/CD 프로세스

  1. 개발자가 code commit
  2. 다양한 종류의 테스트 수행
  3. 소프트웨어 배포를 위한 패키지로 만듦 -> 주로 docker image가 쓰임!
  4. 새로운 소프트웨어 배포 -> production server 환경은 주로 k8s이 쓰임

 -> 이를 코드 변경이 생길 때 마다 계속 진행


Github Actions

  • CI/CD를 Github 위에서 구현하기 위한 서비스 
    • 코드 테스트, 빌드, 배포 자동화 기능 제공
  • workflow라 부르며 아래 컴포넌트로 구성
    • Events
    • Jobs: workflow가 jobs에 기술됨
    • Actions
    • Runner
      • github hosted runners
      • self hosted runners

flake8

  • 파이썬 코드에서 에러나 코딩 스타일 등에서 이슈를 체크해주는 툴
    • 이런 툴을 Linting tool이라 부름 (언어별로 존재)
반응형
저작자표시 비영리 변경금지 (새창열림)
  1. 소프트웨어 빌드
  2. Continuous Integration (CI)
  3. Github Actions
  4. flake8
'Develop/DevCourseTIL' 카테고리의 다른 글
  • 06.15 데이터 엔지니어링 49일차 - Docker Compose
  • 06.14 데이터 엔지니어링 48일차 - Docker volume
  • 06.12 데이터 엔지니어링 46일차 - Docker
  • 06.05 데이터 엔지니어링 41일차 - ETL
향식이
향식이
성장을 무기로, 성실함을 필살기로 가지고 있습니다.
향식이
향식이의 군침 싹 도는 개발일기
향식이
전체
오늘
어제
  • 분류 전체보기
    • Language
      • Python
      • Java
    • Database
      • Mysql
    • Infra
      • Docker
      • Airflow
    • Develop
      • DevCourseTIL
      • TroubleShooting
      • ComputerScience
      • Tech-review
    • Framework
      • Django
    • AI
      • MachineLearning
    • Medical
      • Term
    • Daily
      • TMI
      • Book
    • ETC
      • JupyterLab

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 중요한 건..
  • https://github.com/hyangsso
  • It's no fun if it's easy, BINGO ⋯

인기 글

태그

  • Docker
  • 기술
  • 과적합
  • 텐서플로
  • 머신러닝
  • Compose
  • 해결
  • tech
  • 인공지능
  • groupby
  • 정규화
  • Review
  • 파이프라인
  • 견고한
  • Kafka
  • 예제
  • 데이터
  • 퍼셉트론
  • Pandas
  • airflow
  • MySQL
  • 알고리즘
  • 판다스
  • error
  • 코드
  • tensorflow
  • 오류
  • 가중치
  • Python
  • 파이썬

최근 댓글

최근 글

hELLO · Designed By 정상우.
향식이
06.13 데이터 엔지니어링 47일차 - CI,CD
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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