Tag Archives: DevOps

Kubernetes: Why I won’t use StatefulSets

StatefulSet is the workload API object used to manage stateful applications.

Manages the deployment and scaling of a set of Podsand provides guarantees about the ordering and uniqueness of these Pods.

A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet object, and the StatefulSet controller makes any necessary updates to get there from the current state.

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

Sounds perfect, right? Well, I’ve found that the limitations and behaviours of StatefulSets are so far away from what I want that I’ll steer clear of them completely. And in any case, they aren’t necessary.

Continue reading

Indispensable Linux sysadmin tools for the developer (in a DevOps world)

For many, development and system administration are alien worlds. Developers understand Java, .Net, Python, Ruby, Elixir, Go, Rust and many more, but ask them about IPv4, ARP, DHCP, systemd, /etc, swap, awk or sed they go blank. These are not things discussed for many developers, especially those used to Windows or Mac development where much of this is hidden or little used.

Enter DevOps. With DevOps, developers can no longer say that how the system operates is not their concern. As a team, they need to build each other to have at least passing understanding of the vagaries of system administration.

But not only is it about sharing knowledge and ownership, it’s also about being competent, indeed useful, in another context. Seeing opportunities where system administration skills can enhance the quality of the product now that there is no longer an artificial divide between these two worlds.

The following is a short list of extremely useful tools to have available in your tool belt for system administration. I strongly recommend that you develop a passable understanding of these. You’ll be glad you did.

Continue reading