SlideShare a Scribd company logo
Enterprise Data Science Workflows on Kubeflow
Use GitOps to deploy and manage your Kubeflow cluster.
Perform an end-to-end data science workflow on Kubeflow.
Stefano Fioravanzo
Yannis Zarkadas
Arrikto
Simplify. Accelerate. Collaborate. arrik.to/odsc20
GitOps and Multi-Tenancy Combined for an
Enterprise Data Science Experience on Kubeflow
Stefano Fioravanzo Yannis Zarkadas
Software Engineer Software Engineer
2
Simplify. Accelerate. Collaborate. arrik.to/odsc20
● How to deploy and manage Kubeflow in a GitOps manner
● How to make sure you run Kubeflow in a secure way
● How to optimize and build production-ready models faster
Why is this important?
✓ Simplify deployment and management of Kubeflow
✓ Accelerate time to production
✓ Collaborate in a secure and isolated manner
What You’ll Learn In This Session
3
Simplify. Accelerate. Collaborate. arrik.to/odsc20
What is Kubeflow
The Kubeflow project is dedicated to making deployments of
machine learning (ML) workflows on Kubernetes: simple,
portable and scalable.
4
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Perception: ML Products are mostly about ML
Credit: Hidden Technical Debt of Machine Learning Systems, D. Sculley, et al.
Configuration
Data Collection
Data
Verification
Feature
Extraction
Process
Management Tools
Analysis Tools
Machine
Resource
Management
Serving
Infrastructure
Monitoring
ML Code
5
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Reality: ML Requires DevOps; lots of it
Configuration
Data Collection
Data
Verification
Feature Extraction Process Management
Tools
Analysis Tools
Machine
Resource
Management
Serving
Infrastructure
Monitoring
ML
Code
Credit: Hidden Technical Debt of Machine Learning Systems, D. Sculley, et al.
6
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Kubeflow components
7
Jupyter Notebooks
Workflow Building
Pipelines
Tools
Serving
Metadata
Data Management
Kale
Fairing
TFX
Airflow, +
KF Pipelines
HP Tuning
Tensorboard
KFServing
Seldon Core
TFServing, + Training Operators
Pytorch
XGBoost, +
Tensorflow
Prometheus
Versioning ReproducibilitySecure
Sharing
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Platforms /
clouds
GCP AWS IBM CloudAzure OpenShift
Istio
ML tools
PyTorch scikit-learn
Jupyter
TensorFlow
PyTorch
Serving
TensorFlow
Serving
XGBoost
Kubernetes
Argo
Prometheus
Spartakus
Seldon Core
Kubeflow
applications
and
scaffolding
Chainer MPI MXNet
On prem
Jupyter notebook
web app and
controller
Hyperparameter
tuning (Katib)
Kale
Pipelines
Metadata
Training operators:
MPI, MXNet, PyTorch,
TFJob, XGBoost
Kubeflow UI
KFServing
8
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Platforms /
clouds
Kubeflow
applications
and
scaffolding
ML tools
PyTorch scikit-learn
Jupyter
TensorFlow XGBoost
Chainer MPI MXNet
GCP AWS IBM CloudAzure OpenShift
Istio
PyTorch
Serving
TensorFlow
Serving
Kubernetes
Argo
Prometheus
Spartakus
Seldon Core
On prem
Jupyter notebook
web app and
controller
Hyperparameter
tuning (Katib)
Kale
Pipelines
Metadata
Kubeflow UI
KFServing
Training operators:
MPI, MXNet, PyTorch,
TFJob, XGBoost
9
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Platforms /
clouds
ML tools
PyTorch scikit-learn
Jupyter
TensorFlow XGBoost
Kubeflow
applications
and
scaffolding
Chainer MPI MXNet
GCP AWS IBM CloudAzure OpenShift
Istio
PyTorch
Serving
TensorFlow
Serving
Kubernetes
Argo
Prometheus
Spartakus
Seldon Core
On prem
Jupyter notebook
web app and
controller
Hyperparameter
tuning (Katib)
Kale
Pipelines
Metadata
Kubeflow UI
KFServing
Training operators:
MPI, MXNet, PyTorch,
TFJob, XGBoost
10
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Platforms /
clouds
ML tools
PyTorch scikit-learn
Jupyter
TensorFlow XGBoost
Kubeflow
applications
and
scaffolding
Chainer MPI MXNet
GCP AWS IBM CloudAzure OpenShift
Istio
PyTorch
Serving
TensorFlow
Serving
Kubernetes
Argo
Prometheus
Spartakus
Seldon Core
Jupyter notebook
web app and
controller
Hyperparameter
tuning (Katib)
Kale
Pipelines
Metadata
Kubeflow UI
KFServing
On prem
Training operators:
MPI, MXNet, PyTorch,
TFJob, XGBoost
11
Simplify. Accelerate. Collaborate. arrik.to/odsc20
ML workflow
Identify
problem and
collect and
analyse data
Choose an ML
algorithm and
code your
model
Experiment
with data and
model training
Tune the model
hyperparamet
ers
Jupyter
Notebook
Katib
TensorFlow
scikit-learn
PyTorch
XGBoost
Jupyter
Notebook
Kale
Pipelines
KFServing
PyTorch
TFServing
Seldon Core
NVIDIA
TensorRT
Serve the
model for
online/batch
prediction
12
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Testimonials
● Dyson: “Kubeflow is to data science what a lab notebook is to biomedical
scientists — a way to expedite ideas from the lab to the ‘bedside’ 3x faster, while
ensuring experimental reproducibility.”
● US Bank: “The Kubeflow 1.0 release is a significant milestone as it positions
Kubeflow to be a viable ML Enterprise platform. Kubeflow 1.0 delivers material
productivity enhancements for ML researchers.”
● One Technologies: “With Kubeflow at the heart of our ML platform, our small
company has been able to stack models in production to improve CR, find new
customers, and present the right product to the right customer at the right time.”
13
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Testimonials
● GroupBy: “Kubeflow is helping GroupBy in standardizing ML workflows and
simplifying very complicated deployments!”
● Volvo Cars: “Kubeflow provides a seamless interface to a great set of tools
that together manages the complexity of ML workflows and encourages best
practices. The Data Science and Machine Learning teams at Volvo Cars are
able to iterate and deliver reproducible, production grade services with ease.”
14
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Kubeflow - The Infra Side
● Install
● Manage
● Secure
● Upgrade
Simplify. Accelerate. Collaborate. arrik.to/odsc20
What is GitOps
16
All configuration state is declaratively stored in git.
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Imperative vs Declarative
Imperative
1. Create Service
2. Update LoadBalancer
3. Upgrade Deployment
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Imperative vs Declarative
Declarative
Desired State (YAML)
K8s
kind: Pod
metadata:
name: mysql
spec:
image: mysql:7.6
apply
etcd
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Controller
Spec
(desired)
Status
(real)
Kubernetes
Objects
Controller Pattern - The driver behind declarative APIs
Used everywhere in Kubernetes
Observe
Calculate
Reconcile
Physical ResourcesPhysical ResourcesPhysical Resources
write
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Why GitOps?
Simplify. Accelerate. Collaborate. arrik.to/odsc20
K8s
etcd
K8s
etcd
Reproducibility
commit 856df4gdf56g4561d1fg564df5g61v6854df
Author: yanniszark <yanniszark@arrikto.com>
Date: Tuesday, Sep 8 11:24:12 2020 +0200
Upgrade MySQL to new version.
K8s
etcd
apply
● Whole configuration state in git, versioned by commits
● Careful! Mutable state still outside of git (e.g., volumes, S3)
○ Need versioning solution for end-to-end reproducibility
○ Arrikto Rok produces data commits for your volumes (e.g., MySQL)
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Rollbacks
commit 856df4gdf56g4561d1fg564df5g61v6854df
Author: yanniszark <yanniszark@arrikto.com>
Date: Tuesday, Sep 8 11:24:12 2020 +0200
Upgrade MySQL to new version.
commit er1f1ef8f1e1rf5641sdfs564d1fsd1f5sd61fgwd
Author: yanniszark <yanniszark@arrikto.com>
Date: Tuesday, Sep 4 15:24:12 2020 +0200
Increase MySQL read-replicas to 3 for higher
availability.
git log
K8s
etcd
apply
apply
Unhealthy
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Auditing
git blame
48f078b0 (Yannis Zarkadas 2020-06-11 41) kind: Deployment
48f078b0 (Yannis Zarkadas 2020-06-11 42) metadata:
48f078b0 (Yannis Zarkadas 2020-06-11 43) name: nginx
48f078b0 (Yannis Zarkadas 2020-06-11 46) spec:
48f078b0 (Stefano Fioravanzo 2020-06-11 47) replicas: 1
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Rich Ecosystem
● Collaboration through familiar and battle-tested tools
○ Pull Requests and Code Reviews
● Rich offerings
○ GitHub, GitLab, etc.
● Plenty of integrations
○ GitHub Actions, GitLab Pipelines, etc.
Reuse whatever you already know about git!
Simplify. Accelerate. Collaborate. arrik.to/odsc20
GitOps Workflow
Simplify. Accelerate. Collaborate. arrik.to/odsc20
GitOps Workflow
Deployer
GitOps repo
commit
kubectl
apply
Desired State (YAML)
kind: Pod
metadata:
name: mysql
spec:
image: mysql:7.6
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Deployer
GitOps repo
(downstream)
commit
kubectl
apply
GitOps Workflow
● What about 3rd-party applications?
● Usually, infrastructure configuration is provided by the vendor
● For example, Kubeflow maintains a “manifests” monorepo with all deployment
configurations
manifests repo
(upstream)
Kubeflow
Developer
commit
periodic
rebase
Simplify. Accelerate. Collaborate. arrik.to/odsc20
GitOps - Managing Configuration
● How do you manage configuration?
○ Use 3rd-party provided configs
○ Customer changes
○ Update periodically
● Several tools:
○ helm
○ kustomize
○ ...
● Kubeflow uses kustomize
● We (Arrikto) use kustomize for our deployments
kind: Deployment
metadata:
name: redis
namespace: deploy
spec:
template:
spec:
image: gcr.io/redis:6
replicas: 3
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - Helm
● Helm is the most popular tool that uses templating
● Exposes knobs to consumers via values file
● Templating is hard to read
values.yaml Chart
Customer Repo
(downstream)
Vendor Repo
(upstream)
Simplify. Accelerate. Collaborate. arrik.to/odsc20
{{ if (or (not .Values.persistence.enabled) (eq .Values.persistence.type "pvc")) }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "grafana.fullname" . }}
namespace: {{ template "grafana.namespace" . }}
labels:
{{- include "grafana.labels" . | nindent 4 }}
{{- if .Values.labels }}
{{ toYaml .Values.labels | indent 4 }}
{{- end }}
{{- with .Values.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
https://github.com/helm/charts/blob/99805df25da220c379ad609fcb7cf20e5e0d4fc0/stable/grafana/templates/deployment.yaml
Managing Configuration - Templating
Simplify. Accelerate. Collaborate. arrik.to/odsc20
└── redis
├── base
│ ├── configmap.yaml
│ ├── kustomization.yaml
│ ├── service.yaml
│ └── statefulset.yaml
Managing Configuration - kustomize
resources:
- configmap.yaml
- service.yaml
- statefulset.yaml
kustomization.yaml
● Base configuration
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - kustomize
kind: Deployment
metadata:
name: redis
spec:
template:
spec:
image: gcr.io/redis:6
replicas: 1
kustomize build
redis/base
resources:
- configmap.yaml
- service.yaml
- statefulset.yaml
kustomization.yaml
Simplify. Accelerate. Collaborate. arrik.to/odsc20
└── redis
├── base
└── overlays
├── deploy
│ ├── kustomization.yaml
│ └── patches
│ └── replicas.yaml
Managing Configuration - kustomize
bases:
- ../base
namespace: deploy
patches:
- path: patches/replicas.yaml
kustomization.yaml
● Create overlays (variants) to customize
deployment
kind: Deployment
metadata:
name: redis
spec:
template:
spec:
replicas: 3
patches/replicas.yaml
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - kustomize
kind: Deployment
metadata:
name: redis
namespace: deploy
spec:
template:
spec:
image: gcr.io/redis:6
replicas: 3
kustomize build
redis/overlays/deploy
bases:
- ../base
namespace: deploy
patches:
- path: patches/replicas.yaml
kustomization.yaml
kind: Deployment
metadata:
name: redis
spec:
template:
spec:
replicas: 3
patches/replicas.yaml
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - kustomize
Vendor Repo
(upstream)
Customer Repo
(downstream)
v1
v2
d1
v1
v2
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - kustomize
Vendor Repo
(upstream)
Customer Repo
(downstream)
v1
v2
d1
v1
v2
v3
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Managing Configuration - kustomize
Vendor Repo
(upstream)
Customer Repo
(downstream)
d1
v1
v2
v3
v1
v2
v3
● Update with git rebase
● Separate file == no conflicts
Simplify. Accelerate. Collaborate. arrik.to/odsc20
└── redis
├── base
└── overlays
├── deploy
Managing Configuration - kustomize
● Powerful customization capabilities
● Rebase from upstream to get new updates
● Customizations in separate folders, no conflicts on rebase
Consumer
customizations
Upstream repo
GitOps repo
Simplify. Accelerate. Collaborate. arrik.to/odsc20
● Simplify Kubeflow stack installation, configuration, and management
○ Deploy and manage software in a declarative way
○ Complete visibility of system configuration
● Accelerate the upgrade process by continuously deploying changes to the
cluster
○ Track changes and revert if something goes wrong
● Collaborate better and faster, share knowledge with the whole team
○ Keep using your favorite familiar tools and workflow
Why GitOps in your Kubeflow Deployment
39
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Demo
1. Kubernetes Cluster (EKS) on Amazon Web Services
2. Deploy Rok
3. Deploy Kubeflow
4. Update installation from upstream
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Security in Kubeflow
“We observed that this attack effected
on tens of Kubernetes clusters.”
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Multi-User Isolation
Authentication?
Authorization?
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Authentication using OIDC Protocol
● Open & Standardized OAuth Flow
● Objective: Get the User’s Identity (username, groups)
● Popular and Secure
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Identity Provider
LDAP / AD
Static
Password
File
External
IdP
(Google, LinkedIn,
…)
OIDC Provider
Interface
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Authorization
● Authorization with Role Based Access Control (RBAC)
● Commit RBAC resources in git for reproducibility
Endpoints
RBAC
Resources Verbs
GET /apis/kubeflow.org/v1/notebooks/{name} Notebooks GET
GET /apis/kubeflow.org/v1/notebooks Notebooks LIST
POST /apis/kubeflow.org/v1/notebooks Notebooks CREATE
DELETE /apis/kubeflow.org/v1/notebooks/{name} Notebooks DELETE
GET /apis/kubeflow.org/v1/experiments/{name} Experiments GET
Can USER do ACTION on RESOURCE in NAMESPACE?
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Handling Credentials
● Credentials are kept in Secrets
● Injected into Pods at runtime with PodDefaults
● Applications expect to find secrets in files or environment variables
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Auth Guidelines for Kubeflow
● Guidelines for secure applications in Kubeflow
https://github.com/kubeflow/community/blob/3357efef4947297026111df17e468d9204fa2061/guidelines/auth.md
Simplify. Accelerate. Collaborate. arrik.to/odsc20
CI/CD for ML
How can data scientists continually improve
and validate models?
● Develop models and pipelines in Jupyter
● Convert notebook to pipeline using Kale
● Run pipeline using Kubeflow Pipelines
● Explore and debug pipeline using Rok
Develop
(Jupyter)
Explore Pipeline
(Rok)
Create Pipeline
(Kale)
Run Pipeline
(KF Pipelines)
N2P CUJ
48
Simplify. Accelerate. Collaborate. arrik.to/odsc20
This workshop will focus on two essential
aspects:
• Low barrier to entry: deploy a Jupyter
Notebook to Kubeflow Pipelines in the
Cloud using a fully GUI-based approach
• Reproducibility: automatic data
versioning to enable reproducibility and
better collaboration between data
scientists
Data Science with Kubeflow
Building
a
Model
Logging
Data
Ingestion
Data
Analysis
Data
Transform
-ation
Data
Validation
Data
Splitting
Trainer
Model
Validation
Training
At Scale
Roll-out Serving Monitoring
Kubeflow Pipelines exists because Data Science and ML are inherently pipeline processes
49
Simplify. Accelerate. Collaborate. arrik.to/odsc20
This workshop will focus on two essential
aspects:
• Low barrier to entry: deploy a Jupyter
Notebook to Kubeflow Pipelines in the
Cloud using a fully GUI-based approach
• Reproducibility: automatic data
versioning to enable reproducibility and
better collaboration between data
scientists
Data Science with Kubeflow
Building
a
Model
Logging
Data
Ingestion
Data
Analysis
Data
Transform
-ation
Data
Validation
Data
Splitting
Trainer
Model
Validation
Training
At Scale
Roll-out Serving Monitoring
Kubeflow Pipelines exists because Data Science and ML are inherently pipeline processes
50
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Benefits of running a Notebook as a Pipeline
● The steps of the workflow are clearly defined
● Parallelization & isolation
○ Hyperparameter tuning
● Data versioning
● Different infrastructure requirements
○ Different hardware (GPU/CPU)
51
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Before
Amend your ML code?
Write your ML code
Create Docker images
Write DSL KFP code
Compile DSL KFP
Upload pipeline to KFP
Run the Pipeline
Workflow
52
Simplify. Accelerate. Collaborate. arrik.to/odsc20
After
Amend your ML code?
Write your ML code
Tag your Notebook cells
Run the Pipeline at the click of a button
Just edit your Notebook!
Before
Amend your ML code?
Write your ML code
Create Docker images
Write DSL KFP code
Compile DSL KFP
Upload pipeline to KFP
Run the Pipeline
Workflow
53
Simplify. Accelerate. Collaborate. arrik.to/odsc20
After
Amend your ML code?
Write your ML code
Tag your Notebook cells
Run the Pipeline at the click of a button
Just edit your Notebook!
Before
Amend your ML code?
Write your ML code
Create Docker images
Write DSL KFP code
Compile DSL KFP
Upload pipeline to KFP
Run the Pipeline
Workflow
A Data Scientist can now
reduce the time taken to write
ML code and run a pipeline by
70%. 
That means you can now run
3x as many experiments as
you did before.
 
What that really means is that
you can deliver work faster to
the business and drive more
revenue
54
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Hyperparameter optimization
The two ways of life
● Change the parameters manually
● Use Katib
55
Simplify. Accelerate. Collaborate. arrik.to/odsc20
What is Katib
Katib is a Kubernetes-based system for Hyperparameter Tuning and
Neural Architecture Search. It supports a number of ML frameworks,
including TensorFlow, Apache MXNet, PyTorch, XGBoost, and others.
56
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Hyperparameter optimization
Combining the N2P CUJ with Katib
● Configure parameters, search algorithm, and objectives
using a GUI
● Start HP tuning with the click of a button
● Reproducibility of every pipeline and every step
● Run Katib Trials as Pipelines
● Complete visibility of every different Katib Trial
● Caching for faster computation
57
Simplify. Accelerate. Collaborate. arrik.to/odsc20
A data science journey
58
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
Go to arrik.to/demowfhp to find the
Codelab with the step-by-step
instructions for this tutorial
59
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
60
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
Convert notebook to a
Kubeflow pipeline
61
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
62
Simplify. Accelerate. Collaborate. arrik.to/odsc20
KALE – Kubeflow Automated Pipelines Engine
● Python package + JupyterLab extension
● Convert a Jupyter Notebook to a KFP workflow
● No need for Kubeflow SDK
Annotated
Jupyter Notebook
Kale
Conversion Engine
63
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Kale Modules
Parse Analyze Marshal Generate
Derive pipeline
structure
Identify
dependencies
Inject data objects Generate & deploy
pipeline
64
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Contribute
github.com/kubeflow-kale
65
Simplify. Accelerate. Collaborate. arrik.to/odsc20
TFDV TFTransform TFDV Estimators TFΜΑ TFServing
Katib
Tuner
Arrikto Rok
66
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Arrikto Rok
Data Versioning, Packaging, and Sharing
Across teams and cloud boundaries for complete Reproducibility, Provenance, and Portability
ProductionExperimentation Training
Any Storage Any Storage Any Storage
Data-aware
PVCs
Data-aware
PVCs
Data-aware
PVCs
Arrikto Arrikto Arrikto
CSI CSI CSI
67
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Data Lake
Step 1 Step 2 Step 3
1. Download data from
Lake
2. Store it locally
3. Do initial analysis
4. Upload data to Lake
5. Download data from
Lake
6. Store it locally
7. Transform data
8. Upload to Lake
9. Download data from
Lake
10. Store it locally
11. Train model
12. Upload
Model Building without Data Management
71
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Step 1 Step 2 Step 3
1. Clone disk from
snapshot
2. Do initial analysis
3. Snapshot
4. Clone disk of Step 1
5. Transform data
7. Clone disk of Step 2
8. Train model
Rok
6. Snapshot 9. Snapshot
Object Store
Model Building with Local Data Management (Rok)
72
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Step 1 Step 2 Step 3
Arrikto
Object Store
Step 1 Step 2 Step 3
Arrikto
Object Store
Step 4 Step 5 Step 6
Arrikto
Object Store
Location 2
Pipeline 2: Start after Step 3 of Pipeline 1
Pipeline 3: Reproduce Pipeline 1
Location 1
Pipeline 1
Sync State & Data
73
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Validation Preprocessing Training
Data
Cloned
Data
Evaluation DeploymentTraining
Fail
Validated
Data
Preprocessed
Data
Trained
Model
Evaluated
Model
Deployed
Model
Arrikto Rok
74
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
75
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
76
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Agenda
Convert notebook to a
Kubeflow pipeline
Explore Kubeflow
components
Explore the ML code of the dog
breed identification example
Explore the accuracy of
the various models
Optimize a model with
hyperparameter tuning
Explore the results
of HP tuning
21 3
54 6
77
Simplify. Accelerate. Collaborate. arrik.to/odsc20
What have we achieved in this tutorial?
● Streamline your ML workflows using intuitive UIs
● Exploit the caching feature to give a boost to your pipeline runs
● Run a pipeline-based hyperparameter tuning workflow starting from your
Jupyter Notebook
● Use Kale as a workflow tool to orchestrate Katib and Kubeflow Pipelines
experiments
● Simplify the deployment and management of Kubeflow using GitOps
● Accelerate the time to production
● Collaborate faster and more easily in a secure and isolated manner
Summary
78
Simplify. Accelerate. Collaborate. arrik.to/odsc20 79
Just a small sample of
community contributions
● Jupyter manager UI
● Pipelines volume support
● MiniKF
● Auth with Istio + Dex
● On-premise installation
● Linux Kernel
Simplify. Accelerate. Collaborate. arrik.to/odsc20 80
Community
Kubeflow is open
● Open community
● Open design
● Open source
● Open to ideas
Get involved
● github.com/kubeflow
● kubeflow.slack.com
● @kubeflow
● kubeflow-discuss@googlegroups.com
● Community call on Tuesdays
Simplify. Accelerate. Collaborate. arrik.to/odsc20
Thank You!
More Info
arrik.to/odsc20
Email Address:
stefano@arrikto.com
yanniszark@arrikto.com
company/arrikto
Arrikto Arrikto
Arrikto

More Related Content

What's hot

Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
AnshTyagi27
 
From training to explainability via git ops
From training to explainability via git opsFrom training to explainability via git ops
From training to explainability via git ops
Ryan Dawson
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
Mohammad Bilal Wahla
 
Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)
Weaveworks
 
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Animesh Singh
 
AI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with KnativeAI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with Knative
Animesh Singh
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
VMware Tanzu Korea
 
Machine learning in the physical world by Kip Larson from AWS IoT
Machine learning in the physical world by  Kip Larson from AWS IoTMachine learning in the physical world by  Kip Larson from AWS IoT
Machine learning in the physical world by Kip Larson from AWS IoT
Bill Liu
 
Bodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine LearningBodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine Learning
Alex Ioannides
 
How to deploy machine learning models in the Cloud
How to deploy machine learning models in the CloudHow to deploy machine learning models in the Cloud
How to deploy machine learning models in the Cloud
Alex Casalboni
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with Java
Niklas Heidloff
 
Flink Forward San Francisco 2018 keynote: Anand Iyer - "Apache Flink + Apach...
Flink Forward San Francisco 2018 keynote:  Anand Iyer - "Apache Flink + Apach...Flink Forward San Francisco 2018 keynote:  Anand Iyer - "Apache Flink + Apach...
Flink Forward San Francisco 2018 keynote: Anand Iyer - "Apache Flink + Apach...
Flink Forward
 
Curated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsCurated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center Platforms
Alejandro Rios Peña
 
Cloud Workflows What's new in serverless orchestration and automation
Cloud Workflows What's new in serverless orchestration and automationCloud Workflows What's new in serverless orchestration and automation
Cloud Workflows What's new in serverless orchestration and automation
Márton Kodok
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
William Yeh
 
Google Cloud - Stand Out Features
Google Cloud - Stand Out FeaturesGoogle Cloud - Stand Out Features
Google Cloud - Stand Out Features
GDG Cloud Bengaluru
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
Google Cloud Platform - Japan
 
Flink Jobs Deployment On Kubernetes
Flink Jobs Deployment On KubernetesFlink Jobs Deployment On Kubernetes
Flink Jobs Deployment On Kubernetes
Knoldus Inc.
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Weaveworks
 
You Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer NowYou Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer Now
cornelia davis
 

What's hot (20)

Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
 
From training to explainability via git ops
From training to explainability via git opsFrom training to explainability via git ops
From training to explainability via git ops
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
 
Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)
 
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
Hybrid Cloud, Kubeflow and Tensorflow Extended [TFX]
 
