Part5 :IBM i開発手法のモダナイゼーション~IBM i アプリケーション開発環境をDevOps化する

IBM i アプリケーション
開発環境のDevOps化 

 
 これまで主に、ハイブリッドクラウド化・コンテナ化を目指したアプリケーション面やインフラ面でのモダナイゼーションについて論じてきたが、これらはハイブリッド・クラウド・ジャーニーを成功させ、ビジネスイノベーションを達成するための片輪、いわば50%の議論でしかない。残る片輪は、アプリケーション開発手法のモダナイゼーションである。
 
 マイクロサービス化やコンテナ化を行う根本理由は、アジャイルでCI/CDを実現し、企業活動にイノベーションを定常的に惹起することにある。たとえば従来のRPG、COBOLやJavaアプリケーションをREST化、Kubernetesコンテナ化しただけでは、アジャイルもCI/CDも実現不可能である。
 
 例外は、アマゾンのようなインターネットネイティブな企業だけである。ネットビジネス以外に何らかのコアビジネスがある場合、社内のアプリ開発ルールや文化はアジャイルでない場合がほとんどだと推測される。
 
 このような現存企業の大多数がRESTやコンテナを導入しても、CI/CDによる1~2週間サイクルのイテレーションを通じたDXは実現できないだろう。アジャイルとCI/CDを機能させるには、ウオーターフォール型に最適化された開発環境をアジャイル型に変更することが必須である。さらに言えば、IT部門の意識改革、人材育成まで踏み込む必要がある。
 
 IBM iアプリケーション開発環境をDevOps化する際、2つの大きな障害が存在する。それは5250開発環境とRPG ⅢなどのOPMプログラムである(図表1)。
 
 
 
 IBM iをDevOps化してCI/CD、アジャイルを実現するには、5250開発環境をRDi(Rational Developer for i)などの標準的な開発環境に、RPG Ⅲ(OPMプログラム)をILEやJava、OSS等に改める必要がある。そうすることで初めてオープン系やクラウドと完全に共通なCI/CDサイクル、DevOps標準に準拠することが可能になる。
 
 図表2図表3に、目指すべきIBM i 開発環境の模式図を2例記載する。これはRPG、COBOLだけでなく、Java、OSSなどあらゆる開発言語に共通したモデルである。
 
 
 
 
 今までのIBM iネイティブな開発環境では、IBM i上のソース物理ファイル(SRCPF)を編集し、これをソースマスタとして扱ってきた。SRCPFというIBM i固有環境では、たとえばGitなど現代の標準的なソースコードリポジトリとシームレスに運用できない。
 
 だがILEであれば、IFSに配置したテキストファイルからコンパイルが可能で、SRCPFをコードマスタとして利用する必然性をなくせる。5250環境も同様で、エミュレータ経由でソース編集をするかぎり、ソースコードのバージョン管理やビルドの自動化などアジャイル、CI/CDでの必須機能の利用は困難になる。
 
 前述したGit、RTC iプロジェクトの2つの環境を前提とした、モダナイズされたRPG、COBOLでのIBM i アプリケーション開発の流れを図表4に示す。
 
 
 
 IBM i アプリケーションのソース開発はRTC iプロジェクトまたはOrionをベースとし、PCローカルかIBM i(または他の)コードサーバー上にコピーしたソースを編集し、IBM iにプッシュしてコンパイルを実行する。Orionの場合はsshでIBM i接続して、コンパイルする必要がある。
 
 RDiにはiプロジェクトのほかにもう1つ、IBM iのプログラム開発パースペクティブがある(図表5)。
 
 
 
 RSE(リモートシステムエクスプローラー)がそれで、5250開発環境(SEU、PDM、SDAなど)をEclipse(RDi)に移植したものである。
 
 開発方法も同様で、5250端末の代わりにRDiを使うイメージになる。iプロジェクトと異なり、IBM i上のソースコード(SRCPF、テキストソース)を編集する形式となる。従来の5250開発環境からの移行を想定した開発環境である。
 
 
 

 

著者|

佐々木 幹雄

 
日本アイ・ビー・エム株式会社
システム事業本部 Power Systemsテクニカル・サポート
コンサルタントITスペシャリスト
 
AS/400誕生とほぼ同時期からIT業界に関わる。IBM i やPC、ネットワーク機器など一般企業のIT基盤の提案・構築、アーキテクトなどを幅広く経験。IBM i エバンジェリストとしての活動もある。
 

 

・・・・・・・・

特集|IBM iのマイクロサービス化

 
 
 
 
 
 
 
・・・・・・・・
 

Column 1 OpenShiftかKubernetesか
Column 2 どこでもKubernetes
Column 3 ミドルウェアのコンテナ化対応
Column 4 SCNは戦略策定のためのフレームワーク
Column 5 ハイブリッドクラウド移行(中期)計画を作る
Column 6 アジャイルはSoEだけのものか?
Column 7 IBM iサービスとDb2 for iサービス
Column 8 IBM iのクラウドサービス
Column 9 コンテナテクノロジーを導入しても、イノベーションは起きない

[i Magazine 2020 Spring掲載]