NEWS
開発と開発環境のモダナイゼーション 開発と開発環境のモダナイゼーション
2024.07.11

【開発モダナイゼーション】第18回「オープンソース・ソリューションで、IBM i をモダナイズする」

【開発モダナイゼーション】第18回「オープンソース・ソリューションで、IBM i をモダナイズする」

今やオープンソース・ソフトウェアは現代的なアプリケーション開発に欠かせない存在ですが、その活用に未だに消極的なIBM i ユーザーが多いことも事実です。今回は、IBM i 利用企業がオープンソース・ソフトウェアを活用することをためらわせている要因と、その克服法に関するインタビューの抄訳をお届けします。(編集部)

2024年1月2日 チャーリー・グアリーノ

オープンソースの受け入れを渋ったままでいるIBM i 利用企業のために、IBMのウェイン・バウワーズ氏がIBM i でできる事と前に進む方法を説明します。


チャーリー・グアリーノ(以下、チャーリーと略記します):
今日のゲストは、IBMのウェイン・バウワーズ氏です。彼はIBM i の本拠地であるミネソタ州のロチェスターに拠点があるグローバル・サポート・センターで、IBM i のソフトウェア・エンジニアをしています。私は長年にわたりカンファレンスで講師を務めており、バウワーズ氏とはカンファレンスの場で出会いました。彼のセッションは、いつも最も充実したものであり、彼のセッションの一つ一つが驚くべき功績です。

ウェイン・バウワーズ(以下、ウェインと略記します):
ありがとう、チャーリー。今日はあなたと一緒で嬉しいです。

チャーリー:
今日、あなたと話したい話題はオープンソースです。

特に、私達のプラットフォームであるIBM i の開発者は、オープンソースに関わりたいと思っているし、その必要があることを理解していますが、何から始めたら良いかが分からないのでしょう。一部の人は、オープンソースは少し敷居が高いとすら感じているかもしれません。

今日は、神話のように信じこまれている誤解の一部を一掃し、オープンソースに取り組むための明確なロードマップを提供したいと考えています。

ウェイン:
話の導入として、とても良い視点ですね。

新しいテクノロジーを使用するアプリケーションの開発またはモダナイゼーションを検討している開発者にとって、調べる場所がたくさんあることが、オープンソースの特長の1つです。 オープンソースの場合、オープンなコミュニティーが存在しているので、コンパイラーや開発環境のサポートを受けるために特定のソフトウェア・ベンダーに行く必要はありません。 コミュニティーにアクセスすれば、他の関連コミュニティーやテクノロジーを見つけられますし、YouTubeの映像やポッドキャストを用いた無料のオンライン・クラスでテクノロジーを学び始められます。

IBM i の場合、システム管理者、CIO、AS/400時代から長年コミュニティーの一員である IBM i のベテランたちも、オープンソースは苦労している分野だと私は見ています。そもそも、IBM i のシステムにオープンソース・ソフトウェアを導入するというアイデアそのものと、どのようにオープンソース・ソフトウェアに取り組んで、どう管理するかを検討すること自体が、実はハードルになっているのではないでしょうか。私には、IBM i のベテランたちだけでなく開発チームさえもが、オープンソースのアプリケーションの導入やオープンソースを用いたモダナイズの妨げになっているように見えるのです。

チャーリー:
彼らが認識しているハードルは、どのようなものだと思いますか? そして、彼らがそこにあると信じこんでいるハードルには、どのようなものがあると思いますか?

ウェイン:
良い質問です。私達が彼らの環境で目にする全てがハードルであり、それぞれのハードルは高さが異なります。例えば、セキュリティーは高いハードルです。セキュリティーに関しては、私達はIBM i が業界で最も安全なオペレーティングシステムおよびプラットフォームであることに、IBM i コミュニティーとして依存しています。

しかし、少なくとも現時点でおそらく最も高いハードルは、単に環境が異なるということです。詳しく説明しましょう。