AI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with KnativeAI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with Knative
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Machine learning in the physical world by Kip Larson from AWS IoT
Machine learning in the physical world by  Kip Larson from AWS IoTMachine learning in the physical world by  Kip Larson from AWS IoT
Machine learning in the physical world by Kip Larson from AWS IoT
 
Bodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine LearningBodywork - GitOps for Machine Learning
Bodywork - GitOps for Machine Learning
 
How to deploy machine learning models in the Cloud
How to deploy machine learning models in the CloudHow to deploy machine learning models in the Cloud
How to deploy machine learning models in the Cloud
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with Java
 
Flink Forward San Francisco 2018 keynote: Anand Iyer - "Apache Flink + Apach...
Flink Forward San Francisco 2018 keynote:  Anand Iyer - "Apache Flink + Apach...Flink Forward San Francisco 2018 keynote:  Anand Iyer - "Apache Flink + Apach...
Flink Forward San Francisco 2018 keynote: Anand Iyer - "Apache Flink + Apach...
 
Curated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsCurated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center Platforms
 
Cloud Workflows What's new in serverless orchestration and automation
Cloud Workflows What's new in serverless orchestration and automationCloud Workflows What's new in serverless orchestration and automation
Cloud Workflows What's new in serverless orchestration and automation
 
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version) 給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
給 RD 的 Kubernetes 初體驗 (GDG Cloud KH 2019-08 version)
 
