Open source is free like a puppy is free. The software licence costs nothing. What follows — the feeding, the vet bills, the chewed furniture — is a different story.
I have sat in enough board rooms watching finance directors recoil when the actual 12-month cost of an "open-source" infrastructure decision lands on their desk. Not because open source is wrong. I use it extensively and recommend it constantly. But the decision has to be made with eyes open. The budget line that says €0 for licences is not the total cost of ownership. It is not even close.
Here is what a 12-month TCO actually looks like — drawn from real engagements across energy, insurance, and SaaS.
The Five Cost Buckets Nobody Budgets
1. Engineering Time — The Big One
The most expensive line in any open-source TCO is the engineering hours you do not count because they feel like "just part of the job."
Running Kubernetes, Kafka, Elasticsearch, or a self-hosted data warehouse is not a once-and-done deployment. It is an ongoing operational commitment. Someone has to:
- Maintain the cluster, manage upgrades, and handle breaking changes between versions
- Debug production incidents that your cloud provider would handle on a managed service
- Write and maintain Helm charts, Terraform modules, and custom operators
- Monitor for CVEs and apply security patches — often on a 72-hour window for critical vulnerabilities
In a team of ten engineers, I routinely see 1.5 to 2 FTEs implicitly allocated to open-source infrastructure operations — with zero budget line for it. At Berlin senior engineer rates of €100–130k fully loaded, that is €150–260k per year in hidden cost.
2. Incident Response and On-Call
Self-hosted open-source infrastructure pages people. Managed services page the vendor's SRE team.
The cost of on-call is not just the engineer's time — it is the cognitive load, the 2am wake-ups, the Monday morning postmortems, and the senior attrition that comes when people realise they are running infrastructure as a third job. I have seen strong engineers leave specifically because of on-call burden from open-source infrastructure they did not choose and were not adequately resourced to run.
Budget €15–25k per on-call engineer per year in time cost for a typical open-source stack with meaningful production load. More for regulated environments where an incident triggers a mandatory reporting obligation.
3. Upgrade Tax
Open-source projects evolve. Major versions break APIs. Kubernetes 1.x to 1.y+3 is rarely seamless. Elasticsearch 7 to 8 was a significant migration for anyone running it in anger. Kafka clients, Confluent Schema Registry compatibility matrices, Istio service mesh upgrades — each of these is an unplanned project that shows up mid-quarter.
I budget a 10–15% annual "upgrade tax" on the initial integration cost. If standing up your Kafka cluster took 3 engineering weeks, budget 3–5 additional engineering days per year for upgrade cycles. At scale, this compounds.
4. Security and Compliance Overhead
Managed cloud services (Azure Database for PostgreSQL, Amazon RDS, Confluent Cloud, Elastic Cloud) inherit large portions of their provider's compliance posture. You get SOC 2 Type II, ISO 27001, and GDPR DPA documentation essentially for free.
Self-hosted open source means you inherit that compliance work. For a SOC 2 audit, your self-hosted Kafka cluster, Redis instance, and Elasticsearch deployment each become in-scope systems requiring:
- Documented change management procedures
- Access control reviews and audit logs
- Vulnerability management evidence
- Backup and recovery testing documentation
My estimate: 4–8 weeks of engineering-plus-compliance time per year for a mid-size open-source stack in a SOC 2 or ISO 27001 scope. At senior rates, that is €30–60k that does not appear in the "open source is free" pitch.
5. Compute Inefficiency
Open-source software configured and operated by generalist engineers frequently runs at 40–60% resource efficiency. Managed services right-size automatically or with guardrails. Self-hosted PostgreSQL clusters, Elasticsearch indices, or Kafka brokers configured by someone who read the docs once will often be over-provisioned "just to be safe."
I see this most acutely with Kubernetes: teams that could run workloads on 8 nodes run them on 14 because they do not trust their own capacity planning. The 6-node gap at €0.50/hour per node over 12 months is €26k — invisible, never attributed to the "open source" choice.
The 12-Month TCO: A Worked Example
This is a representative mid-size stack: self-hosted Kubernetes (AKS with self-managed add-ons), Kafka, Elasticsearch, and a self-hosted PostgreSQL cluster. Team of 12 engineers, Berlin-based, Series B SaaS product. Compared against the managed equivalents (Confluent Cloud, Elastic Cloud, Azure Database for PostgreSQL, AKS with managed add-ons).
| Cost Category | Self-Hosted OSS (Year 1) | Managed Equivalent | Delta |
|---|---|---|---|
| Software licences | €0 | €80–120k | -€80–120k |
| Engineering ops time (1.5 FTE) | €180–195k | €30k (integration/config) | +€150–165k |
| Cloud compute (over-provisioned) | €95k | €75k (right-sized) | +€20k |
| Incident response / on-call | €30k | €5k (alert-only) | +€25k |
| Upgrade cycles | €20k | €0 (vendor-managed) | +€20k |
| Compliance overhead (SOC 2 scope) | €40k | €10k (docs only) | +€30k |
| Total Year 1 | €365–380k | €200–240k | +€145–175k |
The open-source stack costs €145–175k more in Year 1 despite €0 in licences. Year 2 improves as the team gets more efficient, but the operational cost does not go away.
The compounding problem
Year 1 is painful but manageable. The real damage happens in Years 2–3, when the original engineers who built the stack leave and institutional knowledge walks out the door with them. Re-onboarding new engineers to a bespoke open-source infrastructure takes 3–6 months. During that window, the operation runs fragile and the upgrade backlog grows. I have inherited stacks running Kafka 2.8 in 2025 because nobody was confident enough to upgrade it.
When Open Source Is Absolutely the Right Call
This is not an argument against open source. It is an argument against naive open source — choosing it because "free" feels financially responsible without doing the actual TCO math.
Open source wins clearly in these scenarios:
You have genuine platform engineering capacity. A team with 2–3 dedicated SREs or platform engineers who actively want to run infrastructure can extract real value from open-source tooling. The operational cost is real but it is absorbed by people whose job it is.
You need customisation that managed services do not provide. If you need specific Kafka configurations, custom Elasticsearch plugins, or PostgreSQL extensions that cloud-managed versions do not support — and these are material to your product — self-hosting is justified.
Your scale makes managed service pricing uneconomic. At very high scale, Confluent Cloud pricing becomes genuinely painful. At tens of terabytes of data throughput per day, the per-unit pricing of managed services can exceed the full loaded cost of running your own. But this threshold is higher than most teams think — usually above 5TB/day for Kafka, above 1PB for data warehousing.
You are in a regulated environment that requires specific data residency or air-gapped deployment. Some regulated financial services and energy environments cannot use managed cloud services at all. In those cases, you self-host by necessity — and the TCO is a known, budgeted cost of compliance.
The Decision Framework I Actually Use
Before recommending open source, I run three tests:
List every operational task the open-source component requires: initial deployment, upgrades, monitoring, patching, backup, recovery testing, on-call response. Assign estimated hours per year. Multiply by fully-loaded engineer cost. This is your true licence fee.
Get actual quotes from managed service providers including data transfer, storage, and support tiers. Include the integration and configuration engineering cost (usually 2–4 weeks). Compare against Year 1 OSS TCO.
If the person who builds the self-hosted stack leaves, who runs it? If the answer is "we will figure it out," the hidden cost just got larger. Bus factor is a TCO input.
The Repatriation Question
The reverse also happens: teams running expensive managed services that have grown to a scale where self-hosting is genuinely cheaper. I have run repatriations from Elastic Cloud to self-hosted Elasticsearch for clients at 50TB+ index sizes where the managed cost exceeded €250k/year and the self-hosting cost with a dedicated SRE was €120k. That is a real win.
The key is doing the math at the right scale, with the right team capacity, and acknowledging that repatriation itself has a one-time migration cost of €30–80k depending on complexity.
Open source is a powerful tool. It is also a financial commitment that most organisations underprice by a factor of two to four in Year 1. Make the decision deliberately, with the full cost visible — then it is a good one.
If you are evaluating an open-source stack or considering a migration to or from managed cloud services, let's talk — a 30-minute discovery call is enough to frame the TCO properly and point you in the right direction.