オープンソース・テクノロジーがIBM i に登場した歴史を少し見てみましょう。PHPを IBM i で利用できるようにしたのがその始まりであると言えると思います。PHPを利用可能にする際は、ライセンスプログラム製品がありPTFを取得できるなど、IBM i 上の別のアプリケーションとほぼ同じように行えました。

第2段階に進んでIBM i 上の他のテクノロジーを拡張したいと考えたとき、次のテクノロジーの候補にはPython、Node.jsなどがありましたが、私達は標準的なIBM i インフラストラクチャーに従いました。 私達はIBM i に搭載する5733-OPS(IBM i オープンソース・ソリューション)を作成し、そのライセンス・プログラム製品用のオプション群により様々なオープンソース・テクノロジーを導入しました。そして、例えばNode.js 8を廃棄するつもりでその更新版を公開したいときは、それをシステム上のNode.jsに適用するために5733-OPSのPTFを発行します。確かにテクノロジーは新しいものですが、そのインフラストラクチャーはソフトウェア・システム管理者にとって馴染みのあるものでした。しかし、オープン環境で実行されるこれらのテクノロジーをライセンス・プログラム製品やPTFに組み込むには多くの作業を行う必要があったため、私達は少し尻込みしました。

次の波は、これらのテクノロジーをIBM i 固有のライセンス・プログラム製品用のPTFインフラストラクチャーに無理やり組み込むのではなく、業界標準のインフラストラクチャーでこれらのオープンソース・パッケージを導入、更新し、IBM i で利用可能にすることです。その基盤となるインフラストラクチャーでは、RPMおよびYUMと呼ばれるテクノロジーが使用されています。これらのテクノロジーは、オープンソースのようなパッケージを取得および更新し、システムに導入するための業界標準テクノロジーです。RPMおよびYUMを採用することで、オープンソース・パッケージの導入手法を急速に変化させることができたので、私達のチームにとって非常に効率的でした。例えば、Node.jsの場合、Node.js 8、Node.js 10、Node.js 12などの重複があり、インフラストラクチャーで利用できるパッケージは 300~400を遥かに超えていますが、現在では20個未満の異なるパッケージで5733-OPSを達成できたと思います。

チャーリー:
RPMとYUMは業界で非常に明確に定義されており、よく利用され、受け入れられています。ですから、誰でもこれらのツールの使用方法に関する多くの情報を見つけられるはずです。

ウェイン:
そうですね。クックブックやツールキット等々、インフラストラクチャーがコマンドを活用してこの環境を管理する方法を説明するものはたくさんあります。IBMは、それに加えて、RPMとYUM上にGUIを構築するオープンソース・パッケージ管理と呼ばれるツールをIBM i Access Client Solutions (ACS)ユーティリティーに追加することで、さらに容易にしました。シェル・コマンドラインが苦手な方は、GUIインターフェースが好きなのではないでしょうか? IBMは、RPMとYUMを管理するのに役立つものを利用可能にしているのです。

チャーリー:
オープンソース・パッケージがメインメニューとメインパネルにあることは知っています。とても簡単です。クリックするだけでリストに表示され、管理は非常に簡単です。

話題を少し変えましょう。今、オープンソースのパッケージ管理ツールそのものについて話して、パッケージ管理の話に入り、バージョンなど具体的に何を意味するのかという話になります。 今見ているリストには異なるバージョンやリポジトリなどが存在します。画面を開くと、パッケージ、バージョンそしてリポジトリという3つの列が表示されます。これらは、私達にとって何を意味するのでしょうか?

ウェイン:
良い質問です。最初に、もう1つのレベルに目を向けて、そこでこれらのパッケージの3つの異なるリストがどのように提供されるかを説明したいと思います。

1つ目は、システムに既にインストールされているパッケージです。したがって、これらは既にシステム上にあり、利用可能です。

次は、利用可能な更新です。これは、現在インストールされているパッケージを取得して比較し、利用可能なパッケージについてだけ新しいバージョンがあるかどうかを調べます。したがって、そこには所有しているパッケージの新しいバージョンだけが表示されます。

