進化を続けるIBMのメインフレーム。 ビジネス要件への即応性を加速し、サステナブルなITを実現する「モダナイゼーション」について、アプリケーション開発の観点から解説します。
IBM zSystems [
1] は現在も世界中のお客様の基幹業務を支えているメインフレームです。本稿では IBM zSystems をモダナイゼーションし、サステナブルな IT に位置付けることで、お客様のデジタル・トランスフォーメーション(Digital Transformation、以下DX)を推進する方法を論じます。今号は
全5回シリーズの第2回目として、IBM zSystemsを活用したDX推進をアプリケーション開発の領域に着目して、サステナビリティを高めるために考慮すべきことを説明します。アプリケーション開発に使うツール群に加えて、開発プロセスも含めた広義のアプリケーション開発モダナイゼーションの必要性と対策について述べます。
アプリケーション開発の即応性を妨げる課題
近年、システムのビジネス要件に対する即応性の高さが求められます。メインフレームで稼働する基幹システムも例外ではありません。即応性に加えてお客様のDX実現のためには、これまでの開発手法や活用するツールのモダナイゼーションが必要となっています。
実際に、お客様から即応性の観点でリリース・サイクル短縮の相談をいただくことがあります。リリース・サイクル短縮への対策を検討する際は、過去に実施したプロジェクトの実績工数や現在の保守工数をベースに、どの開発工程にボトルネックがあるのかを評価します。評価結果を深掘りすると、二つの共通した課題に気づきます。一つ目は、長年受け継がれている固定化された開発プロセスとその作業手順です。二つ目は、システムを熟知するベテラン有識者への依存度の高さです。
10〜20年前のシステム構築時に作成され、それ以降まったく変更が加わっていない固定化された開発プロセスは問題です。変更されず長く使われているということは、確立された方法であり、信頼性が高いと言えるでしょう。しかし、その開発プロセスや開発作業手順を引き継いできた開発チームとしては、利用しているプロセスに無駄はないのか、より効率的な方法はないのか、新しい視点で継続的な検討が必要です。システム構築当時の技術では最適な方法も、今日の最新技術を用いることで、より効果的な開発プロセスに改善できる可能性があります。それがサステナブルな開発保守手法であると考えます。
また、ベテラン有識者への依存度が高いことは、組織内で計画的に後継者が育っていないことを示唆しています。これまで長い年月をかけて培われたスキルや経験は何物にも変え難いものです。しかし、多くのベテラン有識者が定年などを理由に遠くない将来には開発現場を離れることになるでしょう。ビジネス環境の変化が激しい昨今で、これから新しくz/OS®アプリケーションに携わる開発者の成長を十数年もの月日をかけて待つことは出来ません。今こそベテラン有識者の知見を個人のものに留めず、培ったスキルを用いて新しい開発プロセスの構築を共創することが鍵となるでしょう。
DevOpsを取り入れた開発プロセスの改善若手社員やまだ経験の浅い後輩に対して、先輩社員が自ら磨き上げたスキルや経験を基にした後進の育成は、サステナブルなITの基礎となります。経験に基づく深い知識は、継続的なアプリケーション開発に安定感を与えます。新しい技術の適用は、開発者に無限の想像力と飛躍的な機動性をもたらします。よって、新旧の技術やスキルを融合することにより、開発プロセスを発展させ、開発保守の即応性を改善し、お客様がDXを推進することを可能にします。
即応性を高めるために、開発と運用のプロセスを一体化したDevOps [
2] という手法を採用する必要があります。その実践には、継続的インテグレーション/継続的デリバリー(Continuous Integration/Continuous Delivery :以下、CI/CD)のアプローチが有効です。CI/CDを実現するためのクラウド・ネイティブなアプリケーション開発を推進することで、開発保守の即時性を向上させることができます。また、C I/CDを一連
のプロセスとして自動化する基盤として、CI/CDパイプラインがあります。(
図1参照)
分散系の開発では、ビジネス環境の変化に対応するため、テスト自動化やアジャイル開発手法の適用など、スピードを重要視した取り組みが定着しています。一方、z/OSアプリケーション開発では、分割されていない1つの大きなモジュールで構成されるモノリシックなアプリケーションが多く存在するため、これまでは CI/CD の適用は難しいと考えられていました。しかし、昨今ではz/OSアプリケーションの疎結合化やマイクロサービス化が進んでいます。さらに、既存メインフレーム資産を活用した API 連携も金融および流通のお客様で採用事例が増えてきました。これにより、z/OSアプリケーション開発に対してもCI/CDへの対応が可能となってきたと言えるでしょう。
CI/CDによるアプリケーション開発の事例と効果即応性を強化するために、アプリケーション開発のモダナイゼーションにおいて、まず我々が認識しなければいけない事があります。それは、メインフレーム環境でも分散系プラットフォームと同様の開発ツールチェーンを使って、開発生産性向上を実現できるという事実です。特に海外のお客様を中心に、メインレーム・アプリケーションに対してCI/CDパイプラインの構築といった開発スタイルのトランスフォーメーションが加速しています。欧州メガバンクの一つであるBNP Paribas様は、アプリケーション開発のやり方を変革することで、コスト削減と高品質な開発を両立しました。[
3] また、トルコの金融サービス会社 Garanti BBVA様は、継続的インテグレーションの取り組みを通じて、開発者の生産性を最大25%向上させ、コーディングおよびテスト工程の大幅な短縮を実現しました[
4]。日本でも近年同様の取り組みにチャレンジするお客様が増えてきています。このような動向は、単に既存のアプリケーション開発を効率化するだけにとどまりません。メインフレームでのアプリケーション開発経験が浅い技術者に対しても、COBOL、PL/I を主体とした開発プロジェクトに参画する際の障壁を低減する効果があります。
モダナイゼーションを推進する開発ソリューションIBM は、2022年3月に「IBM Z and Cloud Modernization Stack」[
5] を発表しました。このソリューションは、IBM zSystems 上において柔軟で統合されたアプリケーションのモダナイゼーションと IT 自動化を実現し、ビジネス変化への即応性向上を支援します。主に次の4つの特長
(
図2参照) を兼ね備えています。
アプリケーション分析
アプリケーションをモダナイズする際にまず実施すべき事は、現状を「知る」ということです。「知る」という意味は、これまでの開発経験やアプリケーション構築時に作成した仕様書だけに頼るということではありません。今現在稼働しているアプリケーションのコードからアプリケーションの振る舞いを正しく把握するということです。アプリケーションの依存関係を可視化することで、開発者は客観的な視点からの分析アプローチが可能となります。これにより、アプリケーション品質の向上および影響分析作業のスピードアップにも繋がります。
API の作成とデプロイ
基幹システムとユーザーアプリケーションの接続性は、お客様のDX戦略を推進する上で重要です。基幹システムのデータをどのようにしてオープン言語で作成されたアプリケーションから連携するかが鍵となります。z/OS 上で稼働する資産に対しても、開発者は OpenAPI V3 仕様 [
6] に基づいた API 開発を迅速かつ継続的な作業が可能となります。
クラウド・ネイティブ開発
開発者が最も長い時間向き合うことになる開発ツールは、常に最新技術を取り込むことが推奨されます。IBM zSystems も例外ではなく、z/OS上で稼働するアプリケーションのソフトウェア開発に関する方法論やツールは着実に進化しています。2018 年に発表されたメインフレーム初のオープンソースプロジェクトである Zowe™ [
7] が良い例です。Zowe は、オープンなテクノロジーへのアプローチにより新しい価値を提供しました。さらに、z/OSアプリケーションの開発作業においても ライブラリ管理システムとして Git を活用する事例が増加しています。IBM zSystems がよりオープンなツールとの接続性や連動性を重要視している表れです。
z/OS 向けに標準化された IT 自動化
可搬性や俊敏性の面で利点のあるKubernetes [
8] をベースとしたコンテナ・プラットフォームのOpenShift® [
9] を活用し、開発およびテスト用の z/OS 環境がセルフ・プロビジョニング可能となりました。これにより、従来環境構築時に必要とされた IBM zSystems 特有の知識が軽減されます。また、開発環境提供までのスピードアップを実現します。開発者にセルフ・プロビジョニングという柔軟な選択肢を与えることで、並行開発実現や生産性向上を支援します。さらに、「Wazi as a Service (Wazi aaS)」[
10] として、IBM Cloud サービスによる z/OS テスト環境の提供も2022年6月30日から始まりました。Wazi aaS は、IBM Cloudで管理された基盤環境を用いて、開発者がすぐに利用できるz/OS 開発およびテスト環境を提供します。
プロセスから考える継続的な組織力強化
CI / CD パイプラインは、メインフレーム・モダナイゼーションの中核的な役割を担います。このパイプラインを構成する代表的な要素として、IBM Dependency Based Build (DBB) [
11] や IBM UrbanCode® Deploy (UCD) [
12] が挙げられます。z/OS上でのアプリケーション開発に対して、自動的にビルドやテストを行い、生成した資源をターゲット・システムにデプロイすることを実現します。特に DBB は、これまで JCL で行っていた様々なコンパイル処理などを Groovy スクリプト言語に置き換えて実行できます。つまり、柔軟な処理記述が行えるだけでなく、オープン言語の活用により、z/OS特有の開発言語に対するスキルの偏りを軽減し、開発品質の確保にも役立ちます。
さらに、Git や Jenkins とも連携可能であり、開発生産性向上の観点でより一層の価値を高めることができます[
13]。 ただし、ツールがあるというだけでは期待する効果は限定的です。それらを扱う「人」も一緒に成長しなければ意味がありません。数年前まではまだ認知されていなかったツールやソリューションが今では広く活用されているケースがあります。技術の進歩に対して、継続的に情報収集を行い、取り組み検討することが今後の組織力を高めるために重要です。それはプロセスを考えることから始まります。
まとめ本稿では、アプリケーション開発のモダナイゼーションについて、ビジネス要件への即応性向上を阻害する要因とその対応策について、アプリケーション開発とプロセスの観点から論じました。DevOps実践のためにCI/CDアプローチを取り入れることで、固定化された開発プロセスの改善やベテラン有識者への依存度を低減することができます。また、オープンな技術やツールを活用して、メインフレームと分散プラットフォーム間の人材交流を活性化させるなど、安定したサステナブルなITの提供も実現してみてはいかがでしょうか。
最後に、メインフレームのモダナイゼーションをご検討のお客様に「IBM Z & Cloud モダナイゼーション共創センター」 [
14] をご紹介します。当センターは、幅広いツール、研修、および、エコシステム・パートナーとの窓口を提供します。領域別の専門知識と技術など包括的なガイダンスを用いて、お客様のアプリケーション、データ、および、プロセスのモダナイゼーションを支援します。本稿で述べたアプリケー
ション開発を始め、多岐にわたる情報を公開しております。こちらも併せてご参照いただけましたら幸いです。
IBM z16 シリーズ発行予定 (全5回)IBM z16 によるイノベーションとDX推進の詳細については、以下のシリーズでご紹介します。ぜひご覧ください。
1.
z16で日本のITをサステナブルに 4月発行
2.
CI/CDによるアプリケーション開発のモダナイゼーション 10月発行
3.
レジリエンシーにおけるIBM zSystemsのイノベーション 11月発行
4.
AIOpsを利用したIBM zSystemsの運用改善 12月発行予定
5.
z16によるAIを利用した基幹系処理のイノベーション 12月発行
[参考文献]
[1] IBM: IBM Z,
https://www.ibm.com/jp-ja/it-infrastructure/z[2] IBM: Enterprise DevOps,
https://www.ibm.com/jp-ja/it-infrastructure/z/capabilities/enterprise-devops[3] IBM: How can banks enable rapid product development?, BNP Paribas,
https://www.ibm.com/case-studies/bnp-paribas-systems-software-z[4] IBM: unleashing Innovation, Garanti BBVA,
https://www.ibm.com/case-studies/garanti-bbva/[5] IBM: IBM Z and Cloud Modernization Stack,
https://www.ibm.com/jp-ja/products/z-and-cloud-modernization-stack[6] OpenAPI V3 仕様,
https://swagger.io/specification/[7] Zowe,
https://www.ibm.com/blogs/systems/jp-ja/open-source-project-zowe-fast-simple-familiar-zos-development/[8] Kubernetes:
https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/[9] Red Hat: OpenShift,
https://www.redhat.com/ja/technologies/cloud-computing/openshift[10] IBM: Wazi as a Service,
https://www.ibm.com/cloud/wazi-as-a-service[11] IBM: IBM Dependency Based Build,
https://www.ibm.com/products/dependency-based-build[12] IBM: IBM UrbanCode,
https://www.ibm.com/jp-ja/cloud/urbancode[13] IBM: Build a pipeline with GitLab CI, IBM Dependency Based Build, and IBM UrbanCode Deploy,
https://developer.ibm.com/tutorials/build-a-pipeline-with-gitlab-ci-dbb-and-ucd/[14] IBM: IBM Z & Cloud モダナイゼーション共創センター,
https://www.ibm.com/community/z-and-cloud/ja/IBM、IBM ロゴ、z/OS、UrbanCode は、 米国やその他の国におけるInternational Business Machines Corporationの商標または登録商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、ibm.com/trademarkをご覧ください。
ZoweはLinux Foundationの商標です。
OpenShiftは、Red Hat Inc.または子会社の米国およびその他の国における商標または登録商標です。
*ProVISION 記事一覧は
こちらから