Decide between managed services and self-hosting with honest TCO, lock-in assessment, and exit paths. Use when choosing infrastructure components or revisiting a costly managed dependency.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add Amey-Thakur/AI-SKILLS --skill managed-vs-selfhosted --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Managed Vs Selfhosted?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/amey-thakur-managed-vs-selfhosted)More formats (shields.io, HTML) on the badges page.
---
name: managed-vs-selfhosted
description: Decide between managed services and self-hosting with honest TCO, lock-in assessment, and exit paths. Use when choosing infrastructure components or revisiting a costly managed dependency.
---
# Managed vs self-hosted
The sticker price comparison is always wrong in both directions:
self-hosting hides engineer-hours, managed hides egress, per-request
fees, and the price of leaving. Compare total costs including the exit.
## Method
1. **Default managed for anything stateful and boring.** Databases,
queues, object storage, Kubernetes control planes: the undifferentiated
heavy lifting where your custom requirements are near zero and the
failure cost is high. Reserve self-hosting appetite for components
where you have real differentiating requirements or crushing scale
economics.
2. **Compute TCO with engineer-hours priced in.** Self-hosted =
instances + storage + the fraction of engineers who patch, upgrade,
back up, tune, and get paged for it (0.25-1.0 FTE per serious
stateful system is realistic) + the incident cost of doing it worse
than a provider's dedicated team. Managed = service fees + the
traffic-shaped charges (egress, per-request, per-connection) modeled
at 10x your current volume, because that is when renegotiating is
hardest.
3. **Grade the lock-in by interface, not vendor.** Open-protocol
managed services (Postgres-compatible, S3-API, Kafka-compatible,
OpenTelemetry) are rentals you can walk from; proprietary APIs with
gravity (bespoke query languages, integrated event buses,
ML platforms) are marriages. Prefer the open-interface managed
option even at a modest premium; it converts exit from a rewrite to
a data move.
4. **Write the exit path before signing.** For each critical managed
dependency: how does the data leave (export tooling, egress cost,
downtime), what replaces it, and roughly how many engineer-weeks?
If the answer is "we could not, realistically", that is a strategic
dependency: fine, but priced and acknowledged in the decision
record (see architecture-decision-records).
5. **Re-decide at the trigger points.** Crossovers happen: the managed
bill passing the loaded cost of the FTEs it saves, a compliance need
the provider cannot meet, scale where per-request pricing dwarfs
hardware. Put the decision on a yearly review with current numbers
(see vendor-evaluation for the assessment frame); grandfathered
defaults are how six-figure line items hide.
6. **If self-hosting, budget the whole job.** HA topology, backups
with tested restores (see backup-restore), upgrade cadence,
security patching SLA, monitoring and runbooks, and a named owning
team. Self-hosted without that budget is not cheaper; it is
deferred-incident financing.
## Boundaries
- Control-plane outages of a provider are correlated risk you cannot
engineer away from inside; if that is unacceptable, the answer is
multi-provider architecture, which costs more than either option
alone.
- Compliance sometimes decides unilaterally (data residency, audit
requirements, air-gapped environments); check before running the
economics.
- This is a per-component decision, not a philosophy; healthy stacks
mix both and re-evaluate component by component.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!