One of the most exciting open source projects for IBM Z is Zowe, which is part of the Linux Foundation’s Open Mainframe Project. Zowe has a unique characteristic that makes it a very important project: It opens up IBM Z and the z/OS operating system to practically any application or tool.
In this blog post, I want to bring your attention to how open source is built based on another open source, how open source works as building blocks, and how Zowe is a great example of how you can innovate and solve problems with open source software.
If you are not familiar with IBM Z, it is a high-performance platform for building and operating mission-critical applications. This advanced and battle-tested platform is used by the largest global enterprises for everything from financial transactions to government programs to insurance, with its exceptional performance, security features, and resiliency. If you want to learn more about the rich history of IBM Z, there are some great resources for those of you who are fans of computing history.
There is a clear strategy for IBM Z to continue to embrace open source software, open platforms, and open standards. There is also a growing ecosystem of open source software for IBM Z, and Zowe is one of the key open source projects in this space. Like many successful open source projects, Zowe has the backing of important organizations — sponsored by companies like IBM, Broadcom, and Rocket Software — and continues to gain traction, growing and winning more contributors.
Zowe is a highly extensible open source framework for integrating software into the IBM Z platform. It comes with a set of APIs and interfaces to interact with applications on z/OS, and its functionality is split into these four major components:
- Zowe Application Framework (also called Zowe Desktop or Web User Interface)
- Zowe API Mediation Layer (API ML)
- Zowe CLI
- Zowe Explorer (an extension of VS Code)
There is also a growing number of incubator projects such as Zowe Client SDKs, Zowe Mobile, and Zowe Embedded Browser for RMF/SMF and APIs (ZEBRA).
The Zowe project is a perfect example of how to grow an open source project by doing all the right things, including working (code changes, code reviews, integrations, and discussions) in the open using distributed governance and community participation. The community includes contributors, maintainers, and users.
It’s important to bear in mind that today all software leverages open source — all software, even for those companies that as a policy do not use open source software. The reality is that if they have software developers, they are using open source programming languages, as well as a variety of open source libraries.
Zowe is no exception, and as a growing open source project with thousands of lines of code, it also includes hundreds of open source libraries that are vetted for their use. The Zowe project includes great documentation and properly lists all third-party libraries used by component. Well-managed projects should always document all the third-party code they use. Zowe provides this information to stress its transparency to all users.
It is important to note that the Zowe project has Continuous Integration (CI) and Continuous Delivery (CD) automation practices that include what is now known as DevSecOps. This refers to the use of security scans as part of CI pipelines to identify flaws and vulnerabilities in code and open source libraries.
Another key Zowe component is the API Mediation Layer, which provides a gateway to integrate with z/OS services and includes a catalog of REST APIs and discovery functionality. This component performs key functionality for Zowe and it is built using Apache Commons Collections and Spring Boot for Java development. A couple of very interesting open source projects used in the API Mediation Layer are Zuul, which provides gateway capabilities for dynamic routing and monitoring, and Eureka, a REST service for load balancing. These two projects are contributions to open source by Netflix. Companies like IBM and Red Hat constantly open source their code not only as a good neighbor gesture contributing to the overall open source community, but also as a way to bring more participation and contributions to their projects. Zowe has benefited greatly from a growing number of contributors.
Like many other open source projects before Zowe, the idea to develop and create open source software using existing open source software is no longer novel — it is a trend. Successful open source projects don’t grow by hiding behind proprietary code; every new component, every new utility is contributed back to the community. Building on top of Node.js libraries or Zuul are examples of how you can create a successful project to solve a problem, to make integration easy, and in the case of Zowe, to take advantage of the large ecosystem of software that can now integrate with IBM Z on z/OS.
Zowe makes it easy for developers to integrate or build functionality on top of the open source components that Zowe offers. There is a large number of open source software as well as commercial offerings that are being built on top of Zowe components, a true testament to a successful open source project.
When enterprises and individual developers build on top of open source projects, they are invested in the success of the project. Open source communities grow ecosystems, and meaningful contributions foster communities.
Open source software for IBM Z on z/OS and Linux continues to grow. I invite you to check out the roadmap for Zowe and the growing ecosystem of open source software for IBM Z and LinuxONE for more details.