SlideShare a Scribd company logo
Bodywork – GitOps for Machine Learning
Continuous deployment for data science
and machine learning teams
Alex Ioannides, March 2021
1.Continuous deployment in machine learning
2.Why machine learning projects are hard to deploy
3.What’s Bodywork and how does it help?
4.Arriving at GitOps
5.Case studies and demos
AGENDA
• Co-founder of Bodywork Machine Learning, the creators of Bodywork.
• ML engineer for Oracle AI Apps division, focusing on MLOps.
• Built the ML functions for Perfect Channel and LiveMore Capital.
• 8 years in financial services – Credit Suisse, Standard Bank, Moodys.
• PhD in computational neuroscience from UCL.
• Recovering theoretical physicist (going back a long time now…).
ABOUT ME
I am not a software engineer, and this is not going to be a lecture on
DevOps best-practices for data scientists and ML engineers.
I have, however, worked with some brilliant developers and learnt a lot
from them in the process. This talk will be centered from a ML
engineer’s frame-of-reference – i.e., what are useful best practices for
ML and why.
ABOUT ME
CI / CD
CONTINUOUS DEPLOYMENT IN ML
CONTINUOUS DEPLOYMENT IN ML
Continuous Integration
CONTINUOUS DEPLOYMENT IN ML
Aside - Writing tests for ML Systems
Example Unit Tests for ML:
• Feature transformation pipelines yield expected results.
• Training routines yield ‘valid’ models for ‘valid’ data.
• Unseen categories and/or outliers are handled gracefully.
Example Integration Tests for ML:
• You can read-from and write-to object storge or your model registry,
feature store, etc.
• Requests to scoring services with REST APIs yield expected responses.
➡️ “Effective Testing for Machine Learning Systems” by Jeremy Jordan
CONTINUOUS DEPLOYMENT IN ML
Continuous Deployment
?
CONTINUOUS DEPLOYMENT IN ML
Continuous Deployment – push models to cloud object storage
CONTINUOUS DEPLOYMENT IN ML
Continuous Deployment – push models to a registry
CONTINUOUS DEPLOYMENT IN ML
Continuous Deployment – push container images to a cloud platform
CONTINUOUS DEPLOYMENT IN ML
Continuous Deployment – push container images to a Kubernetes cluster
CONTINUOUS DEPLOYMENT IN ML
Aside – Docker and Kubernetes are ideal for building ML Systems
Docker:
• Reproducible environments.
• Compose ML pipelines using containers as building-blocks.
Kubernetes:
• Provides all the resources you could want for building a MLOps
platform – e.g., jobs, services and easy networking.
• Resilience and horizontal-scaling are built-in from the bottom-up.
➡️ “Deploying Python ML Models with Flask, Docker and Kubernetes" by Me
Example – serve a pre-trained model via a microservice with a REST API
WHY ML PROJECTS ARE HARD TO DEPLOY
WHY ML PROJECTS ARE HARD TO DEPLOY
Example – serve a pre-trained model via a microservice with a REST API
• Multiple points of failure.
• Requires a more-than-basic understanding of Docker and Linux.
• Needs experience with container orchestration (e.g., Kubernetes).
• Doesn’t scale easily.
• Maintaining Docker images is an extra responsibility for ML engineers.
• This is not Machine Learning - this is DevOps.
WHAT’S BODYWORK AND HOW DOES IT HELP?
WHAT’S BODYWORK AND HOW DOES IT HELP?
Continuous Deployment – from GitHub to Kubernetes with Bodywork
WHAT’S BODYWORK AND HOW DOES IT HELP?
Tackle deployment problems head-on and separately from project codebase:
• Create a generic Linux container with Python and Git installed.
• Use Git to pull project code into the cluster environment and then
dynamically install requirements - removes the need to build, push and
manage container images on a project-by-project basis.
• Each stage runs a Python executable defining a task – either as a
discrete batch job or the deployment of a long-running service.
• Combine multiple stages into workflows, using a workflow-controller.
Manage complex pipelines and service topologies, with high concurrency.
WHAT’S BODYWORK AND HOW DOES IT HELP?
Use existing code with Bodywork’s project format – no new APIs to learn!
WHAT’S BODYWORK AND HOW DOES IT HELP?
WHAT’S BODYWORK AND HOW DOES IT HELP?
Enables CI/CD for ML projects.
WHAT’S BODYWORK AND HOW DOES IT HELP?
ARRIVING AT GITOPS
➡️ www.gitops.tech
ARRIVING AT GITOPS
“The core idea of GitOps is having a Git repository that always contains
declarative descriptions of the infrastructure currently desired in the
production environment and an automated process to make the production
environment match the described state in the repository.
If you want to deploy a new application or update an existing one, you
only need to update the repository - the automated process handles
everything else. It’s like having cruise control for managing your
applications in production.”
(1) Serving a model via a microservice with a REST API
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
CASE STUDIES AND DEMOS
(1) Serving a model via a microservice with a REST API
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
(1) Serving a model via a microservice with a REST API
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
(2) Train-and-serve ML pipeline
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
(2) Train-and-serve ML pipeline
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
CASE STUDIES AND DEMOS
(2) Train-and-serve ML pipeline
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
(3) Jupyter pipelines
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-jupyter-pipeline-project
(4) ML Dashboards with Plotly
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-ml-dashboard-project
(4) ML Dashboards with Plotly
CASE STUDIES AND DEMOS
➡️ https://github.com/bodywork-ml/bodywork-ml-dashboard-project
GET IN TOUCH
github.com/bodywork-ml
bodywork.readthedocs.io/en/latest/
www.bodyworkml.com
@BodyworkML
Bodywork - GitOps for Machine Learning
Ad

