5 ms·
> That's the easy part! The hard part is managing databases. Ding ding ding ding ding. "But what about disk?" (so, relatedly, databases) is the hard part. Bal
by brimble 5y ago
> That's the easy part! The hard part is managing databases.
Ding ding ding ding ding.
"But what about disk?" (so, relatedly, databases) is the hard part. Balancing performance (network disks suuuuuck) and flexibility ("just copy the disk image to another machine" is fine when it's a few GB—less useful when it's lots of GB and you might need to migrate it to another city and also you'd rather not have much downtime) is what's tricky. Spinning up new workers, reliable- and repeatable-enough deployment with rollbacks and such, that's easy, until it touches the disk (or the DB schema, that's its own whole messy dance to get right)
- fer 5y agoSometimes I think K8s is largely pushed for Amazon/Google/Microsoft to sell the disk that goes along with it.
- zomglings 5y agoDon't forget network costs (especially for "high availability" clusters spanning multiple regions).
- swiftcoder 5y agoAdmittedly it's 5 years since I worked at AWS, but at the time there was basically no internal usage of containers. ECS was pushing customers towards containers, but the the feeling towards containers at the time inside the company could be summed up as "we have a decade worth of operational tooling, why would we throw that all away?"
- zthrowaway 5y agoPeople still think stateful things are impossible on k8s but Stateful sets and persistent volumes solves a lot of this. You should be relying on out of the box DB replication to make sure data is available in multiple areas. This is no different on other platforms.
- mountainriver 5y agoYes you can run DBs on kube now, much of people thinking this isn’t good comes from years back when it wasn’t
- JeremyNT 5y agoDoes it buy you much though? The big issue with databases is storage, and you need local storage for optimal performance. You can ask k8s for a persistent volume on local storage, but at this point you have to treat that pod exactly the same way you'd treat a snowflake database server, because the local storage is what ultimately matters. You can replicate to other pods with their own persistent volumes, but the replication overhead adds up too both in terms of performance and complexity. I know there's stuff like vitess and crunchy data, which try to abstract this away, but the amount of layers buried here is very high for benefits that seem kind of nebulous compared to "big ol server" mode.
- mountainriver 5y agopods can share a persistent volume in ReadWriteMany mode
- hawk_ 5y agoCan you elaborate on "multiple areas"? Do you mean each node inside a db "cluster" should run in a different area? And how does one achieve that?
- senorsmile 5y agoKelsey Hightower just had a good interview where he disagrees with you: https://changelog.com/shipit/44 https://changelog.com/shipit/44 Edit: somewhat* disagrees with you. It's a good listen.
- gabrielgrant 5y agotl;dr?