콘텐츠로 이동

NES(Notebook Execution Service) 소개

Overview

Notebook repository 에 저장된 Jupyter notebook 을 실행하는 서비스

Components

  • Notebook Repository on Github
  • NES API on K8s
  • NES Executor on K8s
  • Notebook Viewer

Notebook Repository

  • Jupyter notebook 저장소.
  • Github 의 sktaiflow organization 아래의 repo 어디든 가능

NES API

  • Input notebook 의 url 과 parameters 를 받아서 notebook 을 실행
  • http://nes.sktai.io/v1
  • swagger 10.40.84.223:31341

swagger

Notebook viewer

  • Output notebook 은 Google Cloud Storage 에 저장
  • Commuter 로 rendering commuter

Workflow

seq

  1. Jupyter Notebook Code 작성
  2. Notebook repo 에 저장
  3. Github 의 notebook url 과 parameters 로 NES API 호출
  4. NES API 로 job status 확인
  5. Response 의 output url 에서 output notebook 조회

NES Scheduling

  • NES Job을 주기적으로 돌게끔 Airflow DAG으로 변환
  • NES API와 동일하게 Github notebook url, parameters를 NESOperator에 전달
  • 스케줄링 주기는 Airflow cron expression에 맞게끔 입력 참고자료
  • 예시 Airflow DAG

    이 DAG는 매 5분마다 해당 노트북 주소를 패러미터 없이 실행하게끔 되어 있습니다. seq

  • 실행결과는 task 로그에 있는 Commuter로 가서 노트북 실행내역을 볼수 있습니다 seq