More Related Content

What's hot (20)

“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps
Rui Quintino
 
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
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model training
MLconf
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
Jean-Francois James
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat Cosgrove
Cloud Native Day Tel Aviv
 
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
Igor Antonacci
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
bobo52310
 
Boost your APIs with GraphQL
Boost your APIs with GraphQLBoost your APIs with GraphQL
Boost your APIs with GraphQL
Jean-Francois James
 
Serverless Machine Learning Workshop
Serverless Machine Learning WorkshopServerless Machine Learning Workshop
Serverless Machine Learning Workshop
Alex Casalboni
 
Hao Wang - Resume
Hao Wang - ResumeHao Wang - Resume
Hao Wang - Resume
Hao Wang
 
Papyrus for real-time embedded
Papyrus for real-time embeddedPapyrus for real-time embedded
Papyrus for real-time embedded
Charles Rivet
 
Api360 Summit The Automated Monolith
Api360 Summit  The Automated MonolithApi360 Summit  The Automated Monolith
Api360 Summit The Automated Monolith
Haufe-Lexware GmbH & Co KG
 
Papyrus-RT - Out of its Shell
Papyrus-RT - Out of its ShellPapyrus-RT - Out of its Shell
Papyrus-RT - Out of its Shell
Charles Rivet
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
Charles Rivet
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL app
React Conf Brasil
 
Hydrosphere.io Platform for AI/ML Operations Automation
Hydrosphere.io Platform for AI/ML Operations AutomationHydrosphere.io Platform for AI/ML Operations Automation
Hydrosphere.io Platform for AI/ML Operations Automation
Rustem Zakiev
 
PapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code GenerationPapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code Generation
Ernesto Posse
 
An introduction to papyrus
An introduction to papyrusAn introduction to papyrus
An introduction to papyrus
Charles Rivet
 
AI and ML 101
AI and ML 101AI and ML 101
AI and ML 101
Rustem Zakiev
 
DevOps Fundamentals: A perspective on DevOps Culture
DevOps Fundamentals: A perspective on DevOps Culture DevOps Fundamentals: A perspective on DevOps Culture
DevOps Fundamentals: A perspective on DevOps Culture
CodeOps Technologies LLP
 
“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps“Houston, we have a model...” Introduction to MLOps
“Houston, we have a model...” Introduction to MLOps
Rui Quintino
 
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
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model training
MLconf
 
Update Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat CosgroveUpdate Strategies for the Edge, by Kat Cosgrove
Update Strategies for the Edge, by Kat Cosgrove
Cloud Native Day Tel Aviv
 
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
AI day2021 approcci DevOps per il rilascio continuo di modelli di machine lea...
Igor Antonacci
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
bobo52310
 
