2024.01.17
前回は、COBOL と Java, .NET 連携によるモダナイゼーションについて紹介しました。今回は、インフラストラクチャの選択肢の1つであるクラウドについて、COBOL の利用方法を交えながら紹介していきます。
まずは、クラウド利用のメリットを列挙してみましょう。
システムの運用管理に携わった経験をお持ちの方には、非常に魅力的な項目が並んでいるのではないでしょうか。定期的なパッチ適用やディスク交換などのハードウェア保守に加え、要求される処理が想定以上に増加した場合のシステム拡張など、これまで専門知識を持つ運用担当者が手動で行っていた作業を、クラウドを利用することで完全に廃止、もしくは、作業量を軽減できます。また、構成の動的変更などを自動化することで、より運用部門の負担を減らしつつ、インフラストラクチャにかかるコストを最適化することもできます。もちろん、クラウドプロバイダーが提示する稼働率をそのまま鵜呑みにした構成を運用環境とするのは問題です。過去には、大手クラウドプロバイダーの障害により、多くのシステムやサービスの一時停止を余儀なくされたことがありました。クラウドを過信することなく、クラウド上で適切な構成を採用することが、COBOL に限らず、どのようなシステムにおいても重要です。
続いて、クラウドプロバイダーが提供するサービスについて、ぱっと思いつくものを挙げてみますと、仮想環境、リポジトリ、サーバーレス関数、コンテナ型仮想化、マネージドコンテナオーケストレーション、機械学習などがあります。これらの列挙したサービスについて、少し内容を確認していきましょう。
クラウド提供サービスの中で最も知られているものではないでしょうか。管理画面上から、CPU、メモリなどといったリソースを選択することで、高速に仮想環境を立ち上げることができます。また、スナップショットの作成機能を利用することで、環境全体の容易なバックアップや複製も容易に行えます。
プログラムファイルをはじめとしたリソースファイルが様々なフォルダーにあり、現在のリリースバージョンがどれか分からない、以前の修正内容の確認ができないなど、リソース管理に関連した問題に直面したことはないでしょうか。これらの問題は、時間の経過により、さらに状況が悪化するため、早急な解決が必要です。また、デジタルトランスフォーメーション(DX)で求められるような、変化に対する迅速な対応を行うためには、最新プログラムの品質を確保し続けること、すなわち、常にテストが実施済みの状態を維持し続けることが重要です。クラウドが提供するリポジトリサービスは、開発チーム全体の共同作業を効率化させる機能を提供しています。
名前の通り、サーバーを事前に準備する必要がなく、あらかじめ登録した関数を実行できるサービスです。これまでの構成では、サーバーをホスト、もしくは、仮想環境に構築した上で処理を実行していました。ここで、この処理が不定期、かつ頻繁に実行されないものだった場合を考えてみましょう。不定期な実行要求に備え、常時サーバーを立ち上げていると、実行要求待ちの時間にかかるコストが無駄になります。しかし、実行要求を受け付けてからサーバーを立ち上げたのでは迅速な実行が行えません。そこで、これらの構成の中間となるサーバーレス関数の出番です。クラウドプロバイダーがサーバーレス関数を実行するサーバーを自動的に選択し、要求された処理を実行します。この際、クラウドプロバイダーではサーバーを事前に起動した状態で待機しているため、手動でサーバーを起動する必要はありません。
こちらも最近非常に多く耳にする用語の一つですね。従来の仮想化技術であるハイパーバイザー型と異なり、ゲスト OS が仮想環境に不要なことから、高速な環境起動が特長として紹介されています。
このほかにも、ホスト OS とは独立した環境を構築し、その環境をイメージとして保存できるため、同一環境を容易に、かつ高速に再構築できることが優位点として挙げられます。コンテナ仮想環境はオーケストレーションツールと併用する形で利用されることが一般的です。
さて、オーケストレーションツール導入のメリットは何でしょうか。それは、あるべき状態を設定ファイルに定義することで、ツールが自動でその状態を構築し、維持してくれる点です。設定ファイルに状態を定義することを「宣言」とも呼ぶことから、オーケストレーションツールは宣言的アーキテクチャを採用しているといわれています。先に説明したように、コンテナ型仮想化は環境を高速に複数起動できることが特長ですが、環境を多く立ち上げてしまうと管理が非常に困難になります。1,2つであれば、手動で管理することもできるかもしれません。しかし、この数が増加していくと、手動管理は現実的ではありません。オーケストレーションツールは、負荷状況に合わせた環境の自動増減などを実施し、大幅に運用管理作業を簡略化できるツールです。しかし、多くの場合、オーケストレーションツールのインストールや運用管理を最初から行うことは非常に複雑で時間がかかる作業になります。そこで、クラウドプロバイダーは、事前にオーケストレーションツールを組み込んだサービスを提供しています。
機械学習は、COBOL から利用できないのでは?と思うかもしれません。しかし、機械学習を行う上で重要となるのはデータです。COBOL で構築された基幹システムが長年蓄積したデータをもとに機械学習を用いて受注予測を行うといった連携例が考えられます。
これまでに説明したサービスを改めて振り返ってみると、 Java, .NET, Python 言語で利用可能なものや、コンテナ型仮想化、コンテナオーケストレーションといった最新の技術を前提としていることがわかります。これらを除外してみると、仮想環境とリポジトリ管理しか残っていません。ということは、COBOL 資産に対してクラウドを利用する事のメリットは、この2つだけなのでしょうか。いえいえ、そんなことはありません。実は、現在お持ちの長く利用されている COBOL 資産も幅広いクラウド提供サービスを利用することができ、モダナイゼーションを推進できます。
ここでは、クラウドを利用した COBOL 資産のモダナイゼーション例を3つ、ご紹介します。
一般的にクラウドリフトと呼ばれる手法です。保有するサーバー機器からシステムをクラウドの仮想環境に移行することで、システムを構成するハードウェア機器や保守作業にかかるコストの削減を目的としています。
リポジトリサービスを利用し、最新のプログラムなどリソースを一元管理したうえで、開発者は IDE などの開発環境から常に最新リソースを基に開発を行い、更新をリポジトリにコミットできる環境、すなわち、Java や .NET 開発では標準な開発スタイルを COBOL 開発にも導入することができます。CI ツールを利用して、最新リソースを基にしたテストの自動実行などを行い、問題となるコードを検出、迅速に修正できる仕組みを導入することで、常時リリースに備えることができるコードベースを持つことができます。
実は、この仕組み、DX対応で求められる「変化への迅速な対応」の実現に重要な要素の1つになっています。
COBOL システムのような長年稼働している基幹システムの多くは、モノリシック、一枚岩のようなシステムとなっています。その中には重要となる再利用性の高いロジックが多く組み込まれていますが、一枚岩のシステムのままでは使い勝手がよくありません。この問題を解決する方法として、マイクロフォーカスの COBOL 製品を使用した REST や SOAP といった Web サービスでの運用方式が考えられます。このサービス化を行う方法は2つあります。1つ目は、クラウドの仮想環境上に マイクロフォーカスの COBOL 製品をインストールし、製品に付属する COBOL 専用のアプリケーションサーバー上で COBOL ロジックを実行する方法、2つ目は 、前回の記事で紹介したような Java, .NETとの連携機能を利用することで、COBOL プログラムから Java バイトコードや .NET アセンブリを生成、Java や .NET 言語と連携して COBOL ロジックを、アプリケーションサーバー上や、サーバーレス関数などで実行する方法です。
続いて、コンテナ型仮想化、オーケストレーションの利用方法を説明します。これらもまた、COBOL だから特別な対応が必要、というわけではありません。マイクロフォーカスの COBOL 製品はコンテナ型仮想化にも対応しており、コンテナ仮想環境上で COBOL ロジックを実行することができます。コンテナ仮想環境を動作させるプラットフォームであるコンテナエンジンからは、Java, .NET のコンテナと同じように見えるため、これらの言語で構築していたような、コンテナオーケストレーションを用いた宣言型アーキテクチャによる動的な構成変更の自動化といった最先端のシステム構成を COBOL システムにも導入することができるのです。
また、この記事でご紹介した以外にもCOBOL 資産で利用できるクラウド提供サービスもありますし、今後提供されるサービスもあることでしょう。クラウドの利用は、お持ちの COBOL 資産の価値を現状のシステム構成という枠から解き放ち、新たな価値を創造できる可能性を秘めているのです。
いかがでしたか。クラウドサービスはCOBOL の登場から数十年後に登場した技術であり、長年の歴史を持つ COBOL 資産には有効活用できないと思われていたかもしれません。しかし、マイクロフォーカスの COBOL 製品を使用することで、お持ちの COBOL 資産を活かしながら、クラウドが提供するメリットも享受できるようになります。
アプリケーションの中枢であるCOBOLビジネスロジックを維持し、
メインフレームからクラウドへ段階的なモダナイゼーションを実現。
54,000の代理店に利用されるミッションクリティカルな業務支援システム
クラウド移行のシステム基盤にMicro Focus Visual COBOLを採用
Visual COBOLは、最新版のCOBOL統合開発環境製品です。価値ある既存COBOL資産の最新テクノロジー環境での活用を可能にします。単一のCOBOLソースを多数のプラットフォームに展開することができるため、開発期間の短縮やコスト削減にも貢献します。