Google Cloud - Stand Out Features
Google Cloud - Stand Out FeaturesGoogle Cloud - Stand Out Features
Google Cloud - Stand Out Features
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Flink Jobs Deployment On Kubernetes
Flink Jobs Deployment On KubernetesFlink Jobs Deployment On Kubernetes
Flink Jobs Deployment On Kubernetes
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
You Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer NowYou Might Just be a Functional Programmer Now
You Might Just be a Functional Programmer Now
 

Similar to Yannis Zarkadas. Enterprise data science workflows on kubeflow

Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
Weaveworks
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
Weaveworks
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
nine
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
Weaveworks
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
Ryan ZhangCheng
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
Weaveworks
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
NETWAYS
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
sparkfabrik
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
Lars Rosenquist
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik
 
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker PlatformDemystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Nicola Kabar
 
Demystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in dockerDemystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in docker
Docker, Inc.
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
GetInData
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
HanLing Shen
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
Weaveworks
 

Similar to Yannis Zarkadas. Enterprise data science workflows on kubeflow (20)

Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
Demystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker PlatformDemystifying Application Connectivity with Kubernetes in the Docker Platform
Demystifying Application Connectivity with Kubernetes in the Docker Platform
 
Demystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in dockerDemystifying container connectivity with kubernetes in docker
Demystifying container connectivity with kubernetes in docker
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 

