Back to DigitalOcean App Platform from Kubernetes
After running Uplift’s applications on Kubernetes for a while, we’ve decided to migrate back to DigitalOcean App Platform. Here’s why we made the switch, what changed, and what we learned along the way.
Why We Left App Platform in the First Place
When we originally moved away from DigitalOcean App Platform to Kubernetes, it wasn’t because we wanted to manage our own infrastructure. We had two specific technical blockers that forced our hand.
Managed Databases with Trusted Sources
The first issue was that App Platform didn’t support Managed Databases when Trusted Sources were enabled. For security, we needed to restrict database access to specific IP addresses/apps, but App Platform’s dynamic IP allocation made this impossible.
Connection Pool Issues
The second problem was that Connection Pools didn’t work when Trusted Sources were enabled (at least in App Platform). This was a dealbreaker for us since connection pooling is critical for application performance and resource management with PostgreSQL.
We used the built-in connection pooling of our applications for a while, but it was hard to keep track of the total number of connections across all instances. So we made the switch to Kubernetes, where we had full control and could configure everything exactly how we needed it.
What Changed
DigitalOcean has since resolved both of the technical issues that drove us away. Managed Databases now work seamlessly with Trusted Sources enabled in App Platfrom, and Connection Pools work correctly in this configuration too. The blockers that pushed us to Kubernetes no longer exist.
We’re Always Busy with Client Work
We’re a consultancy, and our primary focus is delivering value to our clients. Most of our time is spent on client projects. Building features, solving problems, shipping products, and making our clients successful. That’s where we provide the most value, and it’s what keeps the business running.
Infrastructure maintenance competes directly with that focus. Every hour spent debugging cluster issues or reading which helm chart to issue (is it nginx-ingress or ingress-nginx?) is an hour not spent on other projects.
Kubernetes Demands More Than We Can Give
Kubernetes isn’t a “set it and forget it” platform. It requires ongoing attention and more manual setup. While we would have greater control, App Platform gives us a lot out of the box for very little work.
For bigger teams that can dedicate the resources to it, Kubernetes can be a great choice. However we don’t have a dedicated DevOps resource so we need everyone on our team to be able to chip in, and App Platform is simple enough that anyone can contribute.
Why We’re Moving Back
Simplicity Matches Our Needs
DigitalOcean App Platform abstracts away all the operational complexity we were struggling with. Deployments are simple, scaling is straightforward, and the platform handles security patches and infrastructure updates automatically.
Focus on What We Do Best
Moving back to App Platform means we can focus our limited bandwidth on what we actually do well: building software.
The Right Tool for Our Reality
Kubernetes is still great. But it’s great for teams that have the bandwidth to use it properly. We don’t need the flexibility Kubernetes offers. We need to deploy applications, connect to databases securely, and get back to work. App Platform does exactly that, without requiring infrastructure expertise.
The Migration
Moving back to App Platform has been surprisingly smooth. The deployment process is simpler, our infrastructure-as-code is less complex, and we’ve eliminated entire categories of maintenance tasks from our plate.
We still have all the features we need: secure database connectivity, connection pooling for performance, and the ability to scale our applications when needed. The difference is that we’re no longer responsible for the underlying infrastructure.
The One Thing Still Missing
The one thing we feel App Platform needs to add is support for persistent volumes. While we don’t need it right now, there are certain workloads that require it and we would love to see App Platform support this.
Lessons Learned
Match Technology to Bandwidth
Choose technology that matches your team’s actual bandwidth, not your aspirational capacity. It’s better to use a simpler tool effectively than a powerful tool poorly.
Platform Evolution Matters
The issues that pushed us to Kubernetes were real, and at the time, we made the right decision. But platforms evolve. What didn’t work two years ago might work perfectly today. It’s worth periodically re-evaluating your infrastructure choices as the ecosystem changes.
Simplicity Has Real Value
There’s a certain appeal to running your own Kubernetes cluster and having complete control. But simplicity has real value, especially for small teams. Less infrastructure means fewer things to break, less cognitive overhead, and more time to focus on what actually matters.
Final Thoughts
We don’t regret our time with Kubernetes. It taught us a lot, and it was the right choice given the constraints we faced. But we also learned that aspirational choices need to align with real-world capacity.
For Uplift, the best infrastructure is the one we don’t have to think about. App Platform lets us deploy applications, connect to databases securely, and get back to doing what we do best: building great software for our clients.
If you’re running Kubernetes for your applications and finding the maintenance burden difficult to justify, take an honest look at whether it’s matching your team’s bandwidth. Sometimes the best technical decision is choosing the simpler path that lets you focus on what actually matters.