1. ML Engineer와 MLOps의 부상

  • Amazon AWS
  • Microsoft Azure
  • Google GCP

2. MLOps란?

3. DevOps & MLOps

3.1. DevOps

  • DevOps
    • 개발(Dev) + 운영(Ops) 협업 방식
    • 지속적 통합(CI), 지속적 배포(CD)
    • 장점: 빠른 배포 주기, 운영 안정성 강화

3.2. CI/CD

  • 지속적 통합(CI; Continuous Integration)
    • 지속적으로 퀄리티 컨트롤을 적용하는 프로세스

    • 기존 통합 방식의 문제점인 통합의 지옥 해결

    • 자주 통합하여 코드 충돌 방지

    • SaaS(Software as a Service) Build Server

    • Cloud-Native Build System

      • AWS Code Build

3.3. CD

  • 지속적 배포(CD; Continuous Delivery)
    • 빌드, 테스트뿐만 아니라 배포까지 자동화

    • DevOps의 기반 플랫폼

    • 예:

      • ArgoCD

3.4. Microservices

  • 마이크로서비스(Microservices)

    • 의존성이 거의 없고, 독립적인 기능을 가진 소프트웨어 서비스
  • 예:

    • 머신러닝 추론 Endpoint
    • Python Flask 프레임워크
    • FaaS(Function as a Service): AWS 람다
    • Caas(Container as a Service)
      • AWS Fargate, Google Cloud Run, Azure App Services

3.5. Monitoring

  • 모니터링(Monitoring)
    • New Relic
    • DataDog
    • StackDriver

3.6. 효과적인 기술 소통

  • 효과적인 기술 소통
    • AutoML

4. MLOps 욕구 단계 이론

  • DevOps
  • 데이터 자동화
  • 플랫폼 자동화
  • MLOps

4.1. DevOps 구현

  • 테스트 자동화

    • Scaffold
      • GitHub Repo
        • Makefile
        • requirements.txt
        • .py
  • 스캐폴드(Scaffold)

    • 비계(발판 구조물)
    • 프로젝트를 빠르게 시작하고 일관되게 확장할 수 있도록 기본 구조와 표준 설정을 자동으로 생성해주는 템플릿 또는 초기 골격
ml-project/  
├── data/  
├── models/  
├── src/  
├── tests/  
├── Dockerfile  
├── requirements.txt  
├── .github/workflows/ci.yml  
└── train.py

4.2. CI with GitHub Actions

  • Python 스캐폴딩 프로젝트에 CI를 빠르게 적용
# .github/workflows/azure.yml
name: azure-mlops-train-ci
 
on:
  push:
    branches: ["main"]
    paths:
      - "src/**"
      - "azureml/**"
      - ".github/workflows/azure.yml"
  workflow_dispatch: {}
 
env:
  AZUREML_RG: ${{ secrets.AZUREML_RG }}
  AZUREML_WS: ${{ secrets.AZUREML_WS }}
  JOB_SPEC: azureml/job.yml
 
jobs:
  train_and_register:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        
      - name: Azure Login
        uses: azure/login@v2
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
          
      # Azure ML CLI(v2) 설치
      - name: Install Azure ML CLI
        run: |
          az extension add -n ml -y
          az version
          az ml -h
          
      # 워크스페이스 세팅 확인
      - name: Set defaults
        run: |
          az configure --defaults group=$AZUREML_RG workspace=$AZUREML_WS
          
      # 학습 Job 제출
      - name: Submit training job
        id: submit
        run: |
          JOB_NAME=$(az ml job create -f $JOB_SPEC --query name -o tsv)
          echo "JOB_NAME=$JOB_NAME" >> $GITHUB_OUTPUT
          echo "Submitted job: $JOB_NAME"
          
      # Job 완료 대기
      - name: Wait job completion
        run: |
          az ml job stream -n ${{ steps.submit.outputs.JOB_NAME }}
          
      # (선택) 모델 등록: job outputs 경로를 모델로 등록
      # azureml/job.yml에서 outputs에 모델 아티팩트가 저장되도록 구성되어 있어야 함.
      - name: Register model
        run: |
          MODEL_NAME="my-model"
          MODEL_PATH="azureml://jobs/${{ steps.submit.outputs.JOB_NAME }}/outputs/artifacts/paths/model/"
          az ml model create --name $MODEL_NAME --path $MODEL_PATH --type custom_model

4.3. DataOps & Data Engineering

  • DataOps

    • Apache AirFlow
    • AWS Glue
    • AWS Athena
    • AWS QuickSight
  • 데이터 레이크(Data Lake)

    • 원천(raw) 데이터부터 가공 데이터까지 구조 제약 없이 대규모로 저장하는 중앙 집중형 스토리지 계층
    • 모델 학습/평가/재학습에 필요한 데이터의 단일 소스(Single Source of Truth)

4.4. 플랫폼 자동화

  • AWS S3 Data Lake AWS 세이지메이커
  • GCP Google AI 플랫폼
  • Azure Azure ML Studio
  • K8s Kubeflow

4.5. MLOps

  • 모델 학습과 재학습
  • 배포 + 버저닝
  • 추적용 로그와 아티팩트
  • 모니터링
  • 모델 학습과 재학습

5. 마치며

  • MLOps의 재료
    • Software Engineering
    • Data Engineering
    • Modeling
    • Business Problems

APPENDIX. 자격증

0. Linux

  • 리눅스 마스터 2급/1급 (국가공인민간자격)
  • 레드햇 라이선스

1. Cloud

1) AWS

2) GCP

3) Azure

2. SQL

  • 국가공인 SQL 전문가 (국가공인민간자격)

    • 개발자(SQLD)
    • 전문가(SQLP)
  • SQL 자격증은 아니지만 일단 메모…

    • ADsP(국가공인 데이터분석 준전문가) (국가공인민간자격)
    • 빅데이터분석기사 (국가기술자격)