Operators have become a hot new pattern in use among cloud native organizations. There are libraries, frameworks, talks at conferences, and so much more talking about them.
There is good reason for this. Operators can be incredibly useful. Operators enable the codification of operations business logic into an application that can oversee an application. What is often in a Runbook for an operations person to perform when an incident or event occurs can now happen automatically.
Then there are tools like Crossplane that make it possible to use services, like MySQL, in a cross cloud compatible manner as a SaaS. In fact, operators have made it much easier to run a SaaS within a Kubernetes cluster in general.
There are some who tell me that everything needs an operator. That it’s a requirement for every application running in a cluster, a panacea, or a silver bullet. This isn’t the case either. I’ve seen cases where focus and work on an operator has lead to an application and overall experiences that failed to meet any form of user needs.
If operators are useful but should not be applied to every situation it’s worth asking, when should we use operators?