CI/CD 도구 및 머신러닝 워크플로우 자동화

랫서·2025년 10월 16일

MLOps

목록 보기
1/11

CI/CD 개요 및 정의

  • CI(Continuous Integration)는 개발자들의 코드 변경 사항을 중앙 저장소에 정기적으로 병합하는 과정
  • CD(Continuous Deployment)는 테스트를 거친 코드를 자동으로 프로덕션 환경에 배포하는 과정
  • 두 과정 모두 자동화를 통해 개발 및 배포 프로세스의 효율성을 높임
  • MLOps 사이클에서는 지속적인 통합과 배포가 자연스럽게 이루어져야 함

MLOps에서 CI/CD의 중요성

  • 빠른 반복과 지속적인 개선 지원: 모델 개발 및 테스트 주기 단축
  • 품질 보증 및 신뢰성: 자동화된 테스트를 통한 모델 품질 보장
  • 협업 및 투명성 강화: 다양한 직군이 참여하는 ML 개발 과정에서 효율적인 협업 가능
  • 배포 및 운영 간소화: 수동 프로세스에서 발생할 수 있는 시간 지연과 오류 감소

CI/CD와 워크플로우 관리 도구의 차이점

  • 목적:
    • CI/CD 도구: 코드 통합, 테스트, 빌드, 배포 과정 자동화에 초점 (상품화 중심)
    • 워크플로우 관리 도구: 데이터 처리 작업 스케줄링, 실행, 모니터링에 초점 (개발 프로세스 중심)
  • 핵심 기능:
    • CI/CD 도구: 코드 통합, 자동 빌드 및 테스트, 자동 배포
    • 워크플로우 관리: 데이터 파이프라인 설계 및 실행, 작업 스케줄링, 모니터링, 의존성 관리
  • 사용 사례:
    • CI/CD 도구: 소프트웨어 개발 및 배포, DevOps 프로세스
    • 워크플로우 관리: 데이터 엔지니어링, 복잡한 데이터 처리, ETL 작업
  • 대표 도구:
    • CI/CD: Jenkins, GitLab CI/CD, GitHub Actions, CircleCI, TravisCI
    • 워크플로우 관리: Airflow, Kubeflow

주요 CI/CD 도구

  • Jenkins:
    • 오픈소스 자동화 서버
    • 방대한 플러그인 생태계로 다양한 도구와 통합 가능
    • 유연성과 확장성이 뛰어남
    • 커스터마이징이 용이하고 커뮤니티 지원이 활발함
  • GitLab CI/CD:
    • 코드 저장소와 CI/CD 파이프라인이 하나의 플랫폼에서 통합 관리
    • YAML 기반 파이프라인 구성으로 쉽게 관리 가능
    • 코드 커밋으로 자동 테스트 및 배포 구현이 용이
  • GitHub Actions:
    • GitHub에 내장된 CI/CD 기능
    • 코드 저장소와의 깊은 통합
    • 마켓플레이스를 통한 워크플로우 확장 가능
    • 다양한 OS 지원으로 호환성 우수
  • CircleCI:
    • 클라우드 기반 CI/CD 서비스
    • 컨테이너 기반 아키텍처로 효율적인 관리 가능
    • 빌드 속도가 빠르고 병렬 처리 지원
    • 여러 팀이 사용할 때 효율적
  • TravisCI:
    • GitHub 프로젝트와 쉽게 통합되는 CI 서비스
    • 오픈소스 프로젝트에 널리 사용됨
    • YAML 기반 설정 지원

Jenkins 실습

  • Docker Compose를 활용한 Jenkins 환경 구축


  • 기본 파이프라인 생성 과정:
    - 새 아이템 생성 → 파이프라인 선택
    - 스크립트 작성 (init, build, deploy 단계 포함)
    - 파이프라인 실행 및 결과 확인

  • ML 워크플로우 적용 예시:

    • GitHub 코드 변경 감지 → 코드 체크아웃
    • 모델 학습 및 평가 수행
    • 검증된 모델을 프로덕션 환경에 배포
profile
개발자로 다시 성장하고 싶은 사람입니다.

0개의 댓글