Getting Started with Open Source on IBM i

Webinar Icons Time

Session Time

60 Minutes

Featuring Guest Speaker Jesse Gorzinski of IBM.

Video Transcript

Okay, let’s go ahead and get started. Good morning or good afternoon or good evening, everybody. Welcome to today’s webinar. We’re going to start immediately as we have a very packed agenda for you. The topic, 11 million developers on your team using open source from the IBM i, is going to focus that by the end of the session, you will be able to set up your IBM i for use in open source and be ready to start developing applications. My name is Mitch Hoffman, and I’ll be your moderator. I’m one of the principals here at Eradani and so excited to be hosting and that so many of you are here today. Our speakers are Dan Magid. Dan Magid is known in the IBM i world for his professional achievements. He’s presented at hundreds of webinars, met with thousands of IBM i shops, spoken at conferences globally when that was a thing, and is a regular published author of articles that relate to the IBM i at open source. He began with the System 34 a little bit ago and eventually went on to work with his father, the Al of Aldon, to eventually take the helm of that business and then turn to the world of open source and become the CEO of Eradani. Aaron Magid is our young expert in open source technology who’s been working with open source for over a decade. In fact, he wrote his first project for IBM i with open source when he was 14 years old. He is proud to be a fresh face of IBM i and a 2020 IBM i champion and a third generation Magid carrying on the traditions of our great platform. Aaron is the Director of Open Source Development for the IBM i at Eradani. Jesse Gorzinski is the mastermind of the IBM i Open Source Development Lab in Rochester, Minnesota. He’s the VP and business architect of open source technologies and is truly an expert on application development on the IBM i. He knows a few things about system access and modernization too. We’re thrilled he has joined us today on this session to help educate everybody. These three speakers are a perfect complement. One of them has deep, long-term IBM i knowledge. Another brings the open source knowledge and tying it all together from the mothership, we have the IBM perspective. All right, before I hand things over to our speakers, just some quick housekeeping.We are recording the session and we’ll email a link to the webinar replay to everybody. Please share it with your peers. I believe one of our speakers will also mention some PDFs that are going to be sent out. So as long as you stay to the end, you’ll get a copy of those. This is our most popular webinar ever with three times the attendees of our last one. So we’re not going to be able to answer live questions. Please submit all your Q&A through the Zoom webinar application. We’ve allocated time at the end to go through as many as we can. All right, this is it. You’re all going to love this training. Without further ado, I kick things off by welcoming the CEO of Eradani, Dan Magid. Dan, over to you.


Great. Thanks, Mitch. All right, let’s get into it. As Mitch said, we’ve got a lot to go over. So we’re going to start out with just a quick overview of why you want to look at open source, what are the things that you can do with it, and I’m going to give you a couple of real-world examples of how people are using open source today with their IBM i applications. And then Jesse is going to cover IBM’s strategies and some of the open source opportunities that you can take advantage of on the IBM i platform. And then Aaron is actually going to step you through getting an open source environment set up in your IBM i platform for real applications. So this isn’t just to put up a Hello World application in open source. He’s going to show you how you get your IBM i set up so that you can create communication between your open source application and your native IBM i, RPG, CL, DB2, COBOL application. And then we’re going to talk a little bit about how you make that connection, how you connect the two sides up, and then as Mitch said, as we have time, we’ll answer whatever questions you post in the Q&A section of the Zoom webinar. So just real quickly, what’s happening in open source? Well, we entitled this webinar 11 Million Developers in Your Shop, and the reason we entitled it that way is because if you start to take advantage of open source, you can take advantage of the work of all the developers who are out there building open source components. Now, 11 million is really just the number of people who are building stuff for Node.js. They’re building Node application components. But if you look at the number of developers who are actually working in GitHub, which is sort of open source central, there are 40 million developers on GitHub. So it’s a huge ecosystem of people who are building application components that you can download. And those are not just being used by individual developers. Major corporations are integrating open source into their core applications, so they’re contributing to the open source project, and they’re actually using open source in their core applications. And because these things are being so widely used, they’re being used by millions of companies around the world or millions of developers around the world, they’re being tested for security vulnerabilities constantly, and so there are constant security patches. So anytime a new vulnerability is discovered, patches are put out very, very rapidly to correct those vulnerabilities. And if you’re looking to recruit new developers, open source is being taught in the school, so millions of students are learning how to use open source and how to work in the open source environment. So that ecosystem is growing. So what are some of the advantages of using open source? Well, obviously, first of all, one of the big ones is it’s free, so you can download a lot of these components and use them at no cost. And it allows you to build applications very, very quickly, so there’s a huge library out there of entire applications, and you can download an open source ERP application if you want to. There are whole applications out there, but mostly what people do is they download components, so things like connectors, connect me to Google Maps, connect me to the weather system, connect me to transportation systems, so they download these connectors that allow them to connect up easily. Or they download functional components that allow them to do things in their applications more easily. Or they just get bits of code and integrate that code into their applications. Now because they’re so widely used, these things are being tested comprehensively. Some of these things are being downloaded millions of times a week, and so are being used by many, many people, so they’re being exercised very well. And there’s sophisticated tooling to help you manage those open source components, and Aaron’s going to show you some of that when he gets you set up. And they’re so popular that it makes it easy to find skilled developers who know how to use these technologies and these languages. And it also allows you to use the right tool for the task, so for example, if you’re going to be using JSON and you want to be able to parse the JSON, you probably want to use JavaScript because JSON is JavaScript Object Notation, so JavaScript actually has built-in components for working with that JSON and parsing it out. And we’re going to show you how you can easily integrate your IBM i core applications with those open source applications. So these are just some of the places you can go to find components. So GitHub, that’s sort of the mothership of open source, where you can find literally millions of components that you can download, or PyPy if you’re doing Python development, or NPMJS if you’re doing JavaScript development, and of course IBM has things that you can download to help you build your open source environment. And again, Aaron will talk a little bit about that. And some people will say, well, gee, why do I want to run it on the IBM i? Well, the IBM i is a great platform for open source. Jesse’s team has done an incredible job of supporting open source applications on the IBM i, so you can get all these popular open source components, whether it’s the package managers like YUM and RPM, or it’s the languages like Python, like Node.js, all of that stuff is available on the IBM i, so you can do all this very, very modern development right on your IBM i. And so some examples of what people are doing, here’s an example of a customer that’s actually built a Node.js application that provides a customer self-service dashboard, so their customers can get in and they can see what business they’re doing with the company, they can get graphical elements that display graphically what kind of business they’re doing, and they can enter orders, they can track their orders, and this is a Node application talking to an RPG DB2 backend, and so all of that information is readily available through these open source applications. This is one of IBM’s products, so this is IBM’s cloud storage solutions for IBM i, and it’s also a Node.js Angular application talking to RPG code CL commands on the IBM i, it’s moving files in the IFS to the cloud, and all of that application is built in open source talking to the IBM i. And in fact, it has deep integration with BRMS, so we’ve got open source to BRMS integration on the IBM i. So those are just a couple of examples of things that are going on. So now I’m going to go ahead and turn it over to Jesse, and let Jesse go through what IBM is doing. So Jesse?

Thank you, Dan, and thanks to all the folks at Eradani for having me today. I’m here to discuss IBM’s commitment to open source, and our commitment to our client’s success with open source, if you will. So if we were to look at kind of what has been happening with open source, and if we were to back up a few years and look at when we started investing more directly in open source, right around 2014 or so, it was becoming very apparent that pursuing open source for this platform is, simply put, common sense, right? Some of you know we’ve had our partnership with Zend and PHP for almost 15 years now. That partnership has worked out very well. PHP has delivered a lot of wins to our customers, has helped our customers modernize in countless ways. That was very successful. But even beyond that, when we started looking at what do IBM i clients need, we started realizing very quickly that there’s a strong overlap between what our IBM i clients need, and what open source brings to the table. So if we were to look at, for instance, this latest IBM i marketplace survey, which is, of course, yearly market research that we do with collaboration with help systems, we look at all of those top concerns there, security, availability, modernization, skills, grappling with data growth, all these things can be addressed with open source. Open source has solutions to help with all of these different topic areas. And so it really just became the common sense thing to do. That’s when we started directly investing in this stuff. But what is it that we do at IBM, and how have we been committed to delivering open source, and again, committed to our clients’ success with open source? I really broke that down into four topic areas for today. The first is what everybody kind of knows about, that we’re delivering solutions, right? Everyone knows we’re out there, we’re building stuff, we’re making stuff happen, bringing a lot of new technology to the platform. And again, that’s what most people know that we do, but we also have a strong focus on hybrid applications, which I’ll talk about in just a few minutes. And then we’re also investing now in ease of use, because as you would imagine, we want IBM i clients to be able to use this technology without a lot of learning curve, without a lot of technical or skills barriers, and so on. And of course, we’re doing a number of things to support the community and support your production workloads as well, so I’m going to go into that briefly also. Let’s talk really quickly about the solutions that we’ve delivered. And I’m really just going at a high-level summary here, because nobody wanted to come to a three-hour webinar as I dig into all the stuff that we’ve delivered, because I definitely could. In fact, it’s hard to get me to stop talking once I start talking about some of these technologies. But some of the broad categories of things that we’ve enabled on IBM i, I talked about PHP, but some of the things that Dan also mentioned, Node.js and Ruby and Python, a lot of technologies that we have just in programming languages. We have tools, which are key and important. I’ll talk about those in a minute as well, just standard Unix tools and so on, as well as a lot of frameworks for API and web development that we’ve certified for IBM i. We also – and this is kind of a lesser-known fact, when we look at what the IBM i team and what the IBM team is doing, we also actively invest in the well-being of the technologies that we’re delivering for IBM i. We don’t just act as a second-hand consumer, if you will, where we slide in, steal some open source code, and get it running on IBM i. We are actually very actively involved with things like Node.js, Node.js in particular. We have four members on the technical steering committee for Node.js, so that’s actually a pretty strong representation from IBM. That includes the current chair of the TSC, which is actually Michael Dawson. Some of you may know Michael. Michael is a usual speaker even on the IBM i circuit now, so he’s been to PowerUp, and he’s done various webinars. He spoke to an IBM i user group just last week, and again, that’s the chair of the Node.js technical steering committee. We also have strong presence in terms of the core collaborators, which of course help review changes that are contributed, help make sure that the releases are stable, and so on. So, we do have a very strong presence in the Node community, and we’ve also worked with the community to make sure that this technology is enterprise-ready. We helped establish the release working group, so that we establish stable release cycles, so that we have long-term supported releases of Node.js, because as clients deploy this technology, you need to know, how long can I run on this particular version before I have to look at an upgrade or migration? We’ve done a lot of things there, and I won’t go into too much detail, but we’ve done a lot of things, again, to protect the well-being of Node.js in general, and we’re also doing a lot of the care and feeding. So, if you go to Nodejs.org and go click downloads, we’re the ones keeping those downloads running. We’re the ones who are doing the release management. We’re the ones doing all of the, again, care and feeding, if you will. If you get the handouts, feel free to follow this link for an IBM Systems Make article about our involvement there. So, we’ve delivered and sent hundreds of packages for IBM i, hundreds of open-source technologies that came directly from my team, and we’ve invested in probably even more than that in terms of packages in the community that we’ve made sure work on IBM i, things like web frameworks and connectors and so on. But we’ve also worked to make this technology easier to use, easier to install, easy to manage. Some of you have already used the open-source package management utility, for instance, in IBM i Access Client Solutions, which provides just a nice, easy graphical interface for installing what you need and, you know, getting updates and so on. A brand new enhancement we’ve made to that UI. We just actually released this one last week, is this ability to use this SSH tunneling technology. So, if your IBM i system doesn’t have internet access, which we found to be a common roadblock for some of our clients who wanted to adopt this technology, you can actually leverage your internet connection from your PC, assuming you have one, and tunnel that connection so that you can still install RPM packages and so on, even without internet access. So, again, that’s an example of how we’re investing in ease of use to make this as easy as possible and eliminating as many barriers as possible for people interested in adopting this technology. But the big thing that we’re doing now, which probably has one of the largest business impacts, is that we’re working to make application development normal. And what do I mean by that? I mean, application development on IBM i looks just like application development on many other platforms. It’s not some weird alien technology, which of course means you can hire somebody with the open source skills that you need, and they can be immediately adding value to your IBM i applications because it’s all familiar stuff. And you know, one of the terms you hear sometimes is industry standard. We’ve invested in all of these things on this list to make sure that these industry standard technologies are available on IBM i. So the programming languages, all the stuff on here, the tools, the way you access the system, industry standard cryptography, all of this stuff are things that we’ve focused on for IBM i to make the application development scenario normal. And so, we’ve been hearing from clients time and time again that they were able to hire people from the industry with the experience that they needed, or they were able to hire college graduates, and they were very, very successful because they said, oh hey, we need to write a Node.js application, and we need to use Vue, or React, or pick your technologies, and they were able to just use the tools they’re already familiar with and be effective. And we’ve actually experienced this firsthand with some of the people that we’ve added to our teams at IBM, where they were immediately writing code, immediately doing value-added things. Another thing that we’ve done just to help people get started with open source is we do have a set of examples that we’ve published up on GitHub as well. So we have today a number of just useful functional examples to get started with Python, Node.js, some other things as well. We’re actually hoping to grow that a lot in the future, so if you want to bookmark this, watch this page. We’re hoping to have more like cookbook-style activities where you can follow through a set of steps and end up with a deployed application with explanation of what’s happening at each of those steps. Looking at adding more examples with more programming languages that aren’t there yet, Ruby, PHP, and so on. So just a quick look at some of the stuff that’s in there. You want to get started with Python, we have examples that show you things like how do I connect to DB2? How do I spin up a web page? How do I spin up APIs? Same thing with Node. We actually have a number of things that show you how to integrate Node, not only with IBM i, but with services like Twilio, so now you can interact with SMS, we have social media stuff in there, as well as some examples of how to do things like this. So if you need to integrate with something like Grafana, this is actually a pre-canned example that we built for you, so this is, if you’re familiar with Grafana, it’s a way to monitor your IT infrastructure, and you can wire in IBM i to that infrastructure really easily, and we have examples of how to do that as well, and so you get nice, easy dashboards and monitoring capabilities. 

If you’re familiar with the Node-RED technology, which allows graphical building of applications in a flow-based manner, we have an example of that as well that builds up this little dashboard that you see right here, so you can easily monitor on a couple systems actually right here, what the ASP usage is and storage consumers, and again, you can start with this and you can add whatever queries, whatever information you need, if you need to monitor the status of your database, you need to monitor how many transactions you’re processing, whatever it is you need to monitor, you can plug in your own code, but we give you this starting point for you, but a key piece of this strategy is really focused around hybrid applications, and this is really key when you think about open source on IBM i, when you think about why have we done open source on IBM i to the extent that we have, is if you think about what I call the hybrid approach and building these hybrid applications, you can start leveraging the best of both worlds, IBM i has the world’s best relational database management system, and if you disagree, I will fight you, I will fight you, we do have the best relational database in the world, we have all of the other attributes that you love about IBM i that we probably all talk about all the time, the low TCO, how stable it is, we know that it’s good at protecting your investment, for better or for worse, 25-year-old applications, and then you can couple that with the wide world that open source brings, you want to interface with quantum, you want to interface with AI, all of these things that you can do now with open source, you have a lot of power when you do a hybrid approach, that brings you a win, and we do have a case study, well, we actually have a number of case studies, I will show some of them really quickly, but I like this one, this one is a few years old, they were integrating open source with their legacy systems, and they were very explicit in the case study about how this ran side-by-side with core business code from the 1970s, and I call that protection of investment, they were still able to leverage this 1970s code that is bringing unmeasurable business value for this company, but they were able to augment that code and come up with a very big win, and if you look at some of the other case studies that we have published, and there are a lot of them, I’m just going to page through a few of them very quickly today, you can see a trend, the companies who are really winning with the platform are building hybrid solutions that leverage the best capabilities of BB2, the best capabilities of things like RPG, along with the amazing capabilities of open source technology, so other things that we have done there, again, I’m not going to go into details, I want to make sure that Aaron has enough time for his demo, but we have done things like delivered new message brokers, so we have active MQ that can do a number of different MQ-type protocols, including my favorite, MQTT, which is good for doing IOT-type activities, and some of you know that we have been doing a lot with demoing IOT, and actually the Eradani folks on this call have been working with us for a workshop that we hope to deploy in Tampa in August, where you can actually start building up devices, integrating those devices with BB2, and be doing some really cool stuff with IOT, because of course we do have a number of clients with interest in that area as well. But the key piece is that every major language that we have delivered comes with this integration with the system, so you can interact with all of these IBM i things from your open source code, and that is what allows the hybridization to take place, is because you can run these things and you can have them talking to each other. More examples there, just very quickly, Python ecosystem, we announced this just last week, this is actually still a work in progress, but we are going to hopefully have a version 1.0 published yet this quarter. You can use the popular SQL alchemy package with DB2 for IBM i now, and again, just leveraging more and more frameworks out there, and providing more and more ways for you to build these hybrid applications. We’ve also built a connector for DB2 for I with the loopback framework, which is a very popular framework for building REST APIs. So you can actually build APIs with no code, but you can do a lot of low-code type activity with this framework as well and bring up APIs with Node.js if you choose to utilize loopback. So a few closing thoughts as well, you know, we do work to support the community. Some of you know about some of the channels that we leverage, probably the best place to come chat with us and chat with other like-minded people doing open source on IBM i is on this platform called River, right? So you can follow these short links. You do have to join because it’s built on this notion of a team, but you can come join. We have forums there for various topics. We have a forum just for PHP, a forum just for Node.js, and so on. We also have a repository up on Bitbucket with a lot of really good getting started documentation, common troubleshooting for things that you may run into if you’re getting started, as well as an issue tracker. So if you have a question or if you’re running into an issue, you can go up there, open an issue, and we’ll hopefully give you some attention there, right? I talked about that examples repository, and I also have a blog as well, which I think I’m up to something like eight or nine readers. So feel free to come be number 10. But beyond that, you know, some people are really interested in having more comprehensive enterprise-grade support for their open source as they deploy to production. And we do now, thanks to our multi-channel partnership with Red Hat that we had even before we acquired them, and our partnership with Perforce, we have built up a cross-platform support offering for open source that goes beyond just the break-fix scenarios. It’s a whole software development lifecycle type of offering. So it even provides, you know, what we call short-duration guidance and things like that, because four out of five issues, of course, are some form of user configuration error. So some significant things you can see listed here that we can actually offer this premium support offering for on IBM i, things that you may care about, Node.js, Python, Apache, Tomcat. If you want more information on this support offering or some of the other support offerings available on IBM i, you can imagine we have support offerings from some independent vendors. We have community support as well as this premium support offering that I mentioned. Go to this short link at the bottom of the page, and hopefully that will clarify everything you need to know in terms of getting support. Otherwise, of course, feel free to reach out. But the final closing thought I have, you know, I talked about the four ways that IBM is investing in open source and how this is a really strong piece of the IBM roadmap. Closing thoughts from me is, you know, Dan talked about some, I talked about some already, but customers are experiencing a lot of success deploying open source on IBM i. If you don’t believe me, I’m just going to leave you with a couple of data points today. The first data point is this webpage here. You can go out to ibm.biz forward slash IBM i stories, and you can go read through, you know, I think we’re probably about 60 customer stories that are out here now. They’re not all using open source, but you definitely will see if you start reading through all of these IBM i success stories that a large, large proportion of them are indeed using open source technology of some kind. And I also mentioned earlier, the IBM i marketplace survey that we do every year. And if we were to look at some of the data points in there, you start to see some trends very clearly there as well. So if we were to look at, for instance, the adoption rates of Node.js and Python over the last four years of us doing this survey, I mean, it’s really clear to see the trend. It’s also a really powerful message that now about one in four customers are using Node.js and or Python. 26% of our active customers who responded to this survey are using Node.js for something. So that itself is a very, very strong message. So you know, open source is now a mainstream part of IBM i. It’s not a niche technology. It’s not, you know, I always joke about, you know, meet in the alley behind Subway at 11: 30 PM and we talk about it. It’s a mainstream part of IBM i. Every IBM i conference now has open source material in it. And you know, it’s a very, very popular topic for user groups and the whole community as a whole. So this is, if you will, the new normal for IBM i is leveraging these open source technologies. So thank everybody for listening. And again, thanks again to Eradani. And I’m going to hand the virtual mic back over to, I believe, Aaron at this point, or maybe Dan to hand it off.


Nope, we’re going to go to Aaron. Yep. Just thank you so much, Jesse. I hope everybody on the webinar is as impressed as we are with the amount of investment IBM is making in this open source environment. And I think the key is what Jesse said, is that it allows you to leverage the huge investment you already have in your IBM i core applications, and yet take advantage of all the latest, coolest, neatest technology that’s out there. And it doesn’t have to be hard to do. So now I’m going to turn it over to Aaron. And he says he’s going to do this in 20 minutes, that he’s going to take it from scratch to actually being ready to deploy production-ready open source applications talking to the IBM i. So Aaron? All right. Well, you know, no expectations there. So I’m going to go through, like Dan said, and I’m going to set up an IBM i for you for open source development. And we’re going to – we’re not just going to set it up to deploy a production application. We are actually going to deploy a production application to it. And I want to be very clear up front, this is not a hello world. We’re not just going to go up there and, you know, get a little dummy thing going. This is a production-ready application that we use. It’s actually based on our template application that we actually use in our real hybrid applications. So getting started here, in order to set this up, there’s four major steps that we’re going to go through. Number one, the most important thing that you need, number one, when you’re working with open source, is you need to get YUM on your machine. And I’ll explain a little bit more about what YUM is, so that Jesse touched on it earlier. Once we have YUM, what we’re going to do is we’re going to set up SSH on our IBM i. Now SSH, again, I’ll get into that a little bit more later, SSH, you can think of if you’re not familiar with it, is essentially the open source analogy for 5250. It is a method of interacting with sending commands to a machine remotely. It’s just the standard for the open source world. After that, we’re going to set up the development environment and make sure that we have all of our dependencies installed. And then once we got the dependencies installed, we’re going to get our application set up. We’re actually going to get it installed. Now I’m just going to hop in, this is just a demo. I’m not going to, I do not have a slide here. This is just going to be something that I’m going to do right in front of everybody. So just to hop in a little bit here, I just want to say a little bit about YUM. We’ll send out a guide after the webinar that explains how to get YUM set up. That is, that’s a guide that was provided by IBM. It’s a wonderful guide that we’ve gotten from them. It gives you a bunch of different options, depending on your IBM i setup, to make sure that you can get it set up correctly. Jesse actually showed a screenshot earlier of one of those that, that showed the window in ACS for, for getting into YUM. Basically what YUM is, is the tool that to me, encapsulates the entirety of open source, encapsulates the heart of open source. What YUM is, is the, is on IBM i, the open source package manager. And so what it does, is it allows you to go into your IBM i and say, I want to install this particular piece of software, right? Right. When we want to get open source on our machine, let’s say we want Node.js. We don’t want to go to the IBM i and say, I need these particular build files. I need these particular source files and get those set up. What I want to do is go in and say, get me Node.js. And that is what YUM does for you. Now I’m not going to go through the YUM installation exactly in this demo, because the YUM installation requires downloading a significant amount of software. And that can, that can take some time, but it is a straightforward process and we’ll send out the guide at the end of it. So to start moving here on the actual demo, the first thing that I need to do to work with open source on IBM i is I need to actually get into the open source environment, right? So we’ve got YUM set up and I need to get SSH set up. And as I mentioned, SSH is very much analogous to 5250 control. It’s how we interact with the open source software on our IBM i. Now the way that I do that is just by starting up the SSHD TCP server. And once I get that SSHD server up and running, I should be able to come in here and open up a connection via my Linux terminal. Now bear with me, this may, this may, this will be likely less familiar, but I’m coming in here to my, to my terminal on my machine and I’m connecting to my IBM i. And once I have my connection open, what I have here is a, is a UNIX shell into my IBM i. So I can run IBM i commands from here, but much more importantly, in this case, I can run my open source commands directly from this SSH connection. So I have SSH and I’m in here and I want to take a moment to point out that this is, if you’re working with open source developers, this is going to be what they expect to see when they come into the machine. They’re right, you know, you bring in an open source developer, they’re not going to know what to do with a 5250, but you show them this, this is something that they’re going to be able to navigate because this is the standard in the open source world. So now that we’re in to the open source environment on the IBM i, the, the, what we’re going to do is install the system dependencies that we need to work with Node.js. Now for this example, I’m going to be using Node.js, but these steps are almost exactly the same if I wanted to install Python or OpenPHP or any of the other open source tools on this machine. So I’m just using Node.js as an example. So the first thing, Aaron, there’s a question that somebody wants to know what shell you’re using, if you’re using a, I’m in bash, just my preference, but again, you, I mean, Jesse’s team has ported so much open source software here that there are many, many options for whatever it is that you want to do. So so the first thing I’m going to do is I’m going to run a yum installation command. And this is something that, that I’m very thankful to Jesse’s team for, it makes things very easy. As I can come in here and I can say, yum, I want you to install development tools for me. And what it’s going to do is it’s going to go out, it’s going to grab a whole bunch of packages that IBM has identified as these are packages that you need for development in, in open source on the IBM i. Now, again, to save time, I have actually already installed these because it requires downloading about two gigabytes of software onto the IBM i. And while I think progress bars tend to be pretty exciting, they’re not what we’re here for. So we already have that. And just to sort of zoom in on this for a second, you can see here, it’s grabbing a whole bunch of packages and you can see on each one, it says, all right, package patch new is already installed in latest version, flex already installed in latest version, get already installed in latest version, right? So it’s going through and it knows what I have on my machine, it knows what operating system version I’m on, what my environment settings are, it knows exactly which packages I need to get these tools set up. So I say, install git, it knows exactly which build of git it needs to get onto my machine to get that running. And so it does that. And then when I tell it to run this install this time, it also goes out and makes sure that there isn’t a new patch version, there isn’t a new update out there for it. And if there was, it would have gone out and downloaded it just now. So just, I sort of touched on this, but just a couple of notable members in this development tools group. Of course, if you’ve been to probably any user group conference recently, you’ve probably heard about git, you’ve probably heard about that plenty. So we get git on the machine, we get C++ development libraries, we get Gmake, which is a build tool that we actually use for compiling RPG code and other ILE assets from the IFS and from git, from our open source libraries, and several other packages that are going to be helpful as you work with open source.

So once I have my development tools, the next thing that I need to do is actually get Node.js. So again, like I mentioned before, right, I don’t want to have to say exactly which package, exactly which file, what I want to do is say, get me Node.js. And when I say yum install Node.js 12, what it’s going to do is it’s going to go out and it’s going to figure out how to install Node.js version 12 for me. And Node.js version 12 is the most recent stable version of Node.js. It’s actually exciting. We actually got Node 14 released this week, but it won’t be considered stable until about October. So for now, Node 12 is still our primary version. So at this point, I now have Node installed on my machine. So I am ready to write a Node.js application right now. If I wanted to do a quick hello world, I could do that right now with Node.js. I’ve got the tools that I need. And by the way, Aaron, you’re using Node.js just as an example, right, this could just as easily be Python, PHP. Absolutely. It’s just a matter of the package name. It’s just a matter of exactly which package I’m getting. So I grabbed Node 12. The last thing, just a quick note about Node. The next thing that I would want to do if I’m installing Node is tell Node that I want it to use version 12. One of the things to note about these open source languages is you’ll often have multiple versions of the same language. You might have Node version 8, version 10, and version 12 all on your machine at the same time. So this nodever command, nodever 12, what that does is tells the machine, when I use Node.js, I want you to use 12, not 8 or not 10 or whatever the other default is. So that’s also an important command to have in there. So I have Node.js here. So what I’m going to do now is actually grab my application and set it up. So I’m going to download my application from GitHub. And you have both IBM i and open source code in GitHub, right? Yep. And so, yes, and so what Dan just mentioned, this Git repository has a whole bunch of JavaScript code. It also has some RPG code in there, and that’s all stored in Git and all managed with Git and open source tools. And that’s what we do internally at Eradani. We manage everything through these open source tools. So it has now downloaded my application. I’ve got my application. The next thing I’m going to do is run its setup script. And this, again, gets really into the power of open source technology here. You can see that this is going to go through and it’s going to grab everything that this application needs to run. The first thing, this may look familiar from a few minutes ago, the first thing it’s going to do is grab all of its system dependencies. So it knows, I just said set this up, but it already knows exactly what it needs to get that done, to actually execute on that. And so it’s going to go out, it’s going to grab those packages and check them all, make sure that it has the versions that it needs. It’s going to install some other system dependencies. It’s grabbing PM2, which is a very popular process management tool for Node.js. It just makes sure that your Node application stays running. It’s just another open source package though. Then it’s going to come in. This is one of the cool parts, in my opinion at least, that this is going, it’s then compiling, it’s creating a library and compiling the RPG programs that are a part of this open source application, cleaning out any previous versions and running through and running the compilation here. Let me just get to the bottom of that. And then it’s going out and it’s installing all of the Node.js dependencies, right? So it’s going to go out to NPM and this is also really cool and I think gets to the heart of open source and why open source is so powerful. It’s going to go out and say, what are the dependencies of this application? It knows them by name, so it’s going to grab them. It knows exactly which versions to get. And then it’s going to go to those packages. It’s going to say, all right, what are the dependencies of those packages? And it knows what those dependencies are and what are the dependencies of those packages and so on and so forth. And it’s going to get me everything that I need to run this application. And I want to draw everyone’s attention to this line because this is one of the most exciting things to me when you do an open source installation is this particular line added 605 packages from 907 contributors in a little under a minute. And what that means, what it’s telling me is in installing this, it went out to NPM, to the Node Package Manager, and it downloaded 605 different open source packages from 907 different developers. And this is where we get the 11 million developers on your team title for this webinar. This is where we get that because I’m building this application alone, right? I’m the only developer. It’s just me right now, plus the 907 other developers that I’m pulling code from, right? So I don’t have to do all of those pieces. I don’t have to build all those components because they’re already there for me. And I know that these packages are secure. I know that NPM actually audits them. I know that they are reliable. I know that they are popular. And I can bet that if I’m looking at a package that’s downloaded, like Express that’s downloaded 13 million times a week and used massively in probably hundreds of thousands of applications around the world, that’s going to be a fairly reliable package. It’s something that the entire world relies on. So that’s just something that I want to point out because to me it’s very exciting. So now I’m just going to do a quick configuration step on my application. Okay. And then I’m going to start up my application. So it’s saying, okay, I issued the startup command. I know that it’s running. And if I can type my URLs correctly. I know that my application is running now and I can come over to my web browser. And what I have now, I’m just going to give it a second for the screen sharing to catch up. What I have is a web page here that is served from my IBM i. And this URL is actually a public URL if anyone wants to take a look at it. This goes to my IBM i, it goes to my Node.js application. It grabs a web page, grabs all the code that it needs for that web page. And if I give it a numerical input behind the scenes, when I hit that calculate button, what it does is it goes out to the API, it runs the API call, it passes in a numerical input to an RPG program, a little bit of a biased calculation, but it grabs, it takes that number, it multiplies it by 40 in this case, but this will generalize to any arbitrarily complex RPG program and it gets the output parameters and it sends it back as output in JSON from the API. So what I have here is a JavaScript application, an open source application that is integrated as a web page in with an RPG program. And there’s also a tab here to run queries against the built-in sample database, the new customer credit database that comes or file that comes on the IBM i by default. So we can run database queries. We are integrated with RPG programs. And from this point with this template, it’s really just a matter of actually integrating specific RPG programs that I need or extending the business logic however I need. And this is a real application that is managed with industry standards. And didn’t you use the same technology for a customer who was passing in 300? Yeah. So that was an interesting one. A couple of months ago, I was doing an implementation of this for a customer and they had an RPG program where one of the inputs was a data structure with 328 members, I believe. And so it really, it generalizes to arbitrarily complex. I mean, it’s whatever it is that you have in your program, you can do that. And this particular program is one input parameter, one output parameter to make it easy to understand. But it’s really just up to your imagination, honestly. Great. All right. Terrific. Well, thank you, Aaron. And I’m looking at, I set a stopwatch, you did that in 19 minutes. So way to go.

Here we go. So let me just a couple of closing thoughts before we get into the Q&A. So again, here’s some list of some of the components that you need to get this thing going to do what Aaron was doing. And if you’re interested in other languages, I know we use Node.js as our example here, but our next webinar next week, we’re actually going to be talking about different languages. So, you know, do you want to use Python? Do you want to use Node? Do you want to use PHP or a combination of those things? So, you know, if you’re interested, our next webinar is going to be about choosing the right languages. So at the heart of what Aaron was doing, excuse me, at the heart of what Aaron was doing was connecting open source to IBM i. And as Jesse mentioned, we want to make the IBM i look like anything else. So we want open source developers to be able to talk to the IBM i just like they talk to anything else. So they want to be able to send REST calls and function calls just like they would to any other platform. And then they want to get back data that they would expect from any other platform, so like JSON data or XML data. You want to be able to have sort of those connectors that allow the open source people to work the way they want to work, the IBM i people to work the way they want to work, and yet have that communication go on. And you want to do that in a secure way. You don’t want to be doing things sort of the old way, which was every time you send an API call, you send down your IBM i credentials. So you’re sending your IBM i credentials up and down the line constantly, which exposes you to a security risk.

You also don’t want to be storing those IBM i credentials in your browser, because that’s another potential vulnerability. So what you want to be able to do is use modern token-based authentication. So you send the credentials once, you get a token back, you now share the token back and forth rather than the actual credentials. So you’re using the modern way of doing security, so you’re not constantly sending your credentials up and down the line, you’re not storing them in the browser. And it supports modern security technology or frameworks like OAuth. And then you also want to be able to go the other way. So I want to be able to go from open source to IBM i, but maybe I also want to go from my RPG program to open source. Maybe I want to, in the middle of my RPG program, go out to my transportation company and get the current location of a shipment and be able to display that directly. Or I want to go out and get weather information or maps information, so I want to do that right from my RPG program. So again, the idea is let the RPG programmer call that kind of a function the way they’re used to calling a function, just doing an RPG program call with parameters, and then to get back parameter data, something that the RPG understands, without having to know a whole lot about the open source world. And so what happens is we have a connector that allows you to do that, and it does all the translation. So you call something with – as an RPG program call with parameters, we then translate that into something that open source understands, run the open source process, get the data back from open source, translate that data back to parameter data, and hand it back to the IBM i program. Again, so the IBM i people don’t need to know everything about open source in order to call open source services. And then you can manage – now Aaron has talked about this. He managed everything in Git. So the IBM i code is managed in Git, the open source code is managed in Git, so you have a single repository across all of your application development. So one place to go to see the history of everything that’s going on, one repository with all of your code. And you can manage versions of code and compare and merge versions, and what’s really nice is if you’re using Git for your development environment, it’s integrated into just about every development tool out there. So if you want to use Eclipse tools or Visual Studio Code or some of the other development tools that Jesse brought up, you can do that directly. And then you can also manage your IBM i code, so you can manage your IBM i code in development using Git and then push it up to your IBM i for it to be promoted through some lifecycle on your IBM i. And then you can integrate your IBM i development into this whole open source ecosystem. So using popular issue tracking tools like JIRA and using development tools like Visual Studio Code or RDI, doing your builds with tools like Jenkins. So you can use those open source tools for your IBM i code as well as your open source code. And if you need any help with that, we at Eradani are available to help you out get started with this technology and start using it in your environment. So we went through here today an overview of why you would want to use open source, what are some of the advantages of using open source. Jesse gave you an introduction into all the things that IBM is doing to support open source. And then Aaron showed you how you can get set up with real applications that connect to your IBM i application, so open source to IBM i connections.

And so with that, I think we have just a little bit of time left for some Q&A. So there’s a question here, why would you develop on your IBM i instead of developing locally and then deploying to your IBM i? Aaron, why don’t you talk a little bit about that, because I know you actually do that, right? You develop locally and then move the code up to the IBM i. Yeah. So the one scenario where things get a little less clear, so generally I would say you actually would develop locally and then deploy to your IBM i. And that has been the standard in every open source project that I’ve ever been a part of. That really is the way that things are typically done. And that’s actually what we did in this demo, right? That was an application that I built locally on my machine and then deployed via GitHub to my IBM i. The one case where it can make sense to develop directly, I would argue, is if your IBM i resources are not accessible remotely. If your IBM i isn’t accessible remotely, you can’t really test your application, obviously, and the integration that it runs with the IBM i. So in those cases, you may need to develop directly on your IBM i. Okay, great. So there was another question about connectors to Watson. What’s really interesting, if you go up to GitHub and just type in IBM i Watson, you’ll find a bunch of components that have already been built to do connections from the IBM i to Watson. There’s a whole bunch of them out there. So it’s just an example of taking advantage of that open source ecosystem to find things. There’s another question here about how do I know if I’m downloading these open source packages? How do I know that they’re secure? How do I know that I’m not getting bad code, that I’m not downloading bad code? So Aaron, I don’t know if you want to talk about that at all. Yeah, well, so when you’re trying to gauge an open source package, the first thing to know is that the open source community is always vigilant about those kinds of things, about vulnerabilities, about inefficiencies. The simplest way to check is to look at the popularity. If you see, honestly, if you see a package, I mentioned this earlier, that’s being downloaded 13 million times a week and used around the world, you can pretty well trust that application. You can pretty well trust that library, and you’ll know that any issues with it have been reported or are being worked on and are being fixed. And you said that NPM also audits the packages? Yes. And NPM also provides a tool which tracks all of the open vulnerabilities and bugs on a particular package, and so it’ll actually warn you when you install something that has open issues. Okay, great. All right, thanks.

Now, I apologize. I know we’re at the top of the hour now, and I want to be respectful of everybody’s time. There are some other questions that we’ve gotten in the Q&A section, so we will send out the questions and the answers to those questions to all of the attendees. We’ve also recorded this, so if you’d like a recording of the webinar, you can request that as well, and we’ll be sending out an email with instructions for that. And if you’d like to join us for our next webinar, you can go to our website, www.eradani.com, and sign up for our webinar, which next week will be on choosing the appropriate languages or combination of languages for doing open source development on your IBM iOS. So I want to just thank everybody so much for attending today, and we look forward to seeing you at our next webinar. And thank you, Jesse, for participating. No problem. Thanks for having me. Great. Thank you, everyone. And we will be sending out the link to the recording and a copy of the slides.