Serverless Machine Learning Workshop
Serverless Machine Learning WorkshopServerless Machine Learning Workshop
Serverless Machine Learning Workshop
Alex Casalboni
 
Hao Wang - Resume
Hao Wang - ResumeHao Wang - Resume
Hao Wang - Resume
Hao Wang
 
Papyrus for real-time embedded
Papyrus for real-time embeddedPapyrus for real-time embedded
Papyrus for real-time embedded
Charles Rivet
 
Papyrus-RT - Out of its Shell
Papyrus-RT - Out of its ShellPapyrus-RT - Out of its Shell
Papyrus-RT - Out of its Shell
Charles Rivet
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
Charles Rivet
 
James Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL appJames Baxley - Statically typing your GraphQL app
James Baxley - Statically typing your GraphQL app
React Conf Brasil
 
Hydrosphere.io Platform for AI/ML Operations Automation
Hydrosphere.io Platform for AI/ML Operations AutomationHydrosphere.io Platform for AI/ML Operations Automation
Hydrosphere.io Platform for AI/ML Operations Automation
Rustem Zakiev
 
PapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code GenerationPapyrusRT: Modelling and Code Generation
PapyrusRT: Modelling and Code Generation
Ernesto Posse
 
An introduction to papyrus
An introduction to papyrusAn introduction to papyrus
An introduction to papyrus
Charles Rivet
 
DevOps Fundamentals: A perspective on DevOps Culture
DevOps Fundamentals: A perspective on DevOps Culture DevOps Fundamentals: A perspective on DevOps Culture
DevOps Fundamentals: A perspective on DevOps Culture
CodeOps Technologies LLP
 

Similar to Bodywork - GitOps for Machine Learning (20)

Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Akash Tandon
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
VMware Tanzu
 
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
 
MLOps with Kubeflow
MLOps with Kubeflow MLOps with Kubeflow
MLOps with Kubeflow
Saurabh Kaushik
 
MLOps with Kubernetes - Thiago Ramos.pdf
MLOps with Kubernetes - Thiago Ramos.pdfMLOps with Kubernetes - Thiago Ramos.pdf
MLOps with Kubernetes - Thiago Ramos.pdf
ThiagoRamos343326
 
Containerized architectures for deep learning
Containerized architectures for deep learningContainerized architectures for deep learning
Containerized architectures for deep learning
Antje Barth
 
ML_OPS unit 6 all information give with pythonn
ML_OPS unit 6 all information give with pythonnML_OPS unit 6 all information give with pythonn
ML_OPS unit 6 all information give with pythonn
siddheshmhatredot
 
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
DataScienceConferenc1
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
Weaveworks
 
Deploy your machine learning models to production with Kubernetes
Deploy your machine learning models to production with KubernetesDeploy your machine learning models to production with Kubernetes
Deploy your machine learning models to production with Kubernetes
cnvrg.io AI OS - Hands-on ML Workshops
 
MLOps in action
MLOps in actionMLOps in action
MLOps in action
Pieter de Bruin
 
CNCF-Istanbul-MLOps for Devops Engineers.pptx
CNCF-Istanbul-MLOps for Devops Engineers.pptxCNCF-Istanbul-MLOps for Devops Engineers.pptx
CNCF-Istanbul-MLOps for Devops Engineers.pptx
cansukavili1
 
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Databricks
 
Infrastructure Agnostic Machine Learning Workload Deployment
Infrastructure Agnostic Machine Learning Workload DeploymentInfrastructure Agnostic Machine Learning Workload Deployment
Infrastructure Agnostic Machine Learning Workload Deployment
Databricks
 
Migrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You ThinkMigrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You Think
DevOps.com
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
Xebia IT Architects
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Luciano Resende
 
Scaling AI/ML with Containers and Kubernetes
Scaling AI/ML with Containers and Kubernetes Scaling AI/ML with Containers and Kubernetes
Scaling AI/ML with Containers and Kubernetes
Tushar Katarki
 
