Renato Cordeiro Ferreira
Scientific Programmer @ JADS | PhD Candidate @ USP | Co-founder & Coordinator @CodeLab
MLOps
https://renatocf.xyz/cain-2025-slides
2025
Renato Cordeiro Ferreira
Institute of Mathematics and Statistics (IME)
University of São Paulo (USP) – Brazil
Jheronimus Academy of Data Science (JADS)
Technical University of Eindhoven (TUe) / Tilburg University (TiU) – The Netherlands
From Data Science to
ML-Enabled Systems
Former Principal ML Engineer at Elo7 (BR)
4 years of industry experience designing, building, and operating ML products with multidisciplinary teams
B.Sc. and M.Sc. at University of São Paulo (BR)
Theoretical and practical experience with Machine Learning and Software Engineering
Scientific Programmer at JADS (NL)
Currently participating of the MARIT-D European project, using ML techniques for more secure seas
Ph.D. candidate at USP + JADS
Research about SE4AI, in particular about MLOps and software architecture of ML-Enabled Systems
Renato Cordeiro Ferreira
https://renatocf.xyz/contacts
My goal is to
explain the fundamentals of
Continuous Delivery for Machine Learning
the key idea behind putting
models into production
Continuous Delivery
Machine Learning
Data
Model
Code
Schema
Sampling
Volume
Algorithms
More Training
Experiments
Business Needs
Bug Fixes
Configuration
Axis of Change for ML
Based on "Continuous Delivery for Machine Learning", by Danilo Sato, Arif Wider, and Christoph Windheuser -- https://martinfowler.com/articles/cd4ml.html
"Continuous Delivery is the ability to get changes of all types -- including new features, configuration changes, bug fixes, and experiments -- into production, or in the hands of uses, safely and quickly in a sustainable way."
-- Jez Humble and David Farley
Continuous Delivery
"Continuous Delivery for Machine Learning is a software engineering approach in which a cross-functional team produces machine learning applications based on code, data and models in small and safe increments that can be reproduced and reliably released at any time, in short adaptation cycles."
-- Danilo Sato, Arif Wider, Christoph Windheuser
"Continuous Delivery for Machine Learning is a software engineering approach in which a cross-functional team produces machine learning applications based on code, data and models in small and safe increments that can be reproduced and reliably released at any time, in short adaptation cycles."
-- Danilo Sato, Arif Wider, Christoph Windheuser
Continuous Delivery for Machine Learning
Software engineering approach
It enables teams to efficiently produce high quality software
Cross-functional team
Experts with different skill sets and workflows across data engineering, data science, machine learning engineering, development, operations, and other knowledge areas are working together in a collaborative way emphasising the skills and strengths of each team member
Continuous Delivery for Machine Learning
Producing software based on code, data and models
All artifacts of the ML software production process require different tools and workflows that must be versioned and managed accordingly
Small and safe increments
The release of the software artifacts is divided into small increments, which allows visibility and control around the levels of variance of its outcomes, adding safety into the process
Continuous Delivery for Machine Learning
Reproducible and reliable software release
While the model ouputs can be non-deterministic and hard to reproduce, the process of releasing ML software into production is reliable and reproducible, leveraging automation as much as possible
Software release at any time
It is important that the ML software could be delivered into production at any time. Even if organizations do not want to deliver software all the time, it should always be in a releasable state. This makes the decision about when to release it a business decision rather than a technical one
Continuous Delivery for Machine Learning
Short adaptation cycles
Short cycles means development cycles are in the order of days or even hours, not weeks, months or even years. Automation of the process with quality built in is key to achieve this. This creates a feedback loop that allows you to adapt your models by learning from its behavior in production
Continuous Delivery for Machine Learning
"Continuous Delivery for Machine Learning is a software engineering approach in which a cross-functional team produces machine learning applications based on code, data and models in small and safe increments that can be reproduced and reliably released at any time, in short adaptation cycles."
-- Danilo Sato, Arif Wider, Christoph Windheuser
Continuous Delivery for Machine Learning
Reference Architecture
for ML-Enabled Systems
Doctoral Symposium - CAIN 2025
A Metrics-Oriented Architectural Model
to Characterize Complexity on
Machine Learning-Enabled Systems
Case Studies
Doctoral Symposium - ECSA 2025
A Tale of Two Systems:
Characterizing Architectural Complexity on
Machine Learning-Enabled Systems
Data Collection App
Scientific Initiation 2021
Francisco Wernke
Streaming
Prediction Server
+ Client API / App
Capstone Project 2022
Vitor Tamae
Highly Availability
with Kubernetes
Capstone Project 2023
Vitor Guidi
Redesign Continuous Training Subsystem
Capstone Project 2023
Daniel Lawand
CI/CD/CD4ML on
Training Pipeline
Capstone Project 2024
Lucas Quaresma
+ Roberto Bolgheroni
Research Team
MSc Students
Innovation Team
PDEng Trainees
Ui Dev Team
Hired Developers
Core Dev Team
Scientific Programmers
MLOps
https://renatocf.xyz/cain-2025-slides
2025
Renato Cordeiro Ferreira
Institute of Mathematics and Statistics (IME)
University of São Paulo (USP) – Brazil
Jheronimus Academy of Data Science (JADS)
Technical University of Eindhoven (TUe) / Tilburg University (TiU) – The Netherlands
From Data Science to
ML-Enabled Systems
By Renato Cordeiro Ferreira
Scientific Programmer @ JADS | PhD Candidate @ USP | Co-founder & Coordinator @CodeLab