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

Notebook viewer
- Output notebook 은 Google Cloud Storage 에 저장
- Commuter 로 rendering

Workflow

- Jupyter Notebook Code 작성
- Notebook repo 에 저장
- Github 의 notebook url 과 parameters 로 NES API 호출
- NES API 로 job status 확인
- 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분마다 해당 노트북 주소를 패러미터 없이 실행하게끔 되어 있습니다.
- 실행결과는 task 로그에 있는 Commuter로 가서 노트북 실행내역을 볼수 있습니다
