Kubernetes-Native Integrated Z Developer Environment with IBM Wazi for Red Hat CodeReady Workspaces Development Client
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 set up 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 Development Client (IBM Wazi Development Client). 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 for Red Hat CodeReady Workspaces 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
Fig 2: Screen capture of IBM Wazi Development Client Dashboard
Features
Here are the main features that IBM Wazi Development Client offers.
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
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 enviroment. Learn more
Fig 6: User Build using IBM User Build in IBM Wazi Development Client
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
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
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
Documentation
For more information or to learn more about IBM Wazi for Red Hat CodeReady Workspaces Development Client, see IBM Wazi for Red Hat CodeReady Workspaces 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.
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.