<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MLOps on Volundarhus</title><link>http://www.volundarhus.com/categories/mlops/</link><description>Recent content in MLOps on Volundarhus</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jul 2026 18:46:00 -0700</lastBuildDate><atom:link href="http://www.volundarhus.com/categories/mlops/index.xml" rel="self" type="application/rss+xml"/><item><title>A Full-Loop MLOps Platform on Two Homelab Kubernetes Clusters</title><link>http://www.volundarhus.com/posts/basic_mlops_pipeline/</link><pubDate>Mon, 20 Jul 2026 18:46:00 -0700</pubDate><guid>http://www.volundarhus.com/posts/basic_mlops_pipeline/</guid><description>&lt;p&gt;&lt;a href="https://github.com/huntermills707/haterade" class="external-link" target="_blank" rel="noopener"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="why-i-built-this"&gt;
 Why I built this
 &lt;a class="heading-link" href="#why-i-built-this"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Most MLOps tutorials stop at &amp;ldquo;model in a notebook, Dockerfile around it.&amp;rdquo; The hard part is everything after: how a trained artifact moves from a training run into a production-grade serving topology, how a new model version earns its way into production, and what it costs to serve. I wanted that whole path to be concrete and reproducible on hardware I own, so I built it: a text-toxicity classifier that goes train → register → export → serve → canary → promote (or roll back), with a feedback loop that routes user corrections back into training data.&lt;/p&gt;</description></item></channel></rss>