Skill 24 · Architect For Startups
Subchapter 24.23
references/mlops.mdMarkdown7 KBView on GitHub
Most startups don’t need MLOps platforms until they have a model in production serving real users. The sequence matters:
WRONG: Build SageMaker Pipeline → Train model → Find product-market fit
RIGHT: Notebook experiment → Prove value to users → Productionize with minimal infra → Add MLOps as scale demands| Stage | Monthly ML spend | Recommendation | What you’re skipping (intentionally) |
|---|---|---|---|
| Pre-seed | $0-200 | SageMaker notebooks + training jobs. No pipelines, no registry, no monitoring. | Everything except train → deploy |
| Seed | $200-2K | Add Model Registry + basic monitoring. Still no pipelines. | Automated retraining, CI/CD for models |
| Series A | $2K-20K | SageMaker Pipelines + MLflow tracking. Automate retraining. | Multi-environment promotion, shadow testing |
| Series B+ | $20K+ | Full MLOps: pipelines, registry, monitoring, shadow testing, multi-account | Nothing — you need it all now |
A single ml.m5.large real-time endpoint costs ~$100/month running 24/7, even with zero traffic.
| Daily inference requests | Best deployment option | Monthly cost |
|---|---|---|
| < 100 | Lambda with model loaded from S3 | $1-5 |
| 100-10,000 | SageMaker Serverless Inference | $5-50 |
| 10K-100K | Real-time endpoint with aggressive auto-scaling (scale to 1) | $100-500 |
| 100K+ | Real-time endpoint, right-sized with Inference Recommender | $500+ |
When to graduate from Serverless to Real-time:
60-90% savings with one flag. Set use_spot_instances=True on every training job. SageMaker handles interruptions automatically with checkpointing. The only exception is a truly time-critical training run (which you almost certainly don’t have at seed stage).
If your model is PyTorch or TensorFlow (vast majority of startups): check Neuron compatibility first. ml.trn1 for training and ml.inf2 for inference deliver 50%+ savings. Most startups default to GPU instances without checking because the docs seem complex — but the actual code change is minimal (Neuron SDK compiler handles it).
If you retrain quarterly or less, a manual notebook-driven workflow with Model Registry is fine. Pipelines add:
Trigger to add pipelines: You’re retraining more than once per month AND manual retraining takes > 2 hours of engineer time.
Model Monitor requires a baseline created from training data. If you don’t have 2+ weeks of production inference data to compare against, monitoring will generate noise (false positives) and waste your time.
Trigger to add monitoring: Model has been in production for 30+ days AND you have a hypothesis about what drift looks like for your data.
Startups that use both create confusion about “which is the source of truth.” Decision:
| Scenario | Better alternative | Why |
|---|---|---|
| Only using pre-trained models (no custom training) | Bedrock for LLMs, Rekognition/Comprehend for vision/NLP | Fully managed, no infrastructure, pay-per-request |
| < 50 inferences/day, model < 500MB | Lambda + S3 model loading | Truly scales to zero, simplest possible deployment |
| Team is Kubernetes-native, already running EKS | KServe on EKS | Leverage existing expertise, avoid two orchestration systems |
| Simple tabular ML (classification, regression) | SageMaker Autopilot / Canvas | No-code/low-code, handles the entire ML lifecycle |