Cloud of Disillusion: The Broken Promise of PaaS
The author critiques PaaS for failing to simplify server management, highlighting issues like vendor lock-in and costs. They advocate for VPS as a more reliable and cost-effective alternative.
Read original articleThe author expresses disillusionment with Platform as a Service (PaaS) offerings, citing a personal experience where their email newsletter tool was offline for hours due to a managed Kubernetes setup. Initially excited about cloud computing's promise of simplified server management, the author found that PaaS solutions often require users to manage their own databases and deal with complex configurations, negating the original benefits. They argue that while PaaS platforms like Heroku and Fly.io claim to reduce complexity, they often introduce new challenges, such as vendor lock-in and high costs without improved reliability. The author compares the pricing of PaaS to Virtual Private Servers (VPS), noting that VPS options are significantly cheaper and offer more control with less complexity. Ultimately, the author concludes that moving from PaaS to VPS can reduce operational friction and improve reliability, advocating for a return to self-managed solutions.
- The author criticizes PaaS for not delivering on its promise of simplicity and ease of use.
- PaaS platforms often require additional management of databases and configurations, increasing complexity.
- VPS options are more cost-effective and provide greater control compared to PaaS.
- The author emphasizes that reducing complexity can lead to improved system reliability.
- A follow-up article detailing the transition to VPS is anticipated.
Related
DevOps: The Funeral
The article explores Devops' evolution, emphasizing reproducibility in system administration. It critiques mislabeling cloud sysadmins as Devops practitioners and questions the industry's shift towards new approaches like Platform Engineering. It warns against neglecting automation and reproducibility principles.
A skeptic's first contact with Kubernetes
The author discusses their skepticism about Kubernetes, highlighting its complexity and workload management features. They acknowledge its strengths but express concerns about operational stability and configuration challenges.
A skeptic's first contact with Kubernetes
The author shares their journey from skepticism to understanding Kubernetes, highlighting its workload management, key components, and challenges like complexity, scaling, and configuration, while recognizing its architectural value.
Software Possession for Personal Use
Users are frustrated with the shift from desktop to cloud software, sacrificing privacy and control. Alternatives like local-first and personal software are advocated for tailored, user-centric solutions.
Software possession for personal use
The article highlights user frustrations with cloud software, advocating for local-first and personal software to regain privacy and control. It emphasizes simplicity and accessibility in user-centric software development.
While I am far from a microservice evangelist, when you adopt a framework you have to adjust your architecture to that platform to be as successful as possible.
Microservices are intended to be _bounded contexts_ and if you violate that concept you retain the complexity and lose the benefits of the tradeoff analysis that should have been done to decide on your chosen framework.
Adding crosscutting concerns like a NFS server violates the context boundary and leads you down the path of building a brittle distributed monolith.
The concept of independent deployability in microservices is a guide to help avoid architectural erosion.
The real answer to this problem is to quit making random golf course architecture decisions and make pragmatic choices.
Architecture is about finding the least worst option and is context specific with lots of nuance.
If you simply quit focusing on silver bullet myths and focus on what you needs are and adapt how you build your systems to work with the frameworks you have chosen things will work better.
Good Architecture is hard, but not nearly as hard as repeatedly building balls of mud and blaming the tools that you have chosen due to hype, habits, resume building and/or complacency.
This isn't really correct.
So first, if you have a block-based volume (for which the host machine is doing block dev → filesystem), it should make some inherent sense that it can only be mounted by a single pod: it can only be attached to a single VM at a time, as otherwise the two FS drivers would corrupt the volume.
Outside of that, there are volume types you can mount multiple times in multiple pods. E.g., Azure Files. These are essentially NFS volumes, but since they're "aaS" you don't need to "deploy an NFS service", you just ask for the volume in k8s and it'll provision it.
Agree that Fly.io is pretty terrible experience as it markets an edge case that I don't believe the vast majority of systems need. The base PaaS case is pretty magical though and abstracts away a lot of the things I honestly don't care about for the first N thousand users.
If you're running your software on multiple VPS's you still need an NFS.
The only moment you don't need an NFS is when you have 2 processes running on the same machine touching the same folder.
There's been so many apps on Heroku that I can deploy with just `git push heroku master`, and I've worked on team where we've scaled on heroku on the db and app side with very little devops work, if any.
What the author is completely right on, however, is Fly.io -- it's unfortunately a platform that has _just enough PaaS_ to seem easy, but ends up being frustratingly difficult and comes with a lot of hard edges, even for simple apps.
Provisioning a postgres db on Fly.io is a great example - just use `fly postgres create` and go through the steps! Uh oh, the provisioned db template is defaulting to `SQL_ASCII`, I need `UTF8` encoding, what's the best way to do that? Good luck -- the Fly.io docs don't talk about that at all, and if you aren't a high enough "tier" of plan you get 0 customer support, just a community forum, with people asking questions and many times getting no responses.
Related
DevOps: The Funeral
The article explores Devops' evolution, emphasizing reproducibility in system administration. It critiques mislabeling cloud sysadmins as Devops practitioners and questions the industry's shift towards new approaches like Platform Engineering. It warns against neglecting automation and reproducibility principles.
A skeptic's first contact with Kubernetes
The author discusses their skepticism about Kubernetes, highlighting its complexity and workload management features. They acknowledge its strengths but express concerns about operational stability and configuration challenges.
A skeptic's first contact with Kubernetes
The author shares their journey from skepticism to understanding Kubernetes, highlighting its workload management, key components, and challenges like complexity, scaling, and configuration, while recognizing its architectural value.
Software Possession for Personal Use
Users are frustrated with the shift from desktop to cloud software, sacrificing privacy and control. Alternatives like local-first and personal software are advocated for tailored, user-centric solutions.
Software possession for personal use
The article highlights user frustrations with cloud software, advocating for local-first and personal software to regain privacy and control. It emphasizes simplicity and accessibility in user-centric software development.