|
Homelab Main / deploy (push) Failing after 6s
Details
|
||
|---|---|---|
| .. | ||
| app | ||
| models | ||
| training | ||
| Dockerfile | ||
| README.md | ||
| requirements.txt | ||
README.md
MLOps Platform Demo
Production-shaped inference demo for the portfolio site. The model is intentionally small: logistic regression coefficients trained with scikit-learn and exported to JSON so the runtime stays light enough for the homelab.
This directory contains the FastAPI service and model artifacts. It is not yet
registered as a Kubernetes application in bootstrap/apps; the public website
currently links to the reserved static placeholder under
apps/demos-static/public/mlops-platform/.
Endpoints
GET /healthzreports service, track, and active model metadata.POST /predictscores service health risk from latency, error rate, CPU, memory, and queue depth.GET /metricsexposes Prometheus metrics for request count, latency, errors, model version, confidence, and drift score.
Model Rollout
MODEL_VERSION=v1,MODEL_TRACK=blueis the stable route.MODEL_VERSION=v2,MODEL_TRACK=greenis the canary route.- Kubernetes service selectors choose the active track, so rollback is a service selector change instead of an image rebuild.
Local Smoke Test
docker build -t mlops-platform:local apps/mlops-platform
docker run --rm -p 8080:8080 mlops-platform:local
In another shell:
curl -fsS http://127.0.0.1:8080/healthz
curl -fsS http://127.0.0.1:8080/predict \
-H 'Content-Type: application/json' \
-d '{"latency_ms":120,"error_rate":0.01,"cpu_utilization":0.55,"memory_utilization":0.62,"queue_depth":8}'
curl -fsS http://127.0.0.1:8080/metrics
The next deployment step is to add Kubernetes manifests or a Kustomize app with blue and green Deployments, a Service selector for the active track, resource requests and limits, and Prometheus scraping.