Vertex AI: Pipelines for your MLOps workflows
Vertex AI: Pipelines for your MLOps workflowsVertex AI: Pipelines for your MLOps workflows
Vertex AI: Pipelines for your MLOps workflows
Márton Kodok
 
Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Kubeflow: portable and scalable machine learning using Jupyterhub and Kuberne...
Akash Tandon
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
VMware Tanzu
 
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
 
MLOps with Kubernetes - Thiago Ramos.pdf
MLOps with Kubernetes - Thiago Ramos.pdfMLOps with Kubernetes - Thiago Ramos.pdf
MLOps with Kubernetes - Thiago Ramos.pdf
ThiagoRamos343326
 
Containerized architectures for deep learning
Containerized architectures for deep learningContainerized architectures for deep learning
Containerized architectures for deep learning
Antje Barth
 
ML_OPS unit 6 all information give with pythonn
ML_OPS unit 6 all information give with pythonnML_OPS unit 6 all information give with pythonn
ML_OPS unit 6 all information give with pythonn
siddheshmhatredot
 
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
DataScienceConferenc1
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
Weaveworks
 
CNCF-Istanbul-MLOps for Devops Engineers.pptx
CNCF-Istanbul-MLOps for Devops Engineers.pptxCNCF-Istanbul-MLOps for Devops Engineers.pptx
CNCF-Istanbul-MLOps for Devops Engineers.pptx
cansukavili1
 
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Building a MLOps Platform Around MLflow to Enable Model Productionalization i...
Databricks
 
Infrastructure Agnostic Machine Learning Workload Deployment
Infrastructure Agnostic Machine Learning Workload DeploymentInfrastructure Agnostic Machine Learning Workload Deployment
Infrastructure Agnostic Machine Learning Workload Deployment
Databricks
 
Migrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You ThinkMigrating to Microservices – It's Easier Than You Think
Migrating to Microservices – It's Easier Than You Think
DevOps.com
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Luciano Resende
 
Scaling AI/ML with Containers and Kubernetes
Scaling AI/ML with Containers and Kubernetes Scaling AI/ML with Containers and Kubernetes
Scaling AI/ML with Containers and Kubernetes
Tushar Katarki
 
Vertex AI: Pipelines for your MLOps workflows
Vertex AI: Pipelines for your MLOps workflowsVertex AI: Pipelines for your MLOps workflows
Vertex AI: Pipelines for your MLOps workflows
Márton Kodok
 
Ad

Recently uploaded (20)

Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Ad