Recently uploaded

special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 

Recently uploaded (20)

special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 

Yannis Zarkadas. Enterprise data science workflows on kubeflow

  • 1. Enterprise Data Science Workflows on Kubeflow Use GitOps to deploy and manage your Kubeflow cluster. Perform an end-to-end data science workflow on Kubeflow. Stefano Fioravanzo Yannis Zarkadas Arrikto
  • 2. Simplify. Accelerate. Collaborate. arrik.to/odsc20 GitOps and Multi-Tenancy Combined for an Enterprise Data Science Experience on Kubeflow Stefano Fioravanzo Yannis Zarkadas Software Engineer Software Engineer 2
  • 3. Simplify. Accelerate. Collaborate. arrik.to/odsc20 ● How to deploy and manage Kubeflow in a GitOps manner ● How to make sure you run Kubeflow in a secure way ● How to optimize and build production-ready models faster Why is this important? ✓ Simplify deployment and management of Kubeflow ✓ Accelerate time to production ✓ Collaborate in a secure and isolated manner What You’ll Learn In This Session 3
  • 4. Simplify. Accelerate. Collaborate. arrik.to/odsc20 What is Kubeflow The Kubeflow project is dedicated to making deployments of machine learning (ML) workflows on Kubernetes: simple, portable and scalable. 4
  • 5. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Perception: ML Products are mostly about ML Credit: Hidden Technical Debt of Machine Learning Systems, D. Sculley, et al. Configuration Data Collection Data Verification Feature Extraction Process Management Tools Analysis Tools Machine Resource Management Serving Infrastructure Monitoring ML Code 5
  • 6. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Reality: ML Requires DevOps; lots of it Configuration Data Collection Data Verification Feature Extraction Process Management Tools Analysis Tools Machine Resource Management Serving Infrastructure Monitoring ML Code Credit: Hidden Technical Debt of Machine Learning Systems, D. Sculley, et al. 6
  • 7. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Kubeflow components 7 Jupyter Notebooks Workflow Building Pipelines Tools Serving Metadata Data Management Kale Fairing TFX Airflow, + KF Pipelines HP Tuning Tensorboard KFServing Seldon Core TFServing, + Training Operators Pytorch XGBoost, + Tensorflow Prometheus Versioning ReproducibilitySecure Sharing
  • 8. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Platforms / clouds GCP AWS IBM CloudAzure OpenShift Istio ML tools PyTorch scikit-learn Jupyter TensorFlow PyTorch Serving TensorFlow Serving XGBoost Kubernetes Argo Prometheus Spartakus Seldon Core Kubeflow applications and scaffolding Chainer MPI MXNet On prem Jupyter notebook web app and controller Hyperparameter tuning (Katib) Kale Pipelines Metadata Training operators: MPI, MXNet, PyTorch, TFJob, XGBoost Kubeflow UI KFServing 8
  • 9. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Platforms / clouds Kubeflow applications and scaffolding ML tools PyTorch scikit-learn Jupyter TensorFlow XGBoost Chainer MPI MXNet GCP AWS IBM CloudAzure OpenShift Istio PyTorch Serving TensorFlow Serving Kubernetes Argo Prometheus Spartakus Seldon Core On prem Jupyter notebook web app and controller Hyperparameter tuning (Katib) Kale Pipelines Metadata Kubeflow UI KFServing Training operators: MPI, MXNet, PyTorch, TFJob, XGBoost 9
  • 10. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Platforms / clouds ML tools PyTorch scikit-learn Jupyter TensorFlow XGBoost Kubeflow applications and scaffolding Chainer MPI MXNet GCP AWS IBM CloudAzure OpenShift Istio PyTorch Serving TensorFlow Serving Kubernetes Argo Prometheus Spartakus Seldon Core On prem Jupyter notebook web app and controller Hyperparameter tuning (Katib) Kale Pipelines Metadata Kubeflow UI KFServing Training operators: MPI, MXNet, PyTorch, TFJob, XGBoost 10
  • 11. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Platforms / clouds ML tools PyTorch scikit-learn Jupyter TensorFlow XGBoost Kubeflow applications and scaffolding Chainer MPI MXNet GCP AWS IBM CloudAzure OpenShift Istio PyTorch Serving TensorFlow Serving Kubernetes Argo Prometheus Spartakus Seldon Core Jupyter notebook web app and controller Hyperparameter tuning (Katib) Kale Pipelines Metadata Kubeflow UI KFServing On prem Training operators: MPI, MXNet, PyTorch, TFJob, XGBoost 11
  • 12. Simplify. Accelerate. Collaborate. arrik.to/odsc20 ML workflow Identify problem and collect and analyse data Choose an ML algorithm and code your model Experiment with data and model training Tune the model hyperparamet ers Jupyter Notebook Katib TensorFlow scikit-learn PyTorch XGBoost Jupyter Notebook Kale Pipelines KFServing PyTorch TFServing Seldon Core NVIDIA TensorRT Serve the model for online/batch prediction 12
  • 13. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Testimonials ● Dyson: “Kubeflow is to data science what a lab notebook is to biomedical scientists — a way to expedite ideas from the lab to the ‘bedside’ 3x faster, while ensuring experimental reproducibility.” ● US Bank: “The Kubeflow 1.0 release is a significant milestone as it positions Kubeflow to be a viable ML Enterprise platform. Kubeflow 1.0 delivers material productivity enhancements for ML researchers.” ● One Technologies: “With Kubeflow at the heart of our ML platform, our small company has been able to stack models in production to improve CR, find new customers, and present the right product to the right customer at the right time.” 13
  • 14. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Testimonials ● GroupBy: “Kubeflow is helping GroupBy in standardizing ML workflows and simplifying very complicated deployments!” ● Volvo Cars: “Kubeflow provides a seamless interface to a great set of tools that together manages the complexity of ML workflows and encourages best practices. The Data Science and Machine Learning teams at Volvo Cars are able to iterate and deliver reproducible, production grade services with ease.” 14
  • 15. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Kubeflow - The Infra Side ● Install ● Manage ● Secure ● Upgrade
  • 16. Simplify. Accelerate. Collaborate. arrik.to/odsc20 What is GitOps 16 All configuration state is declaratively stored in git.
  • 17. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Imperative vs Declarative Imperative 1. Create Service 2. Update LoadBalancer 3. Upgrade Deployment
  • 18. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Imperative vs Declarative Declarative Desired State (YAML) K8s kind: Pod metadata: name: mysql spec: image: mysql:7.6 apply etcd
  • 19. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Controller Spec (desired) Status (real) Kubernetes Objects Controller Pattern - The driver behind declarative APIs Used everywhere in Kubernetes Observe Calculate Reconcile Physical ResourcesPhysical ResourcesPhysical Resources write
  • 20. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Why GitOps?
  • 21. Simplify. Accelerate. Collaborate. arrik.to/odsc20 K8s etcd K8s etcd Reproducibility commit 856df4gdf56g4561d1fg564df5g61v6854df Author: yanniszark <yanniszark@arrikto.com> Date: Tuesday, Sep 8 11:24:12 2020 +0200 Upgrade MySQL to new version. K8s etcd apply ● Whole configuration state in git, versioned by commits ● Careful! Mutable state still outside of git (e.g., volumes, S3) ○ Need versioning solution for end-to-end reproducibility ○ Arrikto Rok produces data commits for your volumes (e.g., MySQL)
  • 22. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Rollbacks commit 856df4gdf56g4561d1fg564df5g61v6854df Author: yanniszark <yanniszark@arrikto.com> Date: Tuesday, Sep 8 11:24:12 2020 +0200 Upgrade MySQL to new version. commit er1f1ef8f1e1rf5641sdfs564d1fsd1f5sd61fgwd Author: yanniszark <yanniszark@arrikto.com> Date: Tuesday, Sep 4 15:24:12 2020 +0200 Increase MySQL read-replicas to 3 for higher availability. git log K8s etcd apply apply Unhealthy
  • 23. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Auditing git blame 48f078b0 (Yannis Zarkadas 2020-06-11 41) kind: Deployment 48f078b0 (Yannis Zarkadas 2020-06-11 42) metadata: 48f078b0 (Yannis Zarkadas 2020-06-11 43) name: nginx 48f078b0 (Yannis Zarkadas 2020-06-11 46) spec: 48f078b0 (Stefano Fioravanzo 2020-06-11 47) replicas: 1
  • 24. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Rich Ecosystem ● Collaboration through familiar and battle-tested tools ○ Pull Requests and Code Reviews ● Rich offerings ○ GitHub, GitLab, etc. ● Plenty of integrations ○ GitHub Actions, GitLab Pipelines, etc. Reuse whatever you already know about git!
  • 25. Simplify. Accelerate. Collaborate. arrik.to/odsc20 GitOps Workflow
  • 26. Simplify. Accelerate. Collaborate. arrik.to/odsc20 GitOps Workflow Deployer GitOps repo commit kubectl apply Desired State (YAML) kind: Pod metadata: name: mysql spec: image: mysql:7.6
  • 27. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Deployer GitOps repo (downstream) commit kubectl apply GitOps Workflow ● What about 3rd-party applications? ● Usually, infrastructure configuration is provided by the vendor ● For example, Kubeflow maintains a “manifests” monorepo with all deployment configurations manifests repo (upstream) Kubeflow Developer commit periodic rebase
  • 28. Simplify. Accelerate. Collaborate. arrik.to/odsc20 GitOps - Managing Configuration ● How do you manage configuration? ○ Use 3rd-party provided configs ○ Customer changes ○ Update periodically ● Several tools: ○ helm ○ kustomize ○ ... ● Kubeflow uses kustomize ● We (Arrikto) use kustomize for our deployments kind: Deployment metadata: name: redis namespace: deploy spec: template: spec: image: gcr.io/redis:6 replicas: 3
  • 29. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - Helm ● Helm is the most popular tool that uses templating ● Exposes knobs to consumers via values file ● Templating is hard to read values.yaml Chart Customer Repo (downstream) Vendor Repo (upstream)
  • 30. Simplify. Accelerate. Collaborate. arrik.to/odsc20 {{ if (or (not .Values.persistence.enabled) (eq .Values.persistence.type "pvc")) }} apiVersion: apps/v1 kind: Deployment metadata: name: {{ template "grafana.fullname" . }} namespace: {{ template "grafana.namespace" . }} labels: {{- include "grafana.labels" . | nindent 4 }} {{- if .Values.labels }} {{ toYaml .Values.labels | indent 4 }} {{- end }} {{- with .Values.annotations }} annotations: {{ toYaml . | indent 4 }} {{- end }} https://github.com/helm/charts/blob/99805df25da220c379ad609fcb7cf20e5e0d4fc0/stable/grafana/templates/deployment.yaml Managing Configuration - Templating
  • 31. Simplify. Accelerate. Collaborate. arrik.to/odsc20 └── redis ├── base │ ├── configmap.yaml │ ├── kustomization.yaml │ ├── service.yaml │ └── statefulset.yaml Managing Configuration - kustomize resources: - configmap.yaml - service.yaml - statefulset.yaml kustomization.yaml ● Base configuration
  • 32. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - kustomize kind: Deployment metadata: name: redis spec: template: spec: image: gcr.io/redis:6 replicas: 1 kustomize build redis/base resources: - configmap.yaml - service.yaml - statefulset.yaml kustomization.yaml
  • 33. Simplify. Accelerate. Collaborate. arrik.to/odsc20 └── redis ├── base └── overlays ├── deploy │ ├── kustomization.yaml │ └── patches │ └── replicas.yaml Managing Configuration - kustomize bases: - ../base namespace: deploy patches: - path: patches/replicas.yaml kustomization.yaml ● Create overlays (variants) to customize deployment kind: Deployment metadata: name: redis spec: template: spec: replicas: 3 patches/replicas.yaml
  • 34. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - kustomize kind: Deployment metadata: name: redis namespace: deploy spec: template: spec: image: gcr.io/redis:6 replicas: 3 kustomize build redis/overlays/deploy bases: - ../base namespace: deploy patches: - path: patches/replicas.yaml kustomization.yaml kind: Deployment metadata: name: redis spec: template: spec: replicas: 3 patches/replicas.yaml
  • 35. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - kustomize Vendor Repo (upstream) Customer Repo (downstream) v1 v2 d1 v1 v2
  • 36. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - kustomize Vendor Repo (upstream) Customer Repo (downstream) v1 v2 d1 v1 v2 v3
  • 37. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Managing Configuration - kustomize Vendor Repo (upstream) Customer Repo (downstream) d1 v1 v2 v3 v1 v2 v3 ● Update with git rebase ● Separate file == no conflicts
  • 38. Simplify. Accelerate. Collaborate. arrik.to/odsc20 └── redis ├── base └── overlays ├── deploy Managing Configuration - kustomize ● Powerful customization capabilities ● Rebase from upstream to get new updates ● Customizations in separate folders, no conflicts on rebase Consumer customizations Upstream repo GitOps repo
  • 39. Simplify. Accelerate. Collaborate. arrik.to/odsc20 ● Simplify Kubeflow stack installation, configuration, and management ○ Deploy and manage software in a declarative way ○ Complete visibility of system configuration ● Accelerate the upgrade process by continuously deploying changes to the cluster ○ Track changes and revert if something goes wrong ● Collaborate better and faster, share knowledge with the whole team ○ Keep using your favorite familiar tools and workflow Why GitOps in your Kubeflow Deployment 39
  • 40. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Demo 1. Kubernetes Cluster (EKS) on Amazon Web Services 2. Deploy Rok 3. Deploy Kubeflow 4. Update installation from upstream
  • 41. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Security in Kubeflow “We observed that this attack effected on tens of Kubernetes clusters.”
  • 42. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Multi-User Isolation Authentication? Authorization?
  • 43. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Authentication using OIDC Protocol ● Open & Standardized OAuth Flow ● Objective: Get the User’s Identity (username, groups) ● Popular and Secure
  • 44. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Identity Provider LDAP / AD Static Password File External IdP (Google, LinkedIn, …) OIDC Provider Interface
  • 45. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Authorization ● Authorization with Role Based Access Control (RBAC) ● Commit RBAC resources in git for reproducibility Endpoints RBAC Resources Verbs GET /apis/kubeflow.org/v1/notebooks/{name} Notebooks GET GET /apis/kubeflow.org/v1/notebooks Notebooks LIST POST /apis/kubeflow.org/v1/notebooks Notebooks CREATE DELETE /apis/kubeflow.org/v1/notebooks/{name} Notebooks DELETE GET /apis/kubeflow.org/v1/experiments/{name} Experiments GET Can USER do ACTION on RESOURCE in NAMESPACE?
  • 46. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Handling Credentials ● Credentials are kept in Secrets ● Injected into Pods at runtime with PodDefaults ● Applications expect to find secrets in files or environment variables
  • 47. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Auth Guidelines for Kubeflow ● Guidelines for secure applications in Kubeflow https://github.com/kubeflow/community/blob/3357efef4947297026111df17e468d9204fa2061/guidelines/auth.md
  • 48. Simplify. Accelerate. Collaborate. arrik.to/odsc20 CI/CD for ML How can data scientists continually improve and validate models? ● Develop models and pipelines in Jupyter ● Convert notebook to pipeline using Kale ● Run pipeline using Kubeflow Pipelines ● Explore and debug pipeline using Rok Develop (Jupyter) Explore Pipeline (Rok) Create Pipeline (Kale) Run Pipeline (KF Pipelines) N2P CUJ 48
  • 49. Simplify. Accelerate. Collaborate. arrik.to/odsc20 This workshop will focus on two essential aspects: • Low barrier to entry: deploy a Jupyter Notebook to Kubeflow Pipelines in the Cloud using a fully GUI-based approach • Reproducibility: automatic data versioning to enable reproducibility and better collaboration between data scientists Data Science with Kubeflow Building a Model Logging Data Ingestion Data Analysis Data Transform -ation Data Validation Data Splitting Trainer Model Validation Training At Scale Roll-out Serving Monitoring Kubeflow Pipelines exists because Data Science and ML are inherently pipeline processes 49
  • 50. Simplify. Accelerate. Collaborate. arrik.to/odsc20 This workshop will focus on two essential aspects: • Low barrier to entry: deploy a Jupyter Notebook to Kubeflow Pipelines in the Cloud using a fully GUI-based approach • Reproducibility: automatic data versioning to enable reproducibility and better collaboration between data scientists Data Science with Kubeflow Building a Model Logging Data Ingestion Data Analysis Data Transform -ation Data Validation Data Splitting Trainer Model Validation Training At Scale Roll-out Serving Monitoring Kubeflow Pipelines exists because Data Science and ML are inherently pipeline processes 50
  • 51. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Benefits of running a Notebook as a Pipeline ● The steps of the workflow are clearly defined ● Parallelization & isolation ○ Hyperparameter tuning ● Data versioning ● Different infrastructure requirements ○ Different hardware (GPU/CPU) 51
  • 52. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Before Amend your ML code? Write your ML code Create Docker images Write DSL KFP code Compile DSL KFP Upload pipeline to KFP Run the Pipeline Workflow 52
  • 53. Simplify. Accelerate. Collaborate. arrik.to/odsc20 After Amend your ML code? Write your ML code Tag your Notebook cells Run the Pipeline at the click of a button Just edit your Notebook! Before Amend your ML code? Write your ML code Create Docker images Write DSL KFP code Compile DSL KFP Upload pipeline to KFP Run the Pipeline Workflow 53
  • 54. Simplify. Accelerate. Collaborate. arrik.to/odsc20 After Amend your ML code? Write your ML code Tag your Notebook cells Run the Pipeline at the click of a button Just edit your Notebook! Before Amend your ML code? Write your ML code Create Docker images Write DSL KFP code Compile DSL KFP Upload pipeline to KFP Run the Pipeline Workflow A Data Scientist can now reduce the time taken to write ML code and run a pipeline by 70%.  That means you can now run 3x as many experiments as you did before.   What that really means is that you can deliver work faster to the business and drive more revenue 54
  • 55. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Hyperparameter optimization The two ways of life ● Change the parameters manually ● Use Katib 55
  • 56. Simplify. Accelerate. Collaborate. arrik.to/odsc20 What is Katib Katib is a Kubernetes-based system for Hyperparameter Tuning and Neural Architecture Search. It supports a number of ML frameworks, including TensorFlow, Apache MXNet, PyTorch, XGBoost, and others. 56
  • 57. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Hyperparameter optimization Combining the N2P CUJ with Katib ● Configure parameters, search algorithm, and objectives using a GUI ● Start HP tuning with the click of a button ● Reproducibility of every pipeline and every step ● Run Katib Trials as Pipelines ● Complete visibility of every different Katib Trial ● Caching for faster computation 57
  • 58. Simplify. Accelerate. Collaborate. arrik.to/odsc20 A data science journey 58
  • 59. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 Go to arrik.to/demowfhp to find the Codelab with the step-by-step instructions for this tutorial 59
  • 60. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 60
  • 61. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 Convert notebook to a Kubeflow pipeline 61
  • 62. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 62
  • 63. Simplify. Accelerate. Collaborate. arrik.to/odsc20 KALE – Kubeflow Automated Pipelines Engine ● Python package + JupyterLab extension ● Convert a Jupyter Notebook to a KFP workflow ● No need for Kubeflow SDK Annotated Jupyter Notebook Kale Conversion Engine 63
  • 64. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Kale Modules Parse Analyze Marshal Generate Derive pipeline structure Identify dependencies Inject data objects Generate & deploy pipeline 64
  • 65. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Contribute github.com/kubeflow-kale 65
  • 66. Simplify. Accelerate. Collaborate. arrik.to/odsc20 TFDV TFTransform TFDV Estimators TFΜΑ TFServing Katib Tuner Arrikto Rok 66
  • 67. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Arrikto Rok Data Versioning, Packaging, and Sharing Across teams and cloud boundaries for complete Reproducibility, Provenance, and Portability ProductionExperimentation Training Any Storage Any Storage Any Storage Data-aware PVCs Data-aware PVCs Data-aware PVCs Arrikto Arrikto Arrikto CSI CSI CSI 67
  • 68. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Data Lake Step 1 Step 2 Step 3 1. Download data from Lake 2. Store it locally 3. Do initial analysis 4. Upload data to Lake 5. Download data from Lake 6. Store it locally 7. Transform data 8. Upload to Lake 9. Download data from Lake 10. Store it locally 11. Train model 12. Upload Model Building without Data Management 71
  • 69. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Step 1 Step 2 Step 3 1. Clone disk from snapshot 2. Do initial analysis 3. Snapshot 4. Clone disk of Step 1 5. Transform data 7. Clone disk of Step 2 8. Train model Rok 6. Snapshot 9. Snapshot Object Store Model Building with Local Data Management (Rok) 72
  • 70. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Step 1 Step 2 Step 3 Arrikto Object Store Step 1 Step 2 Step 3 Arrikto Object Store Step 4 Step 5 Step 6 Arrikto Object Store Location 2 Pipeline 2: Start after Step 3 of Pipeline 1 Pipeline 3: Reproduce Pipeline 1 Location 1 Pipeline 1 Sync State & Data 73
  • 71. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Validation Preprocessing Training Data Cloned Data Evaluation DeploymentTraining Fail Validated Data Preprocessed Data Trained Model Evaluated Model Deployed Model Arrikto Rok 74
  • 72. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 75
  • 73. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 76
  • 74. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Agenda Convert notebook to a Kubeflow pipeline Explore Kubeflow components Explore the ML code of the dog breed identification example Explore the accuracy of the various models Optimize a model with hyperparameter tuning Explore the results of HP tuning 21 3 54 6 77
  • 75. Simplify. Accelerate. Collaborate. arrik.to/odsc20 What have we achieved in this tutorial? ● Streamline your ML workflows using intuitive UIs ● Exploit the caching feature to give a boost to your pipeline runs ● Run a pipeline-based hyperparameter tuning workflow starting from your Jupyter Notebook ● Use Kale as a workflow tool to orchestrate Katib and Kubeflow Pipelines experiments ● Simplify the deployment and management of Kubeflow using GitOps ● Accelerate the time to production ● Collaborate faster and more easily in a secure and isolated manner Summary 78
  • 76. Simplify. Accelerate. Collaborate. arrik.to/odsc20 79 Just a small sample of community contributions ● Jupyter manager UI ● Pipelines volume support ● MiniKF ● Auth with Istio + Dex ● On-premise installation ● Linux Kernel
  • 77. Simplify. Accelerate. Collaborate. arrik.to/odsc20 80 Community Kubeflow is open ● Open community ● Open design ● Open source ● Open to ideas Get involved ● github.com/kubeflow ● kubeflow.slack.com ● @kubeflow ● kubeflow-discuss@googlegroups.com ● Community call on Tuesdays
  • 78. Simplify. Accelerate. Collaborate. arrik.to/odsc20 Thank You! More Info arrik.to/odsc20 Email Address: stefano@arrikto.com yanniszark@arrikto.com company/arrikto Arrikto Arrikto Arrikto