ZOWE Chat

Since the publication of Zowe gets Chatty a few months ago, the Zowe open community has made great progress. Watch for a technical preview of the new capabilities in 4Q 2022. Key to any software’s success is listening to our consumers and unlocking the imagination of the developers. Let me provide an update:

First a roadmap for the new component has been defined, the development team (we call a squad) has been established and they are working hard toward a first deliverable. In this blog I will go through the initial use cases that the Zowe Chat squad has identified. Also, I will share some insights from customers that attended my session at the last SHARE conference in Columbus (August 2022).

The development team started with an initial “user experience option in Zowe”:

  • A developer to check the status of an output job — maybe with a chatbot that already scans the output for an error code. Or a developer using Zowe Explorer needs to chat with a peer on a coding question.
  • A customer support rep that chats to ask “Zowebot is the system running ok” and the chatbot correlates a set of predefined metrics from monitoring tools to give a thumbs up
  • A subject matter expert is notified by a z/OS product of an error or job completion and then launches from chat to a diagnostic tool quickly and easily.

The squad has established a first “minimal viable product” (MVP is the Agile development jargon) deliverable currently planned for the end of October. Zowe Chat V1 that will be ready for production use is currently envisioned to be available in March 2023. Let’s see in detail what are the capabilities planned for this first deliverable and how these can help in the daily duties and enable collaboration across different people and the machines, to implement a ChatOps collaboration model.

Indeed, some clarity about the terms can be useful, there are many chat tools (e.g., Microsoft® Teams™, Slack®, Mattermost®, …) that enable collaboration between people and provide features like team rooms, message persistence, sharing, and searching. A ChatBot integrates the tools into your conversations and enable the team to access key information and tasks from within the chat tool. Finally, ChatOps is a collaboration model that connects people, tools, process, and automation into a transparent workflow.

Zowe Chat is a chatbot that aims to enable a ChatOps collaboration model including z/OS resources and tools. Maybe Zowe Chat becomes yet another valuable integration technology for z/OS in the enterprise and hybrid cloud environments for breaking down the silos across IT staff, lines of business, customer support, etc.

Zowe Chat main features

Zowe Chat is focused on making you more productive by eliminating (or minimizing) the context switching between different tools and user interfaces. It is also intended to allow you easier ways to collaborate with others. Keep in mind, the capabilities described will be for Slack, Mattermost and Microsoft Teams. Zowe Chat will be extensible and other chat tools can be adapted to also have the capabilities described below.

z/OS resource management

The Zowe Chat squad team will have initial support for z/OS resource management such as z/OS job, dataset and USS files. Also, with proper security in place, the ability to issue Zowe CLI commands including console commands directly from the chat tool. An important new capability since the squad’s formation is the possibility to send an alert to channels in the chat (either you individually for a chat channel of a team of people)

In the picture that follows is shown a flow that will be possible with Zowe Chat for z/OS job management. Imagine being able to ask the Zowe chatbot for a list of jobs, specifying filters like the owner and the prefix and get the list of z/OS jobs matching the criteria in the chat itself as it is showed in the picture below:

Visualization of z/OS jobs in Zowe Chat

In the list of jobs returned, some information about the job is visualized in the chat, with the possibility to drill-down on a specific job through the drop-down menu available at the end of the list. It will give the possibility to get more details about a specific job. It will enable this even for an inexperienced user to have details on a specific job.

Another feature, that won praise in my session at the SHARE conference was the possibility to drill down on the error codes related to a job that abended, and to launch in-context to the documentation for the specific error code. So, every user with access to a chat tool can check the status and the details of a z/OS job … and understand what the error encountered just by “chatting” with the Zowe Chatbot…

launch in-context to the documentation for the specific error code.

Moreover, it will be possible to access to information about a dataset and dataset members in the chat tool in use. As shown in the following picture, the chat user will be able to get from Zowe Chat the list of datasets that match the criteria defined in the filters applied. Drill-down is possible to see the details of a specific dataset, the members of a specific dataset and the details about a specific dataset member, getting the information in the chat.

Dataset visualzionation in the chat tool

Similarly, it will be possible to get the list of Unix System Services (USS) files matching the criteria specified and detailed information about a specific file in the chat.

Security is paramount

If you are wondering how the authentication and the authorization is managed … usually at this point of the any presentation on Zowe, the question is raised … well it is managed on the z/OS side. What I mean is that the access to the data as well as the authority to submit a command will be checked against the mainframe credentials. Zowe makes use of z/OS SAF calls and supports the three main security management offerings on z/OS. Zowe Chat will be no different.

The Zowe Chat user logs into the chat client via enterprise standards, including two factor authentication if required. The first time the user issues a command to the Zowe Chat installed in the chat workspace, it will challenge the user to log in with the Mainframe ID using a one-time URL. Once authenticated against the mainframe security, Zowe Chat will securely cache in memory the relationship between your Chat tool ID and the Mainframe ID. Zowe Chat’s Security Facility will generate credentials for downstream API requests.