Bodywork - GitOps for Machine Learning

  • 1. Bodywork – GitOps for Machine Learning Continuous deployment for data science and machine learning teams Alex Ioannides, March 2021
  • 2. 1.Continuous deployment in machine learning 2.Why machine learning projects are hard to deploy 3.What’s Bodywork and how does it help? 4.Arriving at GitOps 5.Case studies and demos AGENDA
  • 3. • Co-founder of Bodywork Machine Learning, the creators of Bodywork. • ML engineer for Oracle AI Apps division, focusing on MLOps. • Built the ML functions for Perfect Channel and LiveMore Capital. • 8 years in financial services – Credit Suisse, Standard Bank, Moodys. • PhD in computational neuroscience from UCL. • Recovering theoretical physicist (going back a long time now…). ABOUT ME
  • 4. I am not a software engineer, and this is not going to be a lecture on DevOps best-practices for data scientists and ML engineers. I have, however, worked with some brilliant developers and learnt a lot from them in the process. This talk will be centered from a ML engineer’s frame-of-reference – i.e., what are useful best practices for ML and why. ABOUT ME
  • 5. CI / CD CONTINUOUS DEPLOYMENT IN ML
  • 6. CONTINUOUS DEPLOYMENT IN ML Continuous Integration
  • 7. CONTINUOUS DEPLOYMENT IN ML Aside - Writing tests for ML Systems Example Unit Tests for ML: • Feature transformation pipelines yield expected results. • Training routines yield ‘valid’ models for ‘valid’ data. • Unseen categories and/or outliers are handled gracefully. Example Integration Tests for ML: • You can read-from and write-to object storge or your model registry, feature store, etc. • Requests to scoring services with REST APIs yield expected responses. ➡️ “Effective Testing for Machine Learning Systems” by Jeremy Jordan
  • 8. CONTINUOUS DEPLOYMENT IN ML Continuous Deployment ?
  • 9. CONTINUOUS DEPLOYMENT IN ML Continuous Deployment – push models to cloud object storage
  • 10. CONTINUOUS DEPLOYMENT IN ML Continuous Deployment – push models to a registry
  • 11. CONTINUOUS DEPLOYMENT IN ML Continuous Deployment – push container images to a cloud platform
  • 12. CONTINUOUS DEPLOYMENT IN ML Continuous Deployment – push container images to a Kubernetes cluster
  • 13. CONTINUOUS DEPLOYMENT IN ML Aside – Docker and Kubernetes are ideal for building ML Systems Docker: • Reproducible environments. • Compose ML pipelines using containers as building-blocks. Kubernetes: • Provides all the resources you could want for building a MLOps platform – e.g., jobs, services and easy networking. • Resilience and horizontal-scaling are built-in from the bottom-up. ➡️ “Deploying Python ML Models with Flask, Docker and Kubernetes" by Me
  • 14. Example – serve a pre-trained model via a microservice with a REST API WHY ML PROJECTS ARE HARD TO DEPLOY
  • 15. WHY ML PROJECTS ARE HARD TO DEPLOY Example – serve a pre-trained model via a microservice with a REST API • Multiple points of failure. • Requires a more-than-basic understanding of Docker and Linux. • Needs experience with container orchestration (e.g., Kubernetes). • Doesn’t scale easily. • Maintaining Docker images is an extra responsibility for ML engineers. • This is not Machine Learning - this is DevOps.
  • 16. WHAT’S BODYWORK AND HOW DOES IT HELP?
  • 17. WHAT’S BODYWORK AND HOW DOES IT HELP? Continuous Deployment – from GitHub to Kubernetes with Bodywork
  • 18. WHAT’S BODYWORK AND HOW DOES IT HELP? Tackle deployment problems head-on and separately from project codebase: • Create a generic Linux container with Python and Git installed. • Use Git to pull project code into the cluster environment and then dynamically install requirements - removes the need to build, push and manage container images on a project-by-project basis. • Each stage runs a Python executable defining a task – either as a discrete batch job or the deployment of a long-running service. • Combine multiple stages into workflows, using a workflow-controller.
  • 19. Manage complex pipelines and service topologies, with high concurrency. WHAT’S BODYWORK AND HOW DOES IT HELP?
  • 20. Use existing code with Bodywork’s project format – no new APIs to learn! WHAT’S BODYWORK AND HOW DOES IT HELP?
  • 21. WHAT’S BODYWORK AND HOW DOES IT HELP?
  • 22. Enables CI/CD for ML projects. WHAT’S BODYWORK AND HOW DOES IT HELP?
  • 23. ARRIVING AT GITOPS ➡️ www.gitops.tech
  • 24. ARRIVING AT GITOPS “The core idea of GitOps is having a Git repository that always contains declarative descriptions of the infrastructure currently desired in the production environment and an automated process to make the production environment match the described state in the repository. If you want to deploy a new application or update an existing one, you only need to update the repository - the automated process handles everything else. It’s like having cruise control for managing your applications in production.”
  • 25. (1) Serving a model via a microservice with a REST API CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
  • 27. (1) Serving a model via a microservice with a REST API CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
  • 28. (1) Serving a model via a microservice with a REST API CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-serve-model-project
  • 29. (2) Train-and-serve ML pipeline CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
  • 30. (2) Train-and-serve ML pipeline CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
  • 32. (2) Train-and-serve ML pipeline CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-ml-pipeline-project
  • 33. (3) Jupyter pipelines CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-jupyter-pipeline-project
  • 34. (4) ML Dashboards with Plotly CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-ml-dashboard-project
  • 35. (4) ML Dashboards with Plotly CASE STUDIES AND DEMOS ➡️ https://github.com/bodywork-ml/bodywork-ml-dashboard-project

