IBM Brings More Open Source to IBM i
October 14, 2020 Alex Woodie
IBM has brought an array of new open source packages to its IBM i operating system with the latest batch of Technology Refreshes, including tools for application developers and systems administrators. It’s all part of IBM’s strategy to keep IBM i on the cutting edge through open source, says IBM’s business architect Jesse Gorzinski.
Before IBM unveiled IBM i 7.4 TR3 and 7.3 TR9 last week, we’d already written extensively about many the open source package that IBM has brought to the platform. For instance, we told you earlier this year how Apache Kafka and Apache Zookeeper were running on IBM i, how the new Man-DB utility is improving documentation, and why PostgreSQL and MongoDB were coming to IBM i.
These new open source offerings were all listed as enhancements in the IBM announcement letters unveiling the new TRs, even if they had been available on the IBM i system for months via the new RPM delivery method that IBM now uses to distribute open source code to its customers.
But there were several new pieces in the announcement letters that were either new, or were new to us. This includes a host of compression algorithms, cryptography libraries, development tools and languages, and sundry other utilities for helping intrepid IBM i professionals get their jobs done. Whether or not they’re new, we are covering them now, as they ostensibly are part of these TRs.
On the compression front, IBM has brought several new packages to IBM i, including p7zip, which is a port of the command line version of 7-Zip for POSIX operating systems (like IBM i). There is also Zstandard, or zstd, which was developed by Facebook to be an extremely zippy compression library (it favors speed of compression over other factors, presumably the actual compression level). Lastly, IBM i now gets pigz, a parallelized version of gzip that can take advantage of multiple cores to speed up compression.
SSH is the preferred security protocol for accessing IBM i systems remotely these days, and should be paired with the Bash shell when working with open source technology on the platform, according to Gorzinski. “Please don’t use Qshell. Please don’t use QP2TERM as you’re dealing with open source,” he says. “The best way to use these technologies is through an SSH session and with the Bash shell.”
To that end, IBM is supporting a new release of Curl (stands for “Client URL”), which is the library and command-line tool for transferring data using various network protocols. With Curl 7.70.0, IBM i professionals now can use the newly released libssh2, a client-side C library implementing the SSH2 protocol, which allows Curl to use URLs that include SSH and SFTP protocols.
IBM i professionals should also welcome Autossh to the show. Autossh is a library that keeps SSH tunnels open, including automatically restarting the tunnel if it trashes. Along similar lines is Tmux, which is a “terminal multiplexer” that allows the creation of multiple, persistent SSH terminal sessions that are resilient to network disruptions and other events.
Also coming to IBM i is Paramiko, a Python library that makes it easy to use SSH, SCP, and SFTP from within Python. Paramiko is designed to help automate the use of SSH and SFTP as part of business procedures, and also provides a way to make remote XML service calls to IBM i using SSH. Another new open source tech coming to IBM i via RPM is Chsh, which makes it easier for users to customize which shell is the default shell (it should be Bash, by the way).
Admins who struggle to deal with IBM i logs files may be interested in Logrotate, which is a tool designed to rotate, compress, and remove log files. According to Gorzinski, it will work with a variety of IBM i log file types, including files from Tomcat, RPG, or Node.js applications.
“If you have log file that are generated, you can use this Logrotate tool,” Gorzinski said during his recent COMMON presentation. “It has all kinds of options. You can make backups every day. You can split your log files up. You can compressor them. You can automatically remove old log files . . . . So it’s a pretty handle tool that pretty much anybody can benefit from.”
IBM i shops are also getting support for GNU Privacy Guard, which is an open source implementation of the OpenPGP standard. IBM says it uses public key cryptography for signing and encryption.
The company is also supporting Node.js version 14. This is the most recent long-term release of the Google-created development language, which works for developing both client-side and server-side applications.
“Node14 is going into active long term support, which means it might still get some new features but the code is stable, it’s enterprise ready, and it’s supported by the community,” Gorzinski said. “It will eventually go into maintenance mode, which means it is still supported by the community but there’s not a lot of new features going in. So be aware — if you’re still running Node.js 10, it’s not even on the chart. You need to get upgraded. You should probably be running Node.js 12, maybe looking to migrate to Node.js 14.”
IBM is also moving the ball forward on Java. We recently covered some of the changes that are occurring on client- and server-side Java, which you can read more about here. With the upcoming TRs, IBM is updating its IBM Toolbox for Java, which contains native Java methods for accessing, updating, and interacting with objects and interfaces on IBM i.
IFS performance has been improved when retrieving attributes for directories, files, and symbol links in the IBM Toolbox for Java. There are also enhancements for converting “varchars” into bytes, as well as better integration with Kerberos for single sign-on.
Finally, there are also enhancements to Ansible, the open source automation platform from Red Hat that IBM recently brought to IBM i. Ansible is an incredible automation platform, according to Gorzinski.
“It’s really fantastic for provisioning applications, provisioning systems, provisioning various tasks,” he said. “There’s a lot of stuff that you can do that’s done in a platform-agnostic fashion. But there’s also a set of modules that are built especially for IBM i, so there are modules in the Ansible for i project that are owned and maintained by IBM.”
Another project that Gorzinski is excited about is Apache Camel, which is another new open source project that is now supported on IBM i. Camel support was not announced in the TR announcement letters, but it’s still fairly new on the platform.
Gorzinski says Camel is the Swiss Army knife of integration tools. “Essentially what Apache Camel has done is they have abstracted all kind so integration activities into these things called enterprise integration patterns,” he said. “These abstract enterprise patterns recently let you define routes of logic.”
For example, Camel can be used to define the flow of data from a source to the consumer, Gorzinski said. “Maybe you need to transform it along the way,” he said. “Maybe you need to send it to someone else as well, to send an email, to create a Google spreadsheet, to do some IoT device activity, to store data in MongoDB, or maybe you need to integrate with Kafka or you need to send an SMS message or something.” Camel can handle all those use cases.
Open source on IBM i is growing more capable by the day, which is plainly evident not only from the recent TRs but from the work that Gorzinski and the IBM i community put into supporting open source on the platform every day. You can access the announcement letter for IBM i 7.3 TR9 at this link and find the one for IBM i 7.4 TR3 here (PDFs for both).