Linux and Kubernetes expert, member of OSS community, Go developer, food lover, finds bugs, yak shaver, TDD advocate, Senior Software Engineer at @microsoft
I think to summarize, good abstraction should effectively reduce complexity. Bad abstraction with large interfaces not only not reduce complexity, but likely spreads your code into multiple places making it harder to follow and understand.
I feel like word "abstraction" is often misunderstood and misused when talking about software development. I often hear it being used to describe "a more generic/generalized, higher order form", which gets detached from reality of actual code you work on.
This way, abstraction, or actually extraction allows you to express that given piece of code should be divided and meaningful of it's own, which actually reduces complexity from the perspective of code you work on, as now you only need to understand interface, not implementation.
@damdo Hetzer VMs managed with Terraform, k8s deployed with @flexkube also via Terraform. Velero for backups (which I ranted on in the past, but it works), backups to minio via resting running on separate box, though I consider moving it to Hetzner storage box, as it should be cheaper.
Well, annual check-in:
- โ New cluster provisioning works
- โ Backups and restoration works
- โ Updated to latest K8s 1.28
- โ Updated all components to latest versions
And of course I spent plenty of time debugging some minor issues, like last year!
Well, annual check-in:
- โ New cluster provisioning works
- โ Backups and restoration works
- โ Updated to latest K8s 1.25
And of course I spent plenty of time debugging some minor issues.