Editor's Notes

  • #2: ”Thank you for inviting me to speak to today.”
  • #3: “I’m going to talk about deploying ML projects to ‘production environments” We’ll focus on how this process can be automated, so we can deploy continuously. We’ll look at the sorts of problems that are often encountered. Then I’ll introduce Bodywork – an open-source framework for continuously deploying ML projects to Kubernetes. I’ll cover how it works and in particular how it uses a pattern called GitOps.
  • #4: “A little bit about me before we get started” Currently trying to see how far we can take Bodywork and the ideas within it. Oracle was where I first encountered ML deployment at scale and had to confront the problems that Bodywork solves.
  • #5: “Before we get started, I was to set expectations about where we’re going to go.”
  • #6: “So, what do we mean when we talk about continuous deployment?” - Most likely to have heard about ‘CICD pipelines’, in which case Continuous Deployment is the CD in CICD. - Let’s start by looking at CICD and what it means in the context of ML projects.
  • #7: “Here is CI workflow that I’ve used many times in the past.” Describe what is happening here. Continuous integration is the ability to continuously integrate new code into a project. Closely liked to agile development practices.
  • #8: “Before we move to CD, It’s worth spending a couple of minutes talking about tests for ML systems.” - Based on my experinces.
  • #9: “We’ve now arrived at CD. We’ve integrated new code – now what?” - Lets talk about some options…
  • #10: - e.g. your team just want to publish models for down-stream users to pick-up and use as they wish.
  • #11: - e.g. same as before, but you want to work with a model registry to provide user with an interface built for ML models.
  • #12: - e.g. you want to deploy containerised ML applications, with some guarantees on reproducibility, so you also need a container orchestration platform.
  • #13: - e.g. you want to deploy containerised ML applications, with some guarantees on reproducibility, so you also need a container orchestration platform that is agnostic to cloud provider.
  • #14: “I love Kuberentes and I want to spend a minute telling you why.” - But, I do not think that DS and MLEs need to learn Kubernetes and this has been one of the driving forces behind the development of Bodywork.
  • #15: “Let’s drill-down into what a deployment pipeline for a simple ML system could look like.” - Describe the use-case and how I’d get it into production.
  • #16: “Based on my experiences…” - And this is just for a simple use-case.
  • #17: “We built Bodywork to tackle these ML deployment problems head-on.” Solves the Docker + Kubernetes knowledge-gap. Removes the brittle build-push-deploy pipeline that can be a burden on DS and MLEs. Let DS and MLEs focus on what they do best - ML!
  • #18: “Bodywork replaces the CD part of the CICD pipeline and takes full responsibility for deploying your ML system.” - Eliminates all build-and-push responsibilities.
  • #19: “Bodywork solves ML deployment problems, by using the following patterns.” - Why do we have workflows  so we can build pipelines
  • #20: “Bodywork can handle complex deployments graphs, so it can grow with your projects.” - We built a lightweight workflow-controller to avoid having to deploy Apache Airfow or Argo Workflows to manage deployment DAGs, so that we could make Bodywork as simple as possible for the vast majority of use-cases. - From batch-scoring to training models in parallel and deploying complex service topologies – e.g. A/B testing of new models (services).
  • #21: “We wanted to minimise any interference that using Bodywork, would have on users.” Wanted to make existing code re-usable. Did not want people to have to learn any new APIs and engineer their code around them. The only requirements are that your project code has to available on a remote Git repo and that each deployment stage has to be within its own directory, with some lightweight config.
  • #22: “Here’s what a train-and-serve pipeline looks like, using Bodywork.”
  • #23: “Now, let’s go back to where we started and think about what CICD looks like with Bodywork in-the-loop.” The CI part is now the last part of the pipeline and everything to do with your ML system is contained within your Git repo. Periodically re-deploys your project, using the latest state of the codebase.
  • #24: “And so we have now arrived at GitOps.” This was not intentional, but I realised it after I started reading this book. EVERYTHING you need to describe your entire ML system is contained in the Git repo. Two deployment ‘modes’ push or pull and Bodywork supports both (deployment or cronjob)
  • #25: “We took this one step further to include the ML application itself.”
  • #27: “Bodywork is distributed as a Python package that exposes a command-line interface for configuring Kubernetes to deploy your projects.”