IBM z/OS and Open-Source Development
Developers must embrace open source to ensure that the IBM Z mainframe is a platform of choice for the applications and frameworks that define current and future software environments.
By Joe Bostian03/01/2019
The open-source community is a primary source of creativity and innovation in software development. Nearly all new software products have some level of open-source content. This content provides the building blocks of larger offerings, including commercial software that’s often marketed through the “freemium” model.
Proprietary code bases don’t allow access to the open-source community, which ultimately limits adoption. For this reason, new commercial software offerings are often developed in-house to a certain point, then released under one of the well-known licenses to the open-source community with the intention of building an ecosystem of support.
Many points have been rightly made about the graying of the IBM Z* workforce over the last decade, and efforts like Master the Mainframe and the IBM Z Academic Initiative are important for the future of the platform. However, the hardware stack and OS are no longer seen as the platform for application development.
The open-source community created this platform from a collection of languages, frameworks and Linux* utilities that allow developers to build software that deploys on multiple hardware/OS stacks. We need to embrace this community to ensure that the IBM Z mainframe is a platform of choice for the applications and frameworks that define current and future software environments.
New Talent and the Future of z/OS
New talent entering the workforce is intimately involved with open source, and in many cases, this involvement happens before a developer enters college. Colleges themselves are building curricula around the facilities they can acquire and support with minimal cost. Today’s software developers arrive at work with deep experience in the development platform layer, but with little understanding of the hardware or OS. This is understandable in a time when cloud-based architectures are prevalent. Figure 1 illustrates the components of an open-source development platform.
Software development is a social activity that allows developers to build their reputation and eminence in the technical community. It also means a lot more than just writing code. It includes building recipes and configurations of other packages that implement larger sets of function, and activities that start to cross over into the realm of DevOps. It’s impossible to separate code development from operations in this environment because both activities fundamentally shape each other.
We’ve focused on enabling application development in the past by bringing languages and runtime libraries to z/OS* (e.g., UNIX* System Services). This only implements part of the development platform, forcing developers to refactor their code to build or port missing componentry, and creating a barrier to IBM Z adoption.
Open Data Analytics Enables Open Source
When we created the IBM Open Data Analytics for z/OS offering, we had to resolve many of the development platform deficiencies that the open-source community sees when they look at IBM Z. Open Data Analytics for z/OS is a collection of nearly 250 open-source projects plus some proprietary code, so we had no choice but to embrace the full open-source development platform.
The z/OS C compiler and runtime are solid, and our Java* implementation is world class. With Open Data Analytics for z/OS, we added Python 3 to the language set and enabled a huge collection of Python-based functionality through the Anaconda and pip package managers. Most packages implemented in pure Python require no porting to run on z/OS, and for packages with compiled code, C is generally the language of choice. By bringing Python and Anaconda to z/OS, we not only supported analytics capabilities, but we also filled in a great deal of missing function in the development platform.
Other capabilities that IBM brought to z/OS as part of Open Data Analytics for z/OS include a modern bash shell, the make build utility, curl and assorted zip utilities. We have also enabled the Jupyter Notebook framework for application development. This is a very popular browser-based interface that is generally associated with analytics workloads but serves the general Python community as well.
While developing Open Data Analytics for z/OS, IBM used common open-source toolsets like Jenkins and Sonarqube. We used git for source control and issue tracking; we used Jenkins for automated testing; and we used Sonarqube to review code source for correctness and potential security vulnerabilities. We ran these on an assortment of platforms from laptops to z/OS to Linux machines running on IBM Z, x86 and the cloud, in much the same way an open-source team would.
As we continue our development of z/OS, we continuously look for opportunities to provide new capabilities that integrate well with the inherent strengths of IBM Z. The work IBM started with Open Data Analytics for z/OS has laid the foundation for broader open-source efforts to create a complete development platform that allows z/OS to become relevant to a new generation of software developers.
Joe Bostian is an architect and developer of several middleware projects and application frameworks to IBM Z platforms. More →
Sponsored ContentThe Compelling Case for Workload Orchestration
Post a Comment
Note: Comments are moderated and will not appear until approvedcomments powered by Disqus