모델과 코드 배포

 

개발 환경

개발 환경 Description
Local 각자의 컴퓨터에서 개발(환경 통일을 위해 Docker등을 사용)
Dev Local에서 개발한 기능을 테스트 할 수 있는 환경
Staging Production 환경에 배포하기 전에 운영하거나 보안, 성능 측정하는 환경
Production 실제 서비스를 운영하는 환경

CI/CD

  • CI(Continuous Integration) : 빌드, 테스트 자동화
    • 코드 품질의 관리를 위해 새롭게 작성한 코드 변경 사항이 Build, Test 진행한 후 Test Case에 통과했는지 확인하는 과정
  • CD(Continuous Deploy/Delivery) : 배포 자동화
    • CI 과정 이후에 진행하는 것으로 작성한 코드가 항상 신뢰 가능한 상태가 되면 자동으로 배포될 수 있도록 하는 과정

Github Action

  • 소프트웨어 Workflow 자동화를 도와주는 도구이다.
  • Test Code, 배포, 파이썬, 쉘 스크립트 실행, Github Tag, Release 자동 설정 등을 할 수 있다.
  • 핵심 개념
핵심 개념 설명
Workflow 최상위 개념으로 여러 Job으로 구성되고 Event로 Trigger되는 자동화된 프로세스(YAML파일로 작성된다.)
Event Workflow를 Trigger하는 특정 활동, 규칙
Jobs Runner에서 실행되는 Steps의 조합, 병렬적 및 순차적으로 실행 가능
Steps Job에서 실행되는 개별 작업
Actions Job을 생성하기 위해 여러 Step을 묶은 Workflow의 가장 작은 단위로 재사용이 가능한 Component이다.
Runner Workflow가 실행될 서버