Zowe Chat will have the ability to display alerts

One more feature that resonated very well in the recent customer interactions is the ability to send alert/event to a channel in the chat tool in use. It will be possible through Zowe Chat.

An example of how it will appear is in the picture below, where the name of the product sending the alert will appear at the beginning, with information about the event like a description, the severity, the category and so on … The point is not to replace an enterprise event console but rather provide you the option to get notifications either personally or as a team using whatever device you have for chat — a laptop, mobile device, or desktop.

Example of an alert in Zowe Chat

An event data model will be made available to enable Zowe Chat extenders to easily send alerts to a channel in the chat through Zowe Chat, a preview of the data model is in the following pictures, where the items in bold will be mandatory. This event architecture is intended to be extensible and will be an important area of future enhancement based upon the feedback the Zowe community receives from early adopters.

Data model for alerts in Zowe Chat

The channel recipient of the event is defined by the extender as well, as per the following part of the data model.

Receiver of alerts in Zowe Chat

Finally, every extender will be enabled to add URL links at the end of the event and additional custom fields defined as follow. The purpose of these links is to allow launch in context from chat to other monitoring or automation tools. Assuming these other tools participate in Zowe Single Sign On capabilities the launch can be seamless for the chat user.

Link and Custom fields in data model

Zowe Chat users envisioned use cases

The number of possible use cases that can be enabled through a powerful chatbot like Zowe Chat is unlimited. An example I provided in my session at the last SHARE conference is described in the following picture.

Zowe Chat possible scenario

It shows the ability for an Z IT Operator, Annette, to start the investigation about a high CPU usage event got in the chat … raised by the monitoring tool in use in the enterprise. Through Zowe Chat, Annette can go down to the job causing the problem, check the details of the job and look at the job log (planned for in the Zowe Chat roadmap). Then, Annette can engage the proper System Programmer, Zach, for further analysis and actions. Annette can easily share her findings in the chat, reducing the time for the problem determination and investigation. Zach can leverage the Zowe Chat features as well, possibly in a channel shared with Annett, to investigate further the problem and fix it. Zowe Chat really enables a ChatOps collaboration model between Annette, Zach and the tools needed for the detailed analysis and remediation of the problem.

An insight I received during my last session was that the ability to send alerts to a channel is the major use case envisioned by the audience. One attendee described a problem they are facing today. They have a job that every hour check for long running SQL. If a long running SQL is found, the job sends an email to the IT administrator highlighting the potential problem. It means that at least every hour, the IT administrator must look at the email to check if there is a problem. A valuable use case (adding important productivity savings), the customer envisioned a way to have the job sending an alert in the chat instead, possibly to the IT Administrator and the user who submitted the SQL highlighting the potential problem and offering the option to either keep or cancel the SQL. Thanks to Zowe Chat data model for alert/event, this scenario can be implemented and put in action!!

Wrap-up

Hopefully you have enjoyed reading this blog and it has triggered your curiosity about the new Zowe Chat component intended capabilities. I have described one possible scenario the Zowe squad has identified, in addition, a possible user scenario identified by the attendee of my SHARE session. The number of scenarios that you can implement with Zowe Chat is only limited by your imagination. A few days ago I was researching “ChatOps” and I found an interesting article: “27 ChatOps resources to inspire tech team building” … what I found especially true is the sentence “It’s up to you to figure out which of these benefits might make ChatOps a worthwhile project for your team.”.

It is worth noting Zowe Chat is not intended to be limited to Operations — can Chat be used more effectively in development, customer support, line of business use, maybe even customers of an enterprise. So many processes today use mobile device texting — this is both good and bad. What if open-source chat (with security and two way conversations) could overtake texting use cases in the future? Zowe Chat plans to be on the forefront of those use cases that involve z/OS access.

Do you want to learn more about Zowe Chat, you can join the public slack channel #zowe-chat part of the Open Mainframe Project workspace (openmainframeproject.slack.com), you can see the progresses of the squad team in GitHub: zowe-chat.

There is nothing more important that the Zowe Chat squad getting feedback on what you like and don’t like about the development plans.

The user experience design of Zowe Chat is ongoing!!! The design team, on behalf of the Open-Source community, is conducting early-stage feedback sessions for it. A usability test is a 1-hour online meeting where you will see latest design mockup and You will be able to provide your feedback, influencing current implementation and future directions of Zowe Chat.

If you are willing to contribute, feel free to contact us

“Zowe™ is a trademark of the Linux Foundation.”

Originally published on Medium.

Domenico is a Senior Offering Manager in IBM Systems, currently managing the strategy of IBM Z Automation offerings. Since 1999, he has worked in multiple areas of System Management spanning over mainframe and distributed platforms in IBM. In the last few years, he defined the strategy of operational analytics and automation products on Z platform.