では、バージョン列はどのような意味を持つのでしょうか。現在、私のシステムの1つにインストールされているバージョン7.76.1-2は、curlコミュニティーによって決定されたバージョンです。それらのビルドを開発し、利用可能にするオープンソース・コミュニティーがそのバージョンを決定しました。したがって、Curl 7.76とCurl 7.77、または 7.76-1と1-2の違いを知りたい場合は、curlコミュニティーにアクセスします。そのバージョンで何が違うのか、「7.76 を使用するべきでない理由はあるのか?」という視点でコミュニティーの情報に目を向けます。最終的に、特定のバージョンが何を意味するかについての理解が得られるのはコミュニティーからです。なぜならば、オープンソースのパッケージのバージョンを決定するのはコミュニティーであり、IBMではないからです。

チャーリー:
私が企業にいて、オープンソースを活用したいと決断したとします。その理由は、従来のRPG/COBOL環境で利用できる機能よりも豊富な機能を使用して、アプリケーションの拡張を開始したいからです。それが主な理由であり、ここでの主な推進力の一つですよね?

ウェイン:
ええ、主な推進力の1つは、オープンソース・テクノロジーを活用して、うまく機能する新しい方法が追加できることです。私達は、業界やIBM iコミュニティーで活動するベンダーを愛していますが、オープンソース・テクノロジーに注目する理由があります。オープンソース・テクノロジーのいくつかの機能をIBM i 上のビジネス・アプリケーションで活用したり追加できれば、素晴らしいことができるでしょう。

チャーリー:
現在検討している特定のプロジェクトやパッケージがあり、それを使い始めたい、あるいは試してみたいと思っている場合、お客様との仕事の中で遭遇する可能性のある典型的かつ一般的な課題は何でしょうか。

ウェイン:
2つの異なるレベルがあります。私が向かっている方向は、オープンソース・テクノロジーをIBM iでもっと利用できるようにすることですが、開発者の観点から見るとコミュニティーです。

現在は製品の責任者がいて、コードをチェックして、明らかな脆弱性などが組み込まれていないことを確認していますが、そのような作業はクラウドソーシングであり、コミュニティー環境です。クラウドソーシングされるので、購入したベンダーの所に行って、「何がありますか?」「文書はどこにありますか?」「 これのマニュアルはどこにありますか?」 と言うべきではありません。つまり、交流できるコミュニティーを探したり、オンラインでもっと利用できるリソースを見つける必要があります。現在、学習に重点を置いている人々が、これらのテクノロジー、特に一般的なテクノロジーの学習モジュールを提供することで、オープンソース・テクノロジーの活用が検討可能な状況を醸成しています。

話をシステム管理者に戻しましょう。繰り返しますが、私が気付いたハードルは開発コミュニティーです。オープンソース・テクノロジーをIBM i に導入するために、システム管理者だけでなくCIOとも話す必要があるでしょう。

私はPythonベース、Node.jsベースなど、オープンソース・ベースのプロジェクトをIBM i にデプロイしたいと考えています。このようなオープンソース・ベースのプロジェクトはハードルの一つです。IBM i 固有のライセンス・プログラム製品との違いや環境の管理方法と、オープンソースのパッケージをIBMから入手し自社システムに導入するためのインフラストラクチャーがどうなっているかを理解可能とすることが求められます。そして、そこには様々なハードルがあります。

チャーリー:
既に触れましたが、そのハードルの1つはセキュリティーです。ある程度のレベルのセキュリティーの話題に触れること無しに、テクノロジーに関する会話を行うことはほぼ不可能でしょう。オープンソースの環境では、明らかにある程度のレベルでセキュリティーにも対処する必要があります。では、誰かが抱くかもしれない基本的なセキュリティー上の懸念にはどのようなものがあり、その懸念を軽減するにはどうすればよいでしょうか?

