We now have a web application that requires a database for data consistency. Database applications always have a certain state that we need to monitor throughout their life cycle. This application is known as a status application. There are some companies like Kubevious.io that provide the best Kubernetes storage services.
Image Source: Google
Therefore, it is a challenge for Kubernetes to take care of everything because all lines communicate with each other and must be synchronized. Also, different databases have different solutions so we couldn't find a general solution for this.
If so, we always had to step in manually. It doesn't matter if they're running on K8 or traditional servers. Therefore, we need employees who "operate" this application.
But manual K8 intervention invalidates the Kubernetes idea! Automation concepts, load balancing, self-healing skills, etc. Don't jump too fast. The next part is the reason to come here!
It's finally time to see the operators in action.
We will see how operators improve the same web application. The use of application-specific operators makes post-implementation work easier and easier. We don't need manual intervention unless the entire system changes significantly. Operators are reusable and have automated processes for all available Kubernetes clusters.
Kubernetes does not require any business logic for stateless applications. Therefore, no operator is required. However, the K8 was initially unable to automate processes for advanced applications and therefore required an operator.
This operator always monitors the current status and pushes the application to the desired state. So you can think of this as a custom control loop because it's application-specific.