With release of Manage 8.0 in Maximo Application Suite, Maximo EAM is now officially on OpenShift. The first thing we will notice, besides that Maximo now can run on any cloud or hybrid cloud, is the brand-new deployment experience it offers. We can install, configure, customize, modify and upgrade much more easily and seamlessly. This improvement is brought on by a few “operators” that come with Manage and Maximo Application Suite, made possible by the OpenShift platform and the Operator Framework.
The Operator Pattern
With the adoption of OpenShift and Kubernetes, Manage (Maximo EAM) now comes with a set of software extensions called “operators” that manages the application itself. Not only for installation and upgrade, but also for modifications to the system, such as adding a secondary language, a new industry solution, or increasing the deployment size, Manage operators handles them all.
These extensions work on top of the OpenShift platform, creates and manipulates the OpenShift artifacts and other resources to instantiate and run the containerized Manage servers and admin console.
The installation of Manage is simply laying down these operators. Then all we need to do is to “hand them a spec” of what we want the Manage system to look like. The operators understand the specification and will set off to do their job. If the spec changes or the state of the deployment changes, the operator will notice and alter the system according to the spec.
In the Kubernetes world, these specs are called Customer Resources (CRs). Which are Kubernetes API extensions so that they can be handled by the Kubernetes as its own native artifacts. The CRs describe the desired state of an object, in our case, the Manage system. The operators “watch” the system and the changes to the CRs, and make sure the system that they manage match those CRs.
Manage Operators and Manage CRs
Manage has 2 major operators.
- Manage application operator, responsible for deployment and running the necessary components include the sub-operators to ensure Manage can be activated within The Maximo Application Suite
- Manage workspace operator, responsible for instantiating and running a complete Maximo EAM system
The Manage workspace operator watches the Manage system to make sure it is running according to the spec ManageWorkspace custom resource. It makes sure the Manage container images are build according to the spec, the database is updated to the right level, and the servers are deployed and running correctly.
It delegates some of its work to the second level operators. For example, there is a sub-operator that understands how to create container images out of the ManageBuild customer resource. The top-level operator just need to make sure it creates the build spec - ManageBuild customer resource according to the main spec – ManageWorkspace CR. The building of the image is left to the build operator to handle. It builds the image with the language pack, the industry solution add-ons, and the customization as specified on the CR. These secondary CRs are internal and you we not directly work with them.
We can use the Maximo Application Suite’s UI to configure the Manage installation. But the underlining mechanism is the creation of the Manage related customer resources. We can directly create those CRs without using the UI, and the system will be laid down and managed the same way.
An example of the ManagedWorkspace CR is shown below:
The Declarative automation achieved by Manage operators built on top the Kubernetes operator framework offers a few immediate benefits to our customers beyond the automation itself.
- With the same set of CRs and configurations, such as secrets and config map, the outcome from the same operator is expected to be the same. This allows backup and restore the system, move the system to a different place, and development and test processes consistent and easy to do.
- The operator pattern is a loosely coupled level event triggering system. It offers more tolerance to the system through self-recovery. An operator may fail at the first try when a subsystem is not ready but will continue and succeed when it is available.
- The deployment architecture of complex system now is defined clearly by a set of hierarchical objects representing the subsystems. It enables flexibility in enhancing and extending the system and the automation.
The operator pattern allows Manage to increase its automation capability overtime. The customer’s experience is further assisted with the OpenShift’s Operator Life Cycle Manager. Our operators will evolve together with our product but also independently so that our customers can get the automation benefit sooner.
The operator maturity model is the guidance of how we will improve our operators overtime. Right now, they are at phase II and getting into Phase III. Auto pilot phase is what Manage team is working towards.
In the past, the only deployment automation comes with product is the installer. But as its name implied, installer often is viewed as a onetime thing and after the software is installed it is not that important anymore. This view is completely changed by the containerization technology, and the advanced orchestration platform. Empowered by these technologies, automation is possible and necessary, beyond the installation, to run and manage the whole life cycle of the software. After all, the value of the containerization and cloud is to abstract and drastically simplify what the end user needs to do to run the software, so that the return of investment can be realized sooner with much lowered operation cost to provide business agility and speed. Manage 8.0 and Maximo application suite has taken the first step in this direction.