# Operator Hello All I am Abhishek and I am going to brief you about Opertaors. We all know Openshift is growing day by day. Openshift is cloud native platform which allow you to build, ship, deploy and mange container workloads. With growing openshift world world we need focus on reducing error and coplexity in manging and deploying kubernetes native application on top of Openshift platform. ## what is Operator ? Assume an Operators as a runtime that manages a specific type of application on Kubernetes. Operators automate actions which we usually performed manually, reducing the chances for errors and simplifying complexity. A simple operator could be one that defines how to deploy an application, and an advanced one, will also provide day2 ops automation like backup, recovery, upgrades, etc. ## why we need an operator Kubernetes can manage and scale stateless applications, such as web apps, mobile backends, and API services, without requiring any additional knowledge about how these applications operate. The built-in features of Kubernetes are designed to easily handle these tasks. However, stateful applications, like databases and monitoring systems, require additional domain-specific knowledge that Kubernetes doesn’t have. It needs this knowledge in order to scale, upgrade, and reconfigure these applications. Kubernetes operators encode this specific domain knowledge into Kubernetes extensions so that it can manage and automate an application’s life cycle. When i say kubernetes extension it is achieved by creating CRD (Custom resource definition). Operators are purposely built to run a Kubernetes application, with operational knowledge baked in so they will be smarter and more enhanced than generic tools. # lets deploy an operator We can see Red Hat OpenShift console Browsing operator under operatorhub tab Red Hat OpenShift has the Embedded OperatorHub. This registry of certified Operators from software vendors and open source projects. Within the Embedded OperatorHub you can browse and install a library of Operators that have been verified to work with Red Hat OpenShift ## What about Controllers ? How it's different from operator Controllers take care of routine tasks to ensure the observed state matches the desired state of the cluster. Each controller is responsible for a particular resource in the Kubernetes world. Operators use the controller pattern, but not all controllers are Operators. It’s only an Operator if it: * follows Controller Pattern * uses API Extension * and focus on Single-Application ## Who builds an Operator? Operators are best built by those that are experts in the “business logic” of installing, running and upgrading an application. Experience has shown that the creation of an Operator typically starts by automating an application’s installation and self-service provisioning capabilities, and then evolves to take on more complex automation. ## How to Building an OPERATORS * Kubebuilder * OperatorSDK * Scratch * Others: Kudo, Metacontroller, etc. The Operator software development kit (SDK) provides the tools to build, test and package Operators. The SDK strips away a lot of the boilerplate code that is normally required to integrate with the Kubernetes API. It also provides a useable platform so developers can focus on adding business logic (for example, how to scale, upgrade, or backup the application it manages). ## How openshift platform leverage operators OpenShift version 4 uses the power of Operators to run the entire platform in an autonomous fashion while exposing configuration natively through Kubernetes objects, allowing for quick installation and frequent, robust updates. In addition to the automation advantages of Operators for managing the platform, Red Hat OpenShift makes it easier to find, install, and manage Operators running on your clusters. *** Operatorhub.io is a home for the Kubernetes community to share Operators **THE INDUSTRY IS ALIGNING BEHIND THE KUBERNETES OPERATOR**