IBM Merlin Brings New Approach to Developing on IBM i
May 4, 2022 Alex Woodie
IBM is rolling out a new application development framework dubbed Merlin as part of its release of IBM i version 7.5. Designed primarily as a lightweight alternative to RDi and running in containers, Merlin could provide a guide for how IBM sources and distributes development tools going forward.
Merlin is a new Licensed Program Product (LPP) offering from IBM designed to enable IBM i developers to create new ILE programs from scratch, or to modernize existing ones. The software, which is officially called Modernization Engine for Lifecycle Integration, is based on a mix of open source and proprietary tools from IBM, Red Hat, and ARCAD Software that’s packaged up to run on the Power server via Red Hat OpenShift containers, and accessed through a Web browser.
The core IDE is based on Visual Studio Code (but not the one from Microsoft, IBM says). IBM tapped the change management and DevOps expertise of ARCAD to incorporate support for Git source code management and Jenkins for continuous integration-continuous deployment (CI/CD) pipelines. It also incorporates an RPG conversation tool from ARCAD called Transformer, which IBM has renamed Converter for its Merlin offering.
The idea is to provide an environment where customers can create next-generation applications using the modern DevOps paradigm. Merlin provides full coverage of ILE languages, including RPGIII and RPGIV, COBOL, CL, DDS, and SQL, thereby giving developers the familiarity of working creating in these languages while bringing them forward with automated code management and deployment.
It’s a step up from the dark ages of SEU and PDM, but without the resource-heaviness of Rational Developer for i (RDi), says IBM program manager Alison Butterill.
“RDi is an excellent tool,” Butterill tells IT Jungle, “but it’s based on Eclipse and it’s got a lot of proprietary code in that didn’t really fit into the containerization space . . . It a very heavyweight client. It requires a lot of things on your own machine.”
Merlin provides a slightly different way of approaching application development and modernization, not to mention being much easier on the computing resources, Butterill says.
“We have had many, many clients that have been asking us for a browser-based solution, a cloud-based solution, something that incorporates not just edit, compile, and debug, but also modernization aspects of transformation, and most importantly DevOps and CI/CD,” she says. “You could [create and modernize applications] with RDi, but again RDi relies on a fat client. It also does not build in the DevOps and CI/CD capabilities, and it does not build in some of the conversion and transformation tools that we’re getting from ARCAD. For clients that want to run in the cloud but browser based and lightweight, this is definitely the tool.”
A developer working with Merlin to modernize an application would start by getting access to Merlin itself. As a certified container application, users will be able to download Merlin directly from the IBM Certified Container catalog. After paying the requisite virtual process core (VPC) units from IBM Passport Advantage, they can get started.
The user begins her workflow starts by acquiring the source code from the IBM i server. Once the source code is in the Merlin environment, the user is able to make the needed code updates from Merlin’s browser-based interface. When the work is done, the user then pushes the code back to her IBM i to compile and run the object, Butterill says.
Merlin doesn’t currently have a debugger, but that should change in the near future, according to Butterill, who said this is the fastest moving development project she has ever been involved in at IBM. “We have been just focused on getting this out the door,” she says. “We have a few ideas for our next [release].”
While Merlin runs in a container, it is not used to create container-based applications. That’s an important distinction that IBM wants to stress, since container technologies — such as Docker and Kubernetes, which is used to manage containers — don’t run on IBM i. But the full array of container technologies do run on Power Linux environments, hence the decision to base Merlin on OpenShift.
There were several reasons why IBM selected a container-based deployment option for Merlin, Butterill says. “Number one, because it allowed us to actually feature some of the OpenShift function,” she says. “But it’s not the only reason. That’s a nice side benefit.”
Containers have the core advantage of hiding the complexity inherent in applications that are composed of a mix of different frameworks and technologies, which describes most modern applications these days. Containers allow a developer to create a standard image of all of the various pieces that go into the application, with assurances that all of the technologies are at the correct release levels to ensure it all works together.
“Working with containers has allowed us to take these different components and actually put them together in a different fashion,” Buterill says. “And containers of course are . . . almost like a black box. You call into it, something in their works, and you use it from the outside. It allowed us to encapsulate a lot of this function that we wanted to deliver and to manage it in a very streamlined fashion.”
A customer could create their own version of Merlin by cobbling together open source tools, and possibly even bundling it as a container. “I could do it myself,” Butterill says. “But it would be a lot of work and still wouldn’t get all of the pieces that we’re covering and the gamut of our suite.”
Merlin requires IBM i 7.4 or 7.5.