Cloud Native Development - Group home

Kubernetes-Native IDE for IBM Z with Wazi Workspaces

  

by Prasang A. Prajapati





Have you ever experienced problems in setting up a development environment? Also, have you ever heard this excuse when reporting a bug to a colleague? "It works on my machine!"

You are joining a new development team or project and you have spent the first couple of days or longer just with installing the right tools, getting access to the right system and configuring your development profiles. Similarly, when starting a new project, a large portion of time and energy is spent on setting up the development environment. Think about how inefficient it could be if this type of setup routine is repeated for every new team member or new project every time.

To address this problem, there is an amazing tool called IBM® Wazi for Red Hat® CodeReady Workspaces. A key feature of this tool is to provide modern experience for mainframe software developers working with z/OS® applications in the cloud using IBM Wazi Development Client. Currently IBM Wazi Development Client is a technology preview (For all the content under technology preview, IBM provides the information without obligation of support and "as is" without warranty of any kind). IBM Wazi Development Client is built on the Red Hat CodeReady Workspaces project. IBM Wazi Development Client uses Kubernetes and containers to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment for the IBM Z® Platform. The user experience is as fast and familiar as an integrated development environment (IDE) on their laptop.

IBM Wazi Development Client provides a modern experience for mainframe software developers working with z/OS® applications in the cloud by leveraging the available Visual Studio Code (VS Code) extensions IBM Z Open Editor, IBM User Build and Zowe™ Explorer, as well as the command-line tools Zowe CLI and IBM RSE API Plug-in for Zowe CLI. Developers can use these Visual Studio Code extensions and command line tools on their local machine with the Visual Studio Code desktop IDE. Now, IBM Wazi Development Client makes this experience also available in the cloud. Powered by the open-source projects Zowe and Red Hat CodeReady Workspaces, IBM Wazi Development Client offers an easy, streamlined on-boarding process to get new mainframe developers using the tools they need. Using container technology and stacks, IBM Wazi Development Client brings the necessary technology to the task at hand.

Mainframe developers can now have rich language support for COBOL, PL/I, Assembler and JCL using IBM Z Open Editor as well as connectivity to Z host using Zowe Explorer, run user builds using IBM User Build, and interact with the IBM Remote System Explorer API, all in one Mainframe Development package using the IBM Wazi Development Client stack with custom plugin and devfile registry support.


Fig 1: IBM Wazi Development Client controller architecture

The above figure explains workspaces controller architecture for the IBM Wazi Development Client. OpenShift® leverages the Kubernetes concept of a pod, which is one or more containers deployed together on one host, and the smallest compute unit that can be defined, deployed, and managed. In the IBM Wazi Development Client, when the user creates a workspace using Wazi Development Client Stack, it creates a workspace with deployed user runtime as well as a plugin sidecar container.

IBM Wazi Development Client Dashboard


IBM Z Open Editor banner
Fig 2: Screen capture of IBM Wazi Development Client Dashboard

Features



Here are the main features that IBM Wazi Development Client offers.

1. IBM Z Open Editor



IBM Z Open Editor is a free Visual Studio Code extension that provides a modern editing experience for IBM Z Enterprise languages. IBM Z Open Editor gives developers the freedom to code in COBOL, PL/I and Assembler using the same editor they use for other languages such as Java™ and JavaScript. Learn more


Fig 3: Editing experience of COBOL files using IBM Z Open Editor in IBM Wazi Development Client


Fig 4: Editing experience of PL/I files using IBM Z Open Editor in IBM Wazi Development Client


Fig 5: Editing experience of Assembler files using IBM Z Open Editor in IBM Wazi Development Client

2. IBM User Build



The IBM User Build VS Code extension helps COBOL developers leverage the IBM Dependency Based Build (DBB) toolkit right from their local VS Code or IBM Wazi Development Client environment. Learn more


Fig 6: User Build using IBM User Build in IBM Wazi Development Client

3. Zowe Explorer



Zowe Explorer is a free Visual Studio Code extension that lets you interact with data sets, USS files and jobs that are stored on IBM z/OS mainframes. You can explore data sets, USS files and jobs to view their contents, make changes, and upload the changes to the mainframe. Interacting with data sets, USS files and jobs from VS Code can be more convenient than using command-line interfaces or 3270 emulators. Learn more


Fig 7: Interacting with data sets, USS files and jobs that are stored on IBM z/OS mainframes using Zowe Explorer in IBM Wazi Development Client

4. Zowe CLI



Zowe CLI is a command-line interface that lets you interact with the mainframe in a familiar, off-platform format. Zowe CLI helps to increase overall productivity, reduce the learning curve for developing mainframe applications, and exploit the ease-of-use of off-platform tools. Zowe CLI lets you use common tools such as Integrated Development Environments (IDEs), shell commands, bash scripts, and build tools for mainframe development. Through its ecosystem of plug-ins, you can automate actions on systems such as IBM Db2®, IBM CICS®, and more. It provides a set of utilities and services for users who want to become efficient in supporting and building z/OS applications quickly. Learn more


Fig 8: Running Zowe commands to create, delete, or update profiles using Zowe CLI in IBM Wazi Development Client

5. IBM RSE API Plug-in for Zowe CLI



IBM RSE API Plug-in for Zowe CLI (RSE CLI plug-in) extends Zowe CLI to let you interact with z/OS resources. The RSE CLI plug-in interacts with z/OS by using IBM Remote System Explorer API (RSE API) instead of using z/OSMF. The RSE API is a collection of REST APIs that allow a client to work with various components on the z/OS host system, including MVS™ data sets, z/OS UNIX files and commands, JES jobs, and more. The overall solution results in a complete set of operations that allows you to do everything with RSE API that you could do with z/OSMF. It is therefore a great alternative if you have already used the Remote System Explorer with other IBM offerings such as IBM Developer for z/OS or IBM Explorer for z/OS. Learn more


Fig 9: Create, delete or update RSE profiles using the RSE CLI plug-in in IBM Wazi Development Client


Installation


IBM Wazi Development Client is installed into the OperatorHub of an OpenShift® cluster via a CASE bundle. The CASE installer will create a Custom Resource Definition (CRD) instance called wazi-codeready-operator-catalog of type CatalogSource inside your OpenShift cluster. After the resource is successfully installed, you will be able to see Wazi Development Client Operator inside OperatorHub. Follow these steps to install IBM Wazi Development Client into the OperatorHub of OpenShift® Cluster via a CASE Bundle and its prerequisites.

If you are an IBM Developer for z/OS customer, IBM Wazi Development Client is also available in IBM Developer for z/OS Enterprise Edition.


Documentation



For more information or to learn more about IBM Wazi Development Client, see IBM Wazi Development Client Documentation.

Note: IBM Wazi Development Client is built on top of Red Hat CodeReady Workspaces. For more information on what else can be done with workspaces, see the End-User Guide.

Further Resources


In addition to trying our IBM Wazi Development Client, we invite you to read further resources related to IBM® Wazi for Red Hat® CodeReady Workspaces:














Questions or feedback



We would love to hear what you think of this solution. For any questions, issues, or enhancement ideas, you can open an issue in the Wazi Codeready WorkSpaces Github repository.

We are always looking for ways to improve.