ウェイン:
実際のパッケージ、実際のテクノロジー自体について少し話しましょう。繰り返しますが、オープンソース・ソリューションはビジネスレベルで使用されており、業界全体で使用されています。たとえ疑問があっても、オープンソース・ソリューションはコミュニティーによって作成されます。そして、オープンソース・コミュニティーでは、一般的に適切にソリューションは管理されています。では、オープンソースのテクノロジーがシステムに本質的にダメージを与えないと信頼するにはどうすれば良いでしょう? 

私達がIBM i で利用できるようにしているものは、バージョンに組み込まれる前に、通常はコードがチェックされ、ピアレビューなどが行われ、適切に管理されています。一方、一般的には、コミュニティーやテクノロジーを検索して見つけ、コミュニティーが提供するオープンソース・ソリューションを利用可能にする方法にも慣れていただきたいです。

オープンソースのパッケージをシステムに置くことで、IBM i にマルウェアをインストールしようとしているわけではありません。しかし、世の中には脆弱性を晒す新しい方法を見つけようとしている悪い人達もいますし、オープンソースのテクノロジーにも脆弱性はあります。

ですから、IBM i にオープンソース・テクノロジーを導入することにした場合、やるべきことの1つはその脆弱性をチェックするためにある程度の責任を負うことです。

更新情報を確認し、これをシステム上のPythonまたはCurlに適用する必要があるか判断してください。新しい機能が追加されているだけで、重大なCVE脆弱性はまったく解決されていないかを確認する必要はありません。しかし、より高いCVE脆弱性があるものがあります。

次に、IBM iでそのパッケージを更新して、そのテクノロジーのより高いレベルに到達し、セキュリティー上の懸念に対処する必要があります。パッケージ自体も同様です。システムの観点からよく目にするのは、IBMのリポジトリーからオープンソース・パッケージを取得してIBM iで使用可能にする方法が、限定的かもしれませんがあるレベルのIBM i をデフォルトとして基礎にしていることです。

IBM Webサイトに対してhttpsセキュアポート443接続を確立し、その.rpmファイルをIBM iにダウンロードしてインストールできるようにするための接続機能があります。また、一部のお客様ではパッケージをダウンロードするために、IBM i からIBM Webサーバーへの暗号化されたhttps接続であるポート443を開いて仕事をすることが可能で、そのポートを開くことがセキュリティーの範囲内に収まることもあります。

しかし、他のお客様は、「いや、私のIBM i はいかなる方法、形状、形態であってもインターネットに接続するつもりはない」と考えています。そこで、そのようなお客様のために、httpプロキシプロバイダーとして動作するPC上のオープンソース・パッケージ管理ユーティリティーをACSに組み込みました。こうして、PC上のACSはインターネットに接続してパッケージをダウンロードします。プロキシ接続を開くだけで、パッケージのダウンロードはIBM i へのssh接続を介してPC経由でIBM i に直接行われます。PCはWebサイトへのhttpセキュア接続を確立して製品をダウンロードできるので、通常はこれらの問題のほとんどが解決されます。

チャーリー:
そして、今日のほとんどの企業は実際にsshを実行しています。それはもう議論の余地はありませんね?

ウェイン:
いいえ、sshを使っていない人もいます。しかし、ほとんどの人にとってIBM i 上でsshデーモンを起動して実行するのは大変なことではありません。これは、長い間IBM i 上の一連のTCP/IPアプリケーションの一部として組み込まれているので、通常は決して高いハードルではありません。

チャーリー:
既にこの道を進んで実装に成功しているお客様を探していて、オープンソース・テクノロジーの採用へのロードマップについてインスピレーションや別の視点を得たいと思っている人は、どこに行けばよいでしょうか。多くの企業が既にこれを行っていますが、これに慣れていない人が良い事例を見つけるにはどこに行けばよいでしょうか?

ウェイン:
IBM iのオープンソース・リソースWebサイトがあり、そこにはオープンソース・テクノロジーの採用を開始するための素晴らしい情報がたくさんあります。Node.js、Python、Rubyなどの最も一般的なテクノロジーに関する役立つIBM i 関連の資料がいくつかありますが、さらに下に進むと利用可能なIBM i のお客様事例があります。例えば、Node.jsを使用して Amazon Alexaと統合するお客様の事例です。

より詳細なケーススタディも用意されており、IBM iコミュニティーの他の友人達が、世の中にあるそれらのソリューションを手に入れ、これらのオープンソース・テクノロジーを活用し、ビジネスニーズやビジネス上の問題を解決するためにどのような取り組みを行っているかを確認できます。

チャーリー:
議論の最初に、確かにあなたがRiverやGit、さらにはSlackなどの他のコミュニティーについて述べたことは理解しています。

ウェイン:
そうです。あなたがアクセスできる同じWebページで利用でき、同じWebサイト上にコミュニティー・エリアがあります。RiverにはIBM i オープンソース・チャットが、SlackにはIBM i コミュニティーSlackチャネルがあり、そこに参加できます。これらはこのGitHub内でのみ公開されている場所です。IBM i でのオープンソース・テクノロジーの実装または活用に関する問題を報告できる問題エリアがあり、一部の開発者を含むIBM i オープンソース・コミュニティーのメンバーがそのGitHubコミュニティーで対応し、コミュニケーションを取り、アドバイスを提供してくれます。

チャーリー:
これは本当に良いことです。私はこのような新しいテクノロジーについて議論するのが大好きです。ウェイン、最後に、前に進むためのインスピレーションやその他のことについて伝えたいことはありますか?

ウェイン:
特に私が目にする一般的なシナリオは、誰かが新しい開発者を連れてくるというものです。おそらく、彼らは全キャリアを通じてIBM i を使用してきたわけではなく、LinuxやAIXなどのバックグラウンドを持っています。オープンソース・テクノロジーを使えば、本当に素晴らしいことができるかもしれません。オープンソースを見て何ができるかを理解してください。そして、この環境に進出することを恐れないでください。

私は、オープンソースのテクノロジーを IBM i で利用できるように支援するためにここにいます。そして、私達には素晴らしい友人がいます。彼らは、これらのテクノロジーの活用を支援する次のステップに皆さんを連れて行ってくれます。コミュニティーの友人には、IBM i のオープンソース・アーキテクトであるジェシー・ゴルジンスキー氏、リアム・アレン氏、マーク・アイリッシュ氏などがいます。コミュニティーには他にも、これを受け入れるのを喜んで手伝ってくれる人々がいます。ですからこの道を進んでください。それは、あなたとあなたのビジネスが将来に向けて一歩を踏み出し、IBM i 上のアプリケーションをモダナイズするのに本当に役立つと思います。


本記事は、TechChannelの許可を得て「Modernizing IBM i With Open-Source Solutions」(2024年1月2日公開)を翻訳し、日本の読者にとって分かりやすくするために一部を更新しています。最新の技術コンテンツを英語でご覧になりたい方は、techchannel.com をご覧ください。

いいねと思ったらシェア
twitter
facebook
hatena
開発と開発環境のモダナイゼーション 目次を見る

この連載は…

開発と開発環境のモダナイゼーション
関連記事
【開発モダナイゼーション】第5回「IBM iの最新デバッグ技法<br>-RDiとサービス・エントリー・ポイントを使う-」
【開発モダナイゼーション】第5回「IBM iの最新デバッグ技法
-RDiとサービス・エントリー・ポイントを使う-」
【開発モダナイゼーション】第13回「高まる REST API の存在意義」
【開発モダナイゼーション】第13回「高まる REST API の存在意義」
【開発モダナイゼーション】第19回「IBM i の開発作業をVS Codeで!進化・拡大するCode for IBM i コミュニティー」
【開発モダナイゼーション】第19回「IBM i の開発作業をVS Codeで!進化・拡大するCode for IBM i コミュニティー」
あなたにオススメの連載
できるIBM i 温故知新編
8記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP