Your Model Is Ready. Your Release Path Is Still a Ritual




The model card looks fine. Staging accuracy is up. The pilot users said the answers felt useful. Then someone asks the only question that matters: how do we put this in production without a war room every time the weights change?
That is when the room goes quiet. There is a notebook, a shared drive of evaluation spreadsheets, and a release process that lives in someone's head. You do not have a model problem. You have a release path problem.
This piece is about treating GenAI and classical ML the same way you treat any other change that can hurt customers: versioned artefacts, a promotion path, monitoring that someone actually watches, and a rollback that is boring on purpose.
Teams say a model is production ready when it clears a workshop bar. That bar is usually:
None of that answers how you ship the next version on a Tuesday afternoon when half the team is on leave. None of it says what happens when retrieval quality drifts, a prompt change lands, or a vendor model version flips underneath you.
Demo readiness is a product conversation. Release readiness is an operations conversation. Confusing the two is how you get "we will just push it and watch Slack".
If your promotion path looks like this, you are still in ritual mode:
Rituals scale with heroics. They do not scale with change volume. The more often you tune prompts, refresh corpora, or swap embedding models, the more the ritual becomes the bottleneck and the incident.
Australian enterprises feel this when AI work sits across data science, platform, and a business owner who only sees outcomes. Without a shared release contract, each group assumes the others own the hard parts. Nobody owns the rollback.
You do not need a full ML platform programme to stop shipping on hope. You need a thin path that makes promotion and rollback mechanical.
This is the same discipline as the lean architecture argument in When Your AI Architecture Becomes a Liability: only keep the components that serve a real production caller. Here the caller is "ship the next safe version without theatre".
GenAI teams often version the model and forget the rest. That is how you get silent regressions.
If you cannot say which prompt and which corpus produced yesterday's answers, you cannot investigate, and you cannot roll back cleanly.
DevSecOps for AI is mostly ordinary release security with a few sharp edges:
Shadow experiments will keep happening. Your approved lane has to be the faster way to ship a safe change, or people will bypass it. That is the same dynamic as bringing shadow AI under control: convenience beats policy when the official path is slow.
Days 1 to 14. Pick one production (or near production) model path. Write down the current ritual in one page: who touches what, where artefacts live, how you would undo a bad change today. Name an owner for the release path, not only for the model.
Days 15 to 45. Bundle artefacts under one version. Put the golden set (or a fixed eval job) on a schedule. Block promotion when it fails. Log bundle id on every production request. Draft the rollback steps and run them once on purpose in staging.
Days 46 to 90. Add the minimum live monitors with a rota. Practise a production rollback during a quiet window. Only then automate more of the promote step. Do not buy a platform until two use cases share the same painful release gap.
By day 90 you should answer four questions without archaeology: which bundle is live, who promoted it, what gate it passed, and how long rollback takes when nobody heroic is in the room.
Is this only for teams training their own models? No. Hosted model ids, prompt versions, and retrieval configs still need a release path. Vendor models change underneath you. Your bundle should record what you pinned and how you validate after a provider update.
Do we need Kubeflow or a full ML platform first? Not for the first path. Start with object storage, CI, your existing identity and logging, and a promotion checklist that is enforced. Add platform pieces when two teams share the same bottleneck.
What if evaluation is expensive? Run a small hard golden set on every change and a larger sample on a schedule. Perfect coverage is not the bar. A gate you actually run beats a perfect suite nobody triggers.
How is this different from normal DevOps? Same shape, different artefacts. Models, prompts, and corpora drift in ways static binaries do not. Your gates and monitors have to include quality and cost, not only uptime.
