SlideShare a Scribd company logo
NetApp AI Control Plane
하이브리드 / 멀티 클라우드 환경의 AI 데이터 관리 방안
© 2020 NetApp, Inc. All rights reserved.
한국 넷앱
백승용 / 솔루션 엔지니어
2020년 8월
데이터는 모든 산업을 변화시키고 있습니다.
인공지능은 데이터로부터 시작됩니다.
2 © 2020 NetApp, Inc. All rights reserved.
202020102000
Hardware
Data
SoftwareSoftware
Hardware
Data
Hardware
Data
Software
엔터프라이즈 데이터 서비스와 관리
3 © 2020 NetApp, Inc. All rights reserved.
용량 성능 데이터 보호/복제 클라우드 연계 DevOps
사용자
서비스
데이터
Machine Learning Workflow
4 © 2020 NetApp, Inc. All rights reserved.
https://www.kubeflow.org/docs/started/kubeflow-overview/
AI 데이터 관리의 도전 과제
▪ 개발 및 데이터 워크스페이스
▪ 대량의 데이터 셋과 소스 코드의 관리에 대한 어려움이 없이 개발을 할 수 있어야 함
▪ 데이터는 새로운 소스 코드
▪ 소스 코드, 모델, 및 데이터에 대하여 전반적인 버전 관리와 추적 필요
▪ 여러 개의 팀이, 여러 개의 다른 지역에서 근무
▪ AI 컴퓨팅 또는 데이터 사일로를 통합하고 연계할 수 있어야 함
▪ 다양한 이기종 데이터 소스
▪ 여러 데이터 소스를 하나의 AI 데이터 파이프라인으로 통합할 수 있어야 함
5 © 2020 NetApp, Inc. All rights reserved.
Automated Pipelines
Core
▪ 온 디맨드 데이터 및 워크스페이스
▪ 필요한 모든 데이터 셋에 접근 가능
▪ 에지, 코어, 클라우드까지 확장
가능한 워크스페이스
▪ 다양한 컴퓨팅 환경의 선택
▪ 사이트간 데이터 과학자의 협업
▪ AI 워크플로우의 자동화
▪ 코드 기반 데이터 관리
▪ 버전 관리 및 백업 스냅샷, 복제, 클론
▪ 개발, 테스트, 백업, A/B 테스팅 등 모델
또는 데이터 셋의 원활한 버전 전환
NetApp AI Control Plane
풀 스택 AI 데이터 서비스 및 관리
CloudEdge
NetApp AI Control Plane
NetApp Data Fabric
6 © 2020 NetApp, Inc. All rights reserved.
Web-based Workspace Web-based Workspace
Data
Scientist
Data
Scientist
Data
Scientist
Data
Engineer
Kubeflow Central Dashboard
7 © 2020 NetApp, Inc. All rights reserved.
https://www.kubeflow.org/docs/components/central-dash/overview/
Kubeflow is the machine learning toolkit for Kubernetes.
Kubeflow is a platform for data scientists who want to build and experiment with ML pipelines.
AI 워크스페이스를 위한 온 디맨드 프로비저닝
Common DIY method
8 © 2020 NetApp, Inc. All rights reserved.
CLI
Web-based WorkspaceData
Scientist
Manually Provision (Minutes)
CLI Copy Data to Workspace (Hours to Days)
No Data Protection
No Traceability
No Data Versioning
Inefficient Use of Space
Pull from Cloud (Slow)
NetApp AI Control Plane
Control Plane UI
Data
Scientist
Provision (seconds)
Return Access URL (seconds)
Developer WS
Cloud-connected Data Fabric
Data Set Volume
Web-based Workspace
▪ Kubeflow Pipelines:
▪ 컨테이너를 기반으로, 확장 가능하고
재사용이 가능한 머신 러닝
워크플로우의 구축과 배포를 위한
플랫폼
▪ Python SDK 사용
▪ 파이프라인 결합 예
▪ 새로운 데이터 볼륨 프로비전
▪ 코드, 모델과 데이터 셋을 연결
▪ 데이터 셋 버전 저장(추적 및 재사용)
▪ 학습 모델 버전 저장
▪ 프로젝트 공유를 위한 클론
▪ 다양한 환경에 데이터 복제
AI 워크플로우 자동화
쿠브플로우 파이프라인과 완벽한 결합
9 © 2020 NetApp, Inc. All rights reserved.
코드 기반의 데이터 인프라 관리
▪ Jupyter Notebooks
▪ 웹 기반의 환경에서 개발, 코드 실행, 문서화, 및 프로젝트 공유를 할 수 있는 개발 환경
▪ AI/ML 커뮤니티 뿐만 아니라 다양한 영역에서 범용적을 활용되고 있음
▪ NetApp Python Client Library
▪ 익숙한 인터페이스를 통한 페타 바이트 단위의 데이터 접근
▪ 노트북을 통해서 데이터의 백업 또는 버전 스냅샷, 클론, 및 복제를 코드로 제어
즉각적인 데이터 접근과 신속한 실험의 수행
10 © 2020 NetApp, Inc. All rights reserved.
멀티 사이트, 멀티 개발자 협업
표준 AI / ML 도구를 사용하여 데이터 동기화
Kubernetes (k8s) cluster
11 © 2020 NetApp, Inc. All rights reserved.
Snapshot copies
Dataset/model versions
A/B testing
Cloud Sync / SnapMirror
Dev/Test or burst in cloud
NetApp SnapMirror®
Snapshot copies
Dataset/model/code versions
A/B testingNetApp® Data Fabric
Object storage
Cold data tiering
Data lake
Workflow Driven:
Kubeflow Pipeline Operation
User Driven (Interactive):
Code Executed in Notebook
NetApp Cloud Sync
다양한 이기종 데이터 소스의 통합
NetApp Cloud Sync 서비스
12 © 2020 NetApp, Inc. All rights reserved. NetApp Confidential - Limited Use Only
Orchestration
AI as a Service (AIaaS)의 실현
온 디맨드와 자동화를 기반으로 AIaaS의 실현
TensorFlow Container
Kubernetes (k8s) cluster
GPU node 1 GPU node 2
Data volume
13 © 2020 NetApp, Inc. All rights reserved.
Snapshot copies
Dataset/model versions
A/B testing
Cloud Sync / SnapMirror
Dev/Test or burst in cloud
NetApp SnapMirror®
Snapshot copies
Dataset/model/code versions
A/B testingNetApp® Data Fabric
Object storage
Cold data tiering
Data lake
PyTorch Container Inference Server Container Jupyter Container
▪ Kubeflow = an AI/ML toolkit for k8s
▪ Standard open-source platform for deploying AI/ML workloads
▪ Kubernetes (k8s) = container/resource orchestration
▪ Industry-standard, open-source platform
▪ NetApp Trident = storage provisioner for k8s
▪ Enterprise-class storage presented in Kubernetes-native format
▪ Choice of compute and/or cloud
▪ NetApp Data Fabric = data portability and protection
▪ Edge to core to cloud data movement
▪ Ansible = deployment automation, infrastructure as code
DIY: Open-source Stack
Enabling portability, scalability, flexibility, and simplicity
Persistent storage
Orchestration
Compute/Cloud
AI/ML workloads
NetApp Data Fabric
Automation
14 © 2020 NetApp, Inc. All rights reserved.
?
NVIDIA DeepOps
Example for an ONTAP AI environment
15 © 2020 NetApp, Inc. All rights reserved.
Prepare management node(s)
Prepare provisioning node
Prepare compute node(s)
Deploy basic services
Deploy additional services
DeepOps
Deploy Trident
Deploy Kubeflow
Deploy Kubernetes on management node(s)
Deploy Kubernetes on compute node(s)
Initial infrastructure provisioning
Picture source: NVIDIA POD reference architecture (with NetApp HCI added)
GPU compute node(s)
For high-performance
compute workloads
Management node(s)
Used for cluster management
Provisioning node
Orchestrates the initial setup
of the cluster
Storage node(s)
For high-performance
data storage
검증된 레퍼런스 아키텍처 기반 솔루션
16 © 2020 NetApp, Inc. All rights reserved.
E-Series AI
FlexPOD AI
ONTAP AI
Compute: DGX
Networking: Ethernet
Storage: AFF, NFS, ONTAP
✓ Most complete solution (AI Control Plane)
▪ NVIDIA DGX + NetApp All Flash
▪ Cisco UCS + NetApp All Flash
Compute: UCS
Networking: Ethernet
Storage: AFF, NFS, ONTAP
✓ 10 years of GTM partnership
▪ NVIDIA DGX SuperPOD + NetApp Compute: DGX SuperPOD or white box
Networking: InfiniBand
Storage: E-Series, IBM Spectrum Scale or BeeGFS
✓ Support your IB install base
NetApp AI Control Plane이란?
I. AI 워크스페이스를 위한 온 디맨드 프로비저닝 – NetApp Trident
II. AI 워크플로우 자동화 – 쿠브플로우 파이프라인과 완벽한 결합
III. 코드 기반의 데이터 인프라 관리 – REST API 및 Python SDK
IV. 멀티 사이트, 멀티 개발자 협업 – NetApp SnapMirror w/ Kubeflow, Jupyter
V. 다양한 이기종 데이터 소스의 통합 – NetApp Cloud Sync w/ Kubeflow, Jupyter
AI as a Service를 실현할 수 있는, NetApp AI Data Control Plane
17 © 2020 NetApp, Inc. All rights reserved.
MiniKF(MiniKube + Kubeflow)와 ONTAP을 이용한 심플 테스트
Kubeflow Pipelines w/ ONTAP
18 © 2020 NetApp, Inc. All rights reserved.
테스트 구성 환경
VMWare Workstation 구성
19 © 2020 NetApp, Inc. All rights reserved.
구분 쿠브플로우 서버 넷앱 스토리지
공통
▪ VM on VMWare Workstation
▪ IP: 192.168.232.160
▪ OS: Ubuntu 18.04
▪ hostname: MiniKF
▪ 8코어, 16GB, 120GB HDD
▪ VM on VMWare Workstation
▪ IP: 192.168.232.150, 151
▪ OS: ONTAP 9.7
▪ Cluster: ONTAP97
Role ▪ MiniKF(MiniKube, Kubeflow), NetApp Trident ▪ 스토리지
구성 수순 #1
가상 머신 생성 및 필요 패키지 설치
20 © 2020 NetApp, Inc. All rights reserved.
1. 호스트용 가상 머신 생성
• VMware Workstation
• Ubuntu 18.04
• 16GB 메모리, 8 코어 CPU, 120GB 디스크
• MiniKF 시스템 요구 규격 이상으로 구성 필요
2. 필요 패키지 설치
• MiniKF 구성을 위해서는 vagrant와 VirtualBox 필요
• 아래 사이트를 참고하여 최신 버전 다운로드 설치
• Ubuntu 18.04 VM에서 수행
• Vagrant: VMWare, VirtualBox, KVM같은 하이퍼바이저를 백엔드로
하여, 가상 머신을 생성 및 관리해주는 툴
• Oracle VirtualBox: 오라클사의 오픈소스 하이버파이저
• dpkg 및 apt 명령을 이용하여 설치
https://www.vagrantup.com/
https://www.virtualbox.org/
3. Vagrant를 이용한 MiniKF 가상 머신 생성
• Kubeflow 사이트 참조
https://www.Kubeflow.org/docs/started/workstation/getting-started-
minikf/
seungyong@MiniKF:~$ mkdir MiniKF
seungyong@MiniKF:~$ cd MiniKF/
seungyong@MiniKF:~/MiniKF$ vagrant init arrikto/minikf
• 정상 완료가 되면, $HOME/MiniKF 에 필요 파일 생성 됨
seungyong@MiniKF:~/MiniKF$ vagrant up
• 지정된 VirtualBox 디렉토리에 가상 머신이 생성되고 부팅 됨
seungyong@MiniKF:~$ cd MiniKF/
seungyong@MiniKF:~/MiniKF$ vagrant ssh
• 해당 디렉토리에 Vagrantfile이 있기 때문에, 디렉토리 들어가서 실행
구성 수순 #2
MiniKF 프로비저닝
21 © 2020 NetApp, Inc. All rights reserved.
4. MiniKF 프로비저닝
------------------------------
Welcome to MiniKF!
Type "minikf" to ensure everything is up and running.
------------------------------
vagrant@minikf:~$ minikf
• 필요한 컨테이너 이미지, minikube, kubeflow, rok를 자동으로
다운로드 하고 구성해 줌
• 프로비저닝이 정상 완료 되면 77개의 POD를 k9s에서 확인 가능
• NetApp Trident POD이 2개 추가 되면 79개, 그 외에 노트북
서버등을 만들면 늘어남
• MiniKF 20200305.1.0 버전 기준
구성 수순 #3
NetApp Trident 및 K9s 설치
22 © 2020 NetApp, Inc. All rights reserved.
5. NetApp Trident 및 K9s 설치
• 최신 버전 다운로드 설치
• K9s: 단일 화면에서 k8s 클러스터를 모니터링하고 관리하는 툴
vagrant@minikf:~$ wget
https://github.com/derailed/k9s/releases/download/v0.21.2/k9s_Linux_
x86_64.tar.gz
vagrant@minikf:~$ tar zvxf k9s_Linux_x86_64.tar.gz
vagrant@minikf:~$ sudo mv k9s /usr/local/bin
vagrant@minikf:~$ k9s
vagrant@minikf:~$ wget
https://github.com/NetApp/trident/releases/download/v20.04.0/trident-
installer-20.04.0.tar.gz
vagrant@minikf:~$ tar zvxf trident-installer-20.04.0.tar.gz
vagrant@minikf:~$ kubectl create namespace trident
vagrant@minikf:~$ cd trident-installer
vagrant@minikf:~/trident-installer$ ./tridentctl install -n trident
vagrant@minikf:~/trident-installer$ ./tridentctl obliviate alpha-
snapshot-crd
• Trident 설치 시에 에러가 발생하면 트러블 슈팅 문서 참고
https://netapp-
trident.readthedocs.io/en/latest/kubernetes/troubleshooting.html
vagrant@minikf:~/trident-installer$ sudo cp tridentctl /usr/local/bin
vagrant@minikf:~$ tridentctl create backend -f backend.json -n trident
vagrant@minikf:~$ kubectl create -f storageclass.yaml
https://github.com/derailed/k9s
https://github.com/NetApp/trident
구성 수순 #3
샘플 backend.json, storageclass.yaml
23 © 2020 NetApp, Inc. All rights reserved.
• backend.json
{
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "ONTAP97",
"managementLIF": "192.168.232.150",
"dataLIF": "192.168.232.151",
"svm": "MiniKF",
"username": "admin",
"password": "xxxxxxxxxx"
}
• storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap97-basic-sc
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
구성 확인 #1
MiniKF POD 구성 확인
24 © 2020 NetApp, Inc. All rights reserved.
vagrant@minikf:~$ k9s
• K9s에서 MiniKF POD 구성 확인
• Trident 설치 후에 79개 POD
구성 확인 #2
MiniKube 구성 확인
25 © 2020 NetApp, Inc. All rights reserved.
• Namespace 확인
• StorageClass 확인
• PVC 확인
• PV 확인
구성 확인 #3
NetApp Trident 구성 확인
26 © 2020 NetApp, Inc. All rights reserved.
• Trident Backend 확인
• Trident StorageClass 확인
• Trident Volume 확인
Kubeflow Pipelines 테스트 #1
Kubeflow Central Dashboard
27 © 2020 NetApp, Inc. All rights reserved.
• Kubeflow Central Dashboard
Kubeflow Pipelines 테스트 #2
Notebook Server 프로비저닝
28 © 2020 NetApp, Inc. All rights reserved.
• Notebook Servers
• +NEW SERVER
Kubeflow Pipelines 테스트 #2
Notebook Server 프로비저닝
29 © 2020 NetApp, Inc. All rights reserved.
• 노트북 이름 지정
• 나머지는 기본값으로 진행
Kubeflow Pipelines 테스트 #2
Notebook Server 프로비저닝
30 © 2020 NetApp, Inc. All rights reserved.
• 기본으로 생성된 볼륨 확인
• CONNECT 메뉴로 연결
Kubeflow Pipelines 테스트 #3
파이프라인 작성 및 실행
31 © 2020 NetApp, Inc. All rights reserved.
• 주피터 노트북 생성
Kubeflow Pipelines 테스트 #3
파이프라인 작성 및 실행
32 © 2020 NetApp, Inc. All rights reserved.
• 테스트 코드 작성 및 실행
• 실험 및 런 링크 확인
Kubeflow Pipelines 테스트 #4
파이프라인 실행 결과 확인
33 © 2020 NetApp, Inc. All rights reserved.
• 실험 실행 결과 확인
Kubeflow Pipelines 테스트 #4
파이프라인 실행 결과 확인
34 © 2020 NetApp, Inc. All rights reserved.
• 볼륨 생성 결과 그래프 및 로그 확인
Kubeflow Pipelines 테스트 #4
파이프라인 실행 결과 확인
35 © 2020 NetApp, Inc. All rights reserved.
• 볼륨 마운트 그래프 및 볼륨 확인
Kubeflow Pipelines 테스트 #4
파이프라인 실행 결과 확인
36 © 2020 NetApp, Inc. All rights reserved.
• 명령어 실행 그래프 및 볼륨 확인
Kubeflow Pipelines 테스트 #4
파이프라인 실행 결과 확인
37 © 2020 NetApp, Inc. All rights reserved.
• 명령어 실행 그래프 및 로그 확인
Kubeflow Pipelines 테스트 #5
파이프라인 실행 결과 확인(Optional)
38 © 2020 NetApp, Inc. All rights reserved.
• 파이프라인에 사용된 POD 확인
Kubeflow Pipelines 테스트 #5
파이프라인 실행 결과 확인(Optional)
39 © 2020 NetApp, Inc. All rights reserved.
• StorageClass 확인
• PVC 확인
• PV 확인
Kubeflow Pipelines 테스트 #5
파이프라인 실행 결과 확인(Optional)
40 © 2020 NetApp, Inc. All rights reserved.
• Trident Backend 확인
• Trident StorageClass 확인
• Trident Volume 확인
Kubeflow Pipelines 테스트 #5
파이프라인 실행 결과 확인(Optional)
41 © 2020 NetApp, Inc. All rights reserved.
• 스토리지 볼륨 확인
Kubeflow Pipelines 테스트 #5
파이프라인 실행 결과 확인(Optional)
42 © 2020 NetApp, Inc. All rights reserved.
• 실 데이터 확인
Kubeflow Pipelines 테스트 #6
테스트 환경 삭제
43 © 2020 NetApp, Inc. All rights reserved.
1. Kubeflow Central Dashboard의
UI에서 노트북을 삭제하면 해당
POD가 삭제 됨
2. 파이프라인에 사용된 POD 삭제 →
attachstorage-xxx-xxx를 모두 삭제
3. 사용된 PVC를 삭제하면, PV와
스토리지의 물리적인 볼륨까지
자동으로 모두 삭제가 됨(볼륨
Reclaim 정책에 따라 달라짐)
4. StorageClass도 필요시 수동 삭제
44
감사합니다.
© 2020 NetApp, Inc. All rights reserved.

More Related Content

PDF
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
PDF
DevOps - CI/CD 알아보기
PDF
DB Migration to Azure Database for PostgreSQL
PDF
Azure Databases for PostgreSQL MYSQL and MariaDB
PDF
Cloud for Kubernetes : Session1
PDF
DB Migration to Azure Database for MySQL
PDF
[오픈소스컨설팅]오픈스택에 대하여
PDF
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
오픈소스 모니터링 알아보기(Learn about opensource monitoring)
DevOps - CI/CD 알아보기
DB Migration to Azure Database for PostgreSQL
Azure Databases for PostgreSQL MYSQL and MariaDB
Cloud for Kubernetes : Session1
DB Migration to Azure Database for MySQL
[오픈소스컨설팅]오픈스택에 대하여
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링

What's hot (18)

PDF
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
PDF
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
PDF
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
PPTX
Azure databases for PostgreSQL, MySQL and MariaDB
PDF
Open infradays 2019_msa_k8s
PDF
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
PDF
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
PDF
Kubernetes & Istio in Multi-Cloud
PDF
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
PDF
[오픈소스컨설팅] OpenShift PaaS Platform How-to
PDF
MySQL operator for_kubernetes
PDF
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
PDF
[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람
PPTX
Docker osc 0508
PDF
Migration to Azure Database for MySQL
PDF
[Open-infradays 2019 Korea] jabayo on Kubeflow
PDF
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
PDF
해외 사례로 보는 Billing for OpenStack Solution
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
제3회난공불락 오픈소스 인프라세미나 - Pacemaker
Azure databases for PostgreSQL, MySQL and MariaDB
Open infradays 2019_msa_k8s
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
Kubernetes & Istio in Multi-Cloud
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
[오픈소스컨설팅] OpenShift PaaS Platform How-to
MySQL operator for_kubernetes
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람
Docker osc 0508
Migration to Azure Database for MySQL
[Open-infradays 2019 Korea] jabayo on Kubeflow
공개소프트웨어 DBMS에 대한 주요 도입 및 마이그레이션 사례
해외 사례로 보는 Billing for OpenStack Solution
Ad

Similar to NetApp AI Control Plane (20)

PDF
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
PPTX
애플리케이션 최적화를 위한 컨테이너 인프라 구축
PDF
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
PDF
SOSCON 2017 - Backend.AI
PDF
Knative로 서버리스 워크로드 구현
PDF
Pivotal 101세미나 발표자료 (PAS,PKS)
PDF
Deployment techniques for cloud native
PDF
JMI Techtalk : Backend.AI
PDF
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
PDF
Machine Learning Model Serving with Backend.AI
PDF
Lablupconf session8 "Paving the road to AI-powered world"
PPTX
Open standard open cloud engine for digital business process
PDF
락플레이스 OpenShift Q&A 토크쇼 발표자료
PDF
Openshift 활용을 위한 Application의 준비, Cloud Native
PDF
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
PDF
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나- IBM Bluemix
PDF
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
PDF
Nexclipper_1905_summary_kor
PDF
Toward kubernetes native data center
PDF
AWS re:Invent 2018 신규 서비스 살펴보기 - 윤석찬, AWS 테크에반젤리스트
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
애플리케이션 최적화를 위한 컨테이너 인프라 구축
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
SOSCON 2017 - Backend.AI
Knative로 서버리스 워크로드 구현
Pivotal 101세미나 발표자료 (PAS,PKS)
Deployment techniques for cloud native
JMI Techtalk : Backend.AI
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
Machine Learning Model Serving with Backend.AI
Lablupconf session8 "Paving the road to AI-powered world"
Open standard open cloud engine for digital business process
락플레이스 OpenShift Q&A 토크쇼 발표자료
Openshift 활용을 위한 Application의 준비, Cloud Native
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 가상 네트워크 (CB-Larva)
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나- IBM Bluemix
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
Nexclipper_1905_summary_kor
Toward kubernetes native data center
AWS re:Invent 2018 신규 서비스 살펴보기 - 윤석찬, AWS 테크에반젤리스트
Ad

NetApp AI Control Plane

  • 1. NetApp AI Control Plane 하이브리드 / 멀티 클라우드 환경의 AI 데이터 관리 방안 © 2020 NetApp, Inc. All rights reserved. 한국 넷앱 백승용 / 솔루션 엔지니어 2020년 8월
  • 2. 데이터는 모든 산업을 변화시키고 있습니다. 인공지능은 데이터로부터 시작됩니다. 2 © 2020 NetApp, Inc. All rights reserved. 202020102000 Hardware Data SoftwareSoftware Hardware Data Hardware Data Software
  • 3. 엔터프라이즈 데이터 서비스와 관리 3 © 2020 NetApp, Inc. All rights reserved. 용량 성능 데이터 보호/복제 클라우드 연계 DevOps 사용자 서비스 데이터
  • 4. Machine Learning Workflow 4 © 2020 NetApp, Inc. All rights reserved. https://www.kubeflow.org/docs/started/kubeflow-overview/
  • 5. AI 데이터 관리의 도전 과제 ▪ 개발 및 데이터 워크스페이스 ▪ 대량의 데이터 셋과 소스 코드의 관리에 대한 어려움이 없이 개발을 할 수 있어야 함 ▪ 데이터는 새로운 소스 코드 ▪ 소스 코드, 모델, 및 데이터에 대하여 전반적인 버전 관리와 추적 필요 ▪ 여러 개의 팀이, 여러 개의 다른 지역에서 근무 ▪ AI 컴퓨팅 또는 데이터 사일로를 통합하고 연계할 수 있어야 함 ▪ 다양한 이기종 데이터 소스 ▪ 여러 데이터 소스를 하나의 AI 데이터 파이프라인으로 통합할 수 있어야 함 5 © 2020 NetApp, Inc. All rights reserved.
  • 6. Automated Pipelines Core ▪ 온 디맨드 데이터 및 워크스페이스 ▪ 필요한 모든 데이터 셋에 접근 가능 ▪ 에지, 코어, 클라우드까지 확장 가능한 워크스페이스 ▪ 다양한 컴퓨팅 환경의 선택 ▪ 사이트간 데이터 과학자의 협업 ▪ AI 워크플로우의 자동화 ▪ 코드 기반 데이터 관리 ▪ 버전 관리 및 백업 스냅샷, 복제, 클론 ▪ 개발, 테스트, 백업, A/B 테스팅 등 모델 또는 데이터 셋의 원활한 버전 전환 NetApp AI Control Plane 풀 스택 AI 데이터 서비스 및 관리 CloudEdge NetApp AI Control Plane NetApp Data Fabric 6 © 2020 NetApp, Inc. All rights reserved. Web-based Workspace Web-based Workspace Data Scientist Data Scientist Data Scientist Data Engineer
  • 7. Kubeflow Central Dashboard 7 © 2020 NetApp, Inc. All rights reserved. https://www.kubeflow.org/docs/components/central-dash/overview/ Kubeflow is the machine learning toolkit for Kubernetes. Kubeflow is a platform for data scientists who want to build and experiment with ML pipelines.
  • 8. AI 워크스페이스를 위한 온 디맨드 프로비저닝 Common DIY method 8 © 2020 NetApp, Inc. All rights reserved. CLI Web-based WorkspaceData Scientist Manually Provision (Minutes) CLI Copy Data to Workspace (Hours to Days) No Data Protection No Traceability No Data Versioning Inefficient Use of Space Pull from Cloud (Slow) NetApp AI Control Plane Control Plane UI Data Scientist Provision (seconds) Return Access URL (seconds) Developer WS Cloud-connected Data Fabric Data Set Volume Web-based Workspace
  • 9. ▪ Kubeflow Pipelines: ▪ 컨테이너를 기반으로, 확장 가능하고 재사용이 가능한 머신 러닝 워크플로우의 구축과 배포를 위한 플랫폼 ▪ Python SDK 사용 ▪ 파이프라인 결합 예 ▪ 새로운 데이터 볼륨 프로비전 ▪ 코드, 모델과 데이터 셋을 연결 ▪ 데이터 셋 버전 저장(추적 및 재사용) ▪ 학습 모델 버전 저장 ▪ 프로젝트 공유를 위한 클론 ▪ 다양한 환경에 데이터 복제 AI 워크플로우 자동화 쿠브플로우 파이프라인과 완벽한 결합 9 © 2020 NetApp, Inc. All rights reserved.
  • 10. 코드 기반의 데이터 인프라 관리 ▪ Jupyter Notebooks ▪ 웹 기반의 환경에서 개발, 코드 실행, 문서화, 및 프로젝트 공유를 할 수 있는 개발 환경 ▪ AI/ML 커뮤니티 뿐만 아니라 다양한 영역에서 범용적을 활용되고 있음 ▪ NetApp Python Client Library ▪ 익숙한 인터페이스를 통한 페타 바이트 단위의 데이터 접근 ▪ 노트북을 통해서 데이터의 백업 또는 버전 스냅샷, 클론, 및 복제를 코드로 제어 즉각적인 데이터 접근과 신속한 실험의 수행 10 © 2020 NetApp, Inc. All rights reserved.
  • 11. 멀티 사이트, 멀티 개발자 협업 표준 AI / ML 도구를 사용하여 데이터 동기화 Kubernetes (k8s) cluster 11 © 2020 NetApp, Inc. All rights reserved. Snapshot copies Dataset/model versions A/B testing Cloud Sync / SnapMirror Dev/Test or burst in cloud NetApp SnapMirror® Snapshot copies Dataset/model/code versions A/B testingNetApp® Data Fabric Object storage Cold data tiering Data lake Workflow Driven: Kubeflow Pipeline Operation User Driven (Interactive): Code Executed in Notebook
  • 12. NetApp Cloud Sync 다양한 이기종 데이터 소스의 통합 NetApp Cloud Sync 서비스 12 © 2020 NetApp, Inc. All rights reserved. NetApp Confidential - Limited Use Only Orchestration
  • 13. AI as a Service (AIaaS)의 실현 온 디맨드와 자동화를 기반으로 AIaaS의 실현 TensorFlow Container Kubernetes (k8s) cluster GPU node 1 GPU node 2 Data volume 13 © 2020 NetApp, Inc. All rights reserved. Snapshot copies Dataset/model versions A/B testing Cloud Sync / SnapMirror Dev/Test or burst in cloud NetApp SnapMirror® Snapshot copies Dataset/model/code versions A/B testingNetApp® Data Fabric Object storage Cold data tiering Data lake PyTorch Container Inference Server Container Jupyter Container
  • 14. ▪ Kubeflow = an AI/ML toolkit for k8s ▪ Standard open-source platform for deploying AI/ML workloads ▪ Kubernetes (k8s) = container/resource orchestration ▪ Industry-standard, open-source platform ▪ NetApp Trident = storage provisioner for k8s ▪ Enterprise-class storage presented in Kubernetes-native format ▪ Choice of compute and/or cloud ▪ NetApp Data Fabric = data portability and protection ▪ Edge to core to cloud data movement ▪ Ansible = deployment automation, infrastructure as code DIY: Open-source Stack Enabling portability, scalability, flexibility, and simplicity Persistent storage Orchestration Compute/Cloud AI/ML workloads NetApp Data Fabric Automation 14 © 2020 NetApp, Inc. All rights reserved. ?
  • 15. NVIDIA DeepOps Example for an ONTAP AI environment 15 © 2020 NetApp, Inc. All rights reserved. Prepare management node(s) Prepare provisioning node Prepare compute node(s) Deploy basic services Deploy additional services DeepOps Deploy Trident Deploy Kubeflow Deploy Kubernetes on management node(s) Deploy Kubernetes on compute node(s) Initial infrastructure provisioning Picture source: NVIDIA POD reference architecture (with NetApp HCI added) GPU compute node(s) For high-performance compute workloads Management node(s) Used for cluster management Provisioning node Orchestrates the initial setup of the cluster Storage node(s) For high-performance data storage
  • 16. 검증된 레퍼런스 아키텍처 기반 솔루션 16 © 2020 NetApp, Inc. All rights reserved. E-Series AI FlexPOD AI ONTAP AI Compute: DGX Networking: Ethernet Storage: AFF, NFS, ONTAP ✓ Most complete solution (AI Control Plane) ▪ NVIDIA DGX + NetApp All Flash ▪ Cisco UCS + NetApp All Flash Compute: UCS Networking: Ethernet Storage: AFF, NFS, ONTAP ✓ 10 years of GTM partnership ▪ NVIDIA DGX SuperPOD + NetApp Compute: DGX SuperPOD or white box Networking: InfiniBand Storage: E-Series, IBM Spectrum Scale or BeeGFS ✓ Support your IB install base
  • 17. NetApp AI Control Plane이란? I. AI 워크스페이스를 위한 온 디맨드 프로비저닝 – NetApp Trident II. AI 워크플로우 자동화 – 쿠브플로우 파이프라인과 완벽한 결합 III. 코드 기반의 데이터 인프라 관리 – REST API 및 Python SDK IV. 멀티 사이트, 멀티 개발자 협업 – NetApp SnapMirror w/ Kubeflow, Jupyter V. 다양한 이기종 데이터 소스의 통합 – NetApp Cloud Sync w/ Kubeflow, Jupyter AI as a Service를 실현할 수 있는, NetApp AI Data Control Plane 17 © 2020 NetApp, Inc. All rights reserved.
  • 18. MiniKF(MiniKube + Kubeflow)와 ONTAP을 이용한 심플 테스트 Kubeflow Pipelines w/ ONTAP 18 © 2020 NetApp, Inc. All rights reserved.
  • 19. 테스트 구성 환경 VMWare Workstation 구성 19 © 2020 NetApp, Inc. All rights reserved. 구분 쿠브플로우 서버 넷앱 스토리지 공통 ▪ VM on VMWare Workstation ▪ IP: 192.168.232.160 ▪ OS: Ubuntu 18.04 ▪ hostname: MiniKF ▪ 8코어, 16GB, 120GB HDD ▪ VM on VMWare Workstation ▪ IP: 192.168.232.150, 151 ▪ OS: ONTAP 9.7 ▪ Cluster: ONTAP97 Role ▪ MiniKF(MiniKube, Kubeflow), NetApp Trident ▪ 스토리지
  • 20. 구성 수순 #1 가상 머신 생성 및 필요 패키지 설치 20 © 2020 NetApp, Inc. All rights reserved. 1. 호스트용 가상 머신 생성 • VMware Workstation • Ubuntu 18.04 • 16GB 메모리, 8 코어 CPU, 120GB 디스크 • MiniKF 시스템 요구 규격 이상으로 구성 필요 2. 필요 패키지 설치 • MiniKF 구성을 위해서는 vagrant와 VirtualBox 필요 • 아래 사이트를 참고하여 최신 버전 다운로드 설치 • Ubuntu 18.04 VM에서 수행 • Vagrant: VMWare, VirtualBox, KVM같은 하이퍼바이저를 백엔드로 하여, 가상 머신을 생성 및 관리해주는 툴 • Oracle VirtualBox: 오라클사의 오픈소스 하이버파이저 • dpkg 및 apt 명령을 이용하여 설치 https://www.vagrantup.com/ https://www.virtualbox.org/ 3. Vagrant를 이용한 MiniKF 가상 머신 생성 • Kubeflow 사이트 참조 https://www.Kubeflow.org/docs/started/workstation/getting-started- minikf/ seungyong@MiniKF:~$ mkdir MiniKF seungyong@MiniKF:~$ cd MiniKF/ seungyong@MiniKF:~/MiniKF$ vagrant init arrikto/minikf • 정상 완료가 되면, $HOME/MiniKF 에 필요 파일 생성 됨 seungyong@MiniKF:~/MiniKF$ vagrant up • 지정된 VirtualBox 디렉토리에 가상 머신이 생성되고 부팅 됨 seungyong@MiniKF:~$ cd MiniKF/ seungyong@MiniKF:~/MiniKF$ vagrant ssh • 해당 디렉토리에 Vagrantfile이 있기 때문에, 디렉토리 들어가서 실행
  • 21. 구성 수순 #2 MiniKF 프로비저닝 21 © 2020 NetApp, Inc. All rights reserved. 4. MiniKF 프로비저닝 ------------------------------ Welcome to MiniKF! Type "minikf" to ensure everything is up and running. ------------------------------ vagrant@minikf:~$ minikf • 필요한 컨테이너 이미지, minikube, kubeflow, rok를 자동으로 다운로드 하고 구성해 줌 • 프로비저닝이 정상 완료 되면 77개의 POD를 k9s에서 확인 가능 • NetApp Trident POD이 2개 추가 되면 79개, 그 외에 노트북 서버등을 만들면 늘어남 • MiniKF 20200305.1.0 버전 기준
  • 22. 구성 수순 #3 NetApp Trident 및 K9s 설치 22 © 2020 NetApp, Inc. All rights reserved. 5. NetApp Trident 및 K9s 설치 • 최신 버전 다운로드 설치 • K9s: 단일 화면에서 k8s 클러스터를 모니터링하고 관리하는 툴 vagrant@minikf:~$ wget https://github.com/derailed/k9s/releases/download/v0.21.2/k9s_Linux_ x86_64.tar.gz vagrant@minikf:~$ tar zvxf k9s_Linux_x86_64.tar.gz vagrant@minikf:~$ sudo mv k9s /usr/local/bin vagrant@minikf:~$ k9s vagrant@minikf:~$ wget https://github.com/NetApp/trident/releases/download/v20.04.0/trident- installer-20.04.0.tar.gz vagrant@minikf:~$ tar zvxf trident-installer-20.04.0.tar.gz vagrant@minikf:~$ kubectl create namespace trident vagrant@minikf:~$ cd trident-installer vagrant@minikf:~/trident-installer$ ./tridentctl install -n trident vagrant@minikf:~/trident-installer$ ./tridentctl obliviate alpha- snapshot-crd • Trident 설치 시에 에러가 발생하면 트러블 슈팅 문서 참고 https://netapp- trident.readthedocs.io/en/latest/kubernetes/troubleshooting.html vagrant@minikf:~/trident-installer$ sudo cp tridentctl /usr/local/bin vagrant@minikf:~$ tridentctl create backend -f backend.json -n trident vagrant@minikf:~$ kubectl create -f storageclass.yaml https://github.com/derailed/k9s https://github.com/NetApp/trident
  • 23. 구성 수순 #3 샘플 backend.json, storageclass.yaml 23 © 2020 NetApp, Inc. All rights reserved. • backend.json { "version": 1, "storageDriverName": "ontap-nas", "backendName": "ONTAP97", "managementLIF": "192.168.232.150", "dataLIF": "192.168.232.151", "svm": "MiniKF", "username": "admin", "password": "xxxxxxxxxx" } • storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ontap97-basic-sc provisioner: csi.trident.netapp.io parameters: backendType: "ontap-nas"
  • 24. 구성 확인 #1 MiniKF POD 구성 확인 24 © 2020 NetApp, Inc. All rights reserved. vagrant@minikf:~$ k9s • K9s에서 MiniKF POD 구성 확인 • Trident 설치 후에 79개 POD
  • 25. 구성 확인 #2 MiniKube 구성 확인 25 © 2020 NetApp, Inc. All rights reserved. • Namespace 확인 • StorageClass 확인 • PVC 확인 • PV 확인
  • 26. 구성 확인 #3 NetApp Trident 구성 확인 26 © 2020 NetApp, Inc. All rights reserved. • Trident Backend 확인 • Trident StorageClass 확인 • Trident Volume 확인
  • 27. Kubeflow Pipelines 테스트 #1 Kubeflow Central Dashboard 27 © 2020 NetApp, Inc. All rights reserved. • Kubeflow Central Dashboard
  • 28. Kubeflow Pipelines 테스트 #2 Notebook Server 프로비저닝 28 © 2020 NetApp, Inc. All rights reserved. • Notebook Servers • +NEW SERVER
  • 29. Kubeflow Pipelines 테스트 #2 Notebook Server 프로비저닝 29 © 2020 NetApp, Inc. All rights reserved. • 노트북 이름 지정 • 나머지는 기본값으로 진행
  • 30. Kubeflow Pipelines 테스트 #2 Notebook Server 프로비저닝 30 © 2020 NetApp, Inc. All rights reserved. • 기본으로 생성된 볼륨 확인 • CONNECT 메뉴로 연결
  • 31. Kubeflow Pipelines 테스트 #3 파이프라인 작성 및 실행 31 © 2020 NetApp, Inc. All rights reserved. • 주피터 노트북 생성
  • 32. Kubeflow Pipelines 테스트 #3 파이프라인 작성 및 실행 32 © 2020 NetApp, Inc. All rights reserved. • 테스트 코드 작성 및 실행 • 실험 및 런 링크 확인
  • 33. Kubeflow Pipelines 테스트 #4 파이프라인 실행 결과 확인 33 © 2020 NetApp, Inc. All rights reserved. • 실험 실행 결과 확인
  • 34. Kubeflow Pipelines 테스트 #4 파이프라인 실행 결과 확인 34 © 2020 NetApp, Inc. All rights reserved. • 볼륨 생성 결과 그래프 및 로그 확인
  • 35. Kubeflow Pipelines 테스트 #4 파이프라인 실행 결과 확인 35 © 2020 NetApp, Inc. All rights reserved. • 볼륨 마운트 그래프 및 볼륨 확인
  • 36. Kubeflow Pipelines 테스트 #4 파이프라인 실행 결과 확인 36 © 2020 NetApp, Inc. All rights reserved. • 명령어 실행 그래프 및 볼륨 확인
  • 37. Kubeflow Pipelines 테스트 #4 파이프라인 실행 결과 확인 37 © 2020 NetApp, Inc. All rights reserved. • 명령어 실행 그래프 및 로그 확인
  • 38. Kubeflow Pipelines 테스트 #5 파이프라인 실행 결과 확인(Optional) 38 © 2020 NetApp, Inc. All rights reserved. • 파이프라인에 사용된 POD 확인
  • 39. Kubeflow Pipelines 테스트 #5 파이프라인 실행 결과 확인(Optional) 39 © 2020 NetApp, Inc. All rights reserved. • StorageClass 확인 • PVC 확인 • PV 확인
  • 40. Kubeflow Pipelines 테스트 #5 파이프라인 실행 결과 확인(Optional) 40 © 2020 NetApp, Inc. All rights reserved. • Trident Backend 확인 • Trident StorageClass 확인 • Trident Volume 확인
  • 41. Kubeflow Pipelines 테스트 #5 파이프라인 실행 결과 확인(Optional) 41 © 2020 NetApp, Inc. All rights reserved. • 스토리지 볼륨 확인
  • 42. Kubeflow Pipelines 테스트 #5 파이프라인 실행 결과 확인(Optional) 42 © 2020 NetApp, Inc. All rights reserved. • 실 데이터 확인
  • 43. Kubeflow Pipelines 테스트 #6 테스트 환경 삭제 43 © 2020 NetApp, Inc. All rights reserved. 1. Kubeflow Central Dashboard의 UI에서 노트북을 삭제하면 해당 POD가 삭제 됨 2. 파이프라인에 사용된 POD 삭제 → attachstorage-xxx-xxx를 모두 삭제 3. 사용된 PVC를 삭제하면, PV와 스토리지의 물리적인 볼륨까지 자동으로 모두 삭제가 됨(볼륨 Reclaim 정책에 따라 달라짐) 4. StorageClass도 필요시 수동 삭제
  • 44. 44 감사합니다. © 2020 NetApp, Inc. All rights reserved.