This is a guest post by Jon Skog, Senior Product Marketer at Instana
Red Hat OpenShift introduced Kubernetes (K8s) Operator support with version 3.11. Since that time, the number of Operators created by the OpenShift community has been steadily growing. Instana introduced our Red Hat OpenShift Kubernetes Operator at Red Hat Summit 2019, and will be demonstrating our K8s capabilities at KubeCon Barcelona this week.
What is an Operator?
An Operator extends the K8s API enabling the creation, configuration and management of Kubernetes-native applications. Operators are designed to automate the complex tasks that are required to successfully run K8s based applications. These tasks include, but are not limited to, scaling, updates, backups and reconciliation of desired state versus actual state. According to Red Hat, Operators follow a maturity model as depicted in the image below.
Early stage Operators handle basic functionality like automated application provisioning and configuration management, while fully mature Operators will be able to react to failures automatically based on abnormalities.
What is Instana?
Instana is a fully automatic Application Performance Monitoring (APM) solution that makes it easy to visualize and manage the performance of your business applications and services. The only APM solution built specifically for cloud-native microservice architectures, Instana has developed the type of automatic monitoring and AI-based analysis DevOps practitioners need to manage the performance of modern applications. For developers, Instana’s AutoTrace™ technology automatically traces requests and captures context, mapping your applications and microservices without additional engineering.
Instana has been a longtime partner, and user, of Red Hat technologies including Red Hat OpenShift. As such, Instana is excited to be deepening this partnership with the use of the Operator Framework.
*Above is a screenshot of the overview of an OpenShift cluster within Instana’s K8s monitoring.
Overview of the Instana Operator
Instana offers monitoring for application performance of containerized microservice applications. Instana’s K8s Agent has historically been installed using a YAML file or Helm Chart which packages and pre-configures the needed K8s resources.
Instana is now making iteasier to install and manage the Agent with the first version of the K8s Operator, designed to better enable the use of the Instana Agent in K8s-native applications. With the Operator, the Instana Agent is more reliable using only one agent per cluster. With the Helm deployment, Instana users are able to deploy the Agent and have it run, but if you need to update the Agent or make any changes you must restart or reinstall it. This is no longer the case with the Operator. Users of the Instana Operator no longer need to manually make changes when updating the Agent, this is handled by the Operator itself. Additionally, Operator leader election happens automatically in cases when more than one operator instance is deployed. The leading operator deploys the Instana agent daemon set and ‘nominates’ one Instana agent as leader. If, for any reason, the leader dies another instance will automatically take over as leader keeping the environment running smoothly.
The Instana Operator is unique in that it was created with the QuarkusIO Framework (which is also a Red Hat sponsored project). Quarkus is a K8s-native Java stack crafted from best of breed Java libraries. Nearly all Operators are written in Go, Quarkus makes it easier to write K8s applications in Java. This project goes a long way toward making Java a first class citizen in K8s.
The future of the Instana Operator
While this is still early days, there is plenty to be excited about within the Instana Operator. With easier installation, no more reinstalls for changes, and better stability, the Operator is already off to a great start. But the future of the Instana Operator is even brighter.
In the coming months, Instana will be heavily investing in the Operator, moving it further down the maturity map from installation, updates, and upgrades to full lifecycle and auto-pilot. The Instana Operator will fully automate the reconciliation loop that checks and updates based on desired and actual states. Users will be able to decide what should be monitored and the Operator will automatically act on this configuration while still allowing users to change it on the fly, as the Operator dynamically adapts to changes within the cluster.
Getting started with the Instana Operator
To get started with the Instana Operator head over to Instana’s operatorhub.io page and follow the quick installation steps. Additionally, you can manually install the Instana Agent Operator following the steps provided in Instana’s GitHub repository or, if you run the Operator Lifecycle Manager (OLM), you can install the Instana Operator Agent by creating a subscription. For more detail on Installing with OLM, please reference the instana-agent-operator GitHub page.