Advanced を使用したメインフレーム アプリケーションのリファクタリング

Azure Files
Azure Load Balancer
Azure SQL データベース
Azure Storage
Azure Virtual Machines

Advanced の Automated COBOL Refactoring ソリューションは、COBOL アプリケーションと、CA-Gen、CA-Telon、Natural、ADSO、およびその他のレガシ言語で記述されたアプリケーションをリファクタリングし、従来の対応するアプリケーションと機能的に同等のクラウド対応アプリケーションとデータベースを提供します。 これにより、コストが削減され、より緊密な統合が可能になり、ビジネス要件を満たすカスタマイズができるようになります。 さらに、自動テストから品質保証まで、品質やスケーラビリティに関するまったく新しい世界が開かれ、Docker や Kubernetes によるコンテナー化されたデプロイメントやオーケストレーションの恩恵を受けることもできます。

メインフレームのアーキテクチャ

以下に、自動ファクタリングを使用できるシステム例を示します。

レガシ言語のアプリケーションを含むメインフレーム システムを示すアーキテクチャの図。

ワークフロー

A. ユーザーは、TN3270、HTTP、HTTPS などのプロトコルを使用して、TCP/IP 経由で入力を提供します。

B. 入力は標準のメインフレーム プロトコルを使用して到着します。

C. バッチおよびオンライン アプリケーションによって、入力が処理されます。

D. COBOL、PL/I、アセンブラー、および互換性のある言語が、有効な環境で実行されます。

E. ファイルとデータベースによって、データ ストレージが提供されます。 データベースの種類は、階層型、ネットワーク、リレーショナルなどです。

F. サービスによってアプリケーションのためにタスクが実行されます。 一般的に利用できるサービスは、プログラム実行、I/O 操作、エラー検出、保護などです。

G. ミドルウェアおよびユーティリティ サービスは、テープ ストレージ、キュー、出力、Web サポートなどのタスクを管理します。

H. オペレーティング システムは、エンジンとそれが実行するソフトウェアとの間のインターフェイスを提供します。

I. パーティションは、個別のワークロードを実行するか、環境内で作業の種類を分離します。

Azure アーキテクチャ

これは、Azure 用にリファクターした場合の、上のシステム例のアーキテクチャです。 図中の丸で囲まれた文字は、リファクターされたソリューションがメインフレームでの対応する機能を処理する場所を示しています。

リファクタリング後の Azure 上のシステムを示すアーキテクチャの図。

このアーキテクチャの Visio ファイルをダウンロードします。

ワークフロー

  1. 入力は、通常、Azure ExpressRoute を通じてリモート クライアントからまたは他の Azure アプリケーションから送られてきます。 どちらの場合も、TCP/IP 接続は、システムに接続するための主な手段です。 Web アプリケーションへのユーザー アクセスは、TLS ポート 443 を介しています。 エンド ユーザーの再トレーニングを最小限にするために、Web アプリケーションの UI を同じままにしておくことができます。また、最新の UX フレームワークを使用して UI を更新することもできます。 Azure Bastion では仮想マシン (VM) への管理者アクセスが提供され、開かれるポートが最小限に抑えられるため、セキュリティが最大限に高められます。

  2. Azure では、アプリケーションのコンピューティング クラスターへのアクセスが Azure ロード バランサーを介して行われます。 この方法では、スケールアウト コンピューティング リソースを使用して入力の作業を処理できます。 入力に応じて、アプリケーション レベルまたはネットワーク プロトコル レベルで負荷を分散できます。

  3. Advanced では、コンテナー、VM、または Virtual Machine Scale Sets でのデプロイがサポートされています。 コンテナーと Virtual Machine Scale Sets は、VM とは異なり、迅速にスケールアウトおよびスケールインができます。 スケーリングの単位をコンテナーにシフトすると、インフラストラクチャの使用率が最適化されます。

  4. アプリケーション サーバーは、コンピューティング クラスターの入力を受け取り、Azure Cache for Redis または Remote Direct Memory Access (RDMA) を使用してアプリケーションの状態とデータを共有します。

  5. アプリケーション クラスターのデータ サービスでは、永続的なデータ ソースへの複数の接続が可能です。 使用できるデータ ソースは、次のとおりです。

    • Azure SQL Database。
    • Azure Cosmos DB。
    • Oracle や Db2 など、VM 上のデータベース。
    • Azure Databricks や Azure Data Lake などのビッグ データ リポジトリ。
    • Kafka や Azure Stream Analytics などのストリーミング データ サービス。
  6. アプリケーション サーバーは、Java クラスや COBOL プログラムなど、言語の機能に基づいて、さまざまなアプリケーション プログラムをホストします。

  7. データ サービスでは、次の組み合わせが使用されます。

    1. 高パフォーマンス ストレージ: Azure Premium SSD と Azure Ultra Disk Storage。

    2. ファイル ストレージ: Azure NetApp Files と Azure Files。

    3. 標準ストレージ: Azure Blob Storage、アーカイブ、およびバックアップ。 バックアップは、次のようにすることができます。

      1. ローカル冗長ストレージ (LRS)。
      2. ゾーン冗長ストレージ (ZRS)。
      3. geo 冗長ストレージ (GRS)。
      4. geo ゾーン冗長ストレージ (GZRS)。

      冗長の詳細については、「Azure Storage の冗長性」を参照してください。

  8. Azure PaaS (サービスとしてのプラットフォーム) データ サービスは、クラスター内の複数のコンピューティング リソースが共有できるスケーラブルで可用性の高いデータ ストレージを提供します。 これらは geo 冗長にすることもできます。

  9. Azure Data Factory は、データを取り込み、Azure 内と外部ソースの両方で、複数のデータ ソースと同期することができます。 Azure BLOB ストレージは、外部データ ソースの汎用ランディング ゾーンです。

  10. Azure Site Recovery は、VM とコンテナー クラスター コンポーネントのディザスター リカバリーを提供します。

  11. アプリケーションは、さまざまな PaaS サービスのプライベート エンドポイントに接続します。

コンポーネント

この例では、次の Azure コンポーネントを取り上げます。 これらのコンポーネントとワークフローのいくつかは、お客様のシナリオによっては交換可能または省略可能です。

  • Azure ExpressRoute は、接続プロバイダーからのプライベートな専用ファイバー接続を介してオンプレミス ネットワークを Azure に拡張します。 ExpressRoute は、Azure や Microsoft 365 などの Microsoft クラウド サービスへの接続を確立します。
  • Azure Bastion は、トランスポート層セキュリティ (TLS) 経由での Azure portal から仮想ネットワーク VM へのシームレスなリモート デスクトップ プロトコル (RDP) またはセキュア シェル (SSH) 接続を提供します。 Azure Bastion は、開いているポートを最小化することで、管理者アクセス セキュリティを最大化します。
  • Azure Load Balancer は、受信トラフィックをコンピューティング リソース クラスターに分散します。 トラフィックを分散するための規則や基準を定義できます。
  • Azure Kubernetes Service (AKS) は、コンテナ化されたアプリケーションをデプロイして管理するためのフル マネージド Kubernetes サービスです。 AKS では、サーバーレスの Kubernetes、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、エンタープライズレベルのセキュリティとガバナンスが提供されます。
  • Azure Virtual Machines は、さまざまなサイズおよび種類のスケーラブルなコンピューティング リソースをオンデマンドで提供します。 Azure VM を使用すると、物理ハードウェアを購入して維持する必要なしに、仮想化を柔軟に利用できます。
  • Azure Virtual Network は、Azure のプライベート ネットワークの基本的な構成ブロックです。 仮想ネットワーク内の VM は、お互いに安全に通信できるほか、インターネットおよびオンプレミス ネットワークと安全に通信できます。 仮想ネットワークは従来のオンプレミス ネットワークのようですが、スケーラビリティ、高可用性、分離など、Azure インフラストラクチャのメリットがあります。
  • Azure Private Link は、仮想ネットワークから Azure サービスへのプライベート接続を可能にします。 Private Link は、ネットワーク アーキテクチャを簡素化し、Azure エンドポイント間の接続をセキュリティで保護するために、パブリック インターネットへの露出をなくします。
  • Azure Cache for Redis は、大きなボリュームを高速で処理できるようにアプリケーション アーキテクチャにクイック キャッシュ レイヤーを追加します。 Azure Cache for Redis は、フル マネージド サービスのメリットを活かして、パフォーマンスをシンプルかつ費用対効果良くスケーリングします。
  • Azure Storage は、すべてのデータ、アプリケーション、およびワークロード用のスケーラブルで安全なクラウド ストレージです。
    • Azure Disk Storage は、ビジネスクリティカルなアプリケーション向けのハイパフォーマンスな永続ブロック ストレージです。 Azure マネージド ディスクは、Azure によって Azure VM 上で管理されるブロックレベルのストレージ ボリュームです。 使用可能なディスク ストレージの種類は、Ultra Disk Storage、Premium SSD、Standard SSD、および Standard HDD です。 このアーキテクチャでは、Premium SSD または Ultra Disk Storage を使用します。
    • Azure Files は、業界標準のサーバー メッセージ ブロック (SMB) プロトコルを介してアクセスできるフル マネージド ファイル共有をクラウドで提供します。 クラウドおよびオンプレミスの Windows、Linux、および macOS デプロイでは、ファイル共有を同時にマウントできます。
    • Azure NetApp Files は、NetApp を利用したエンタープライズレベルの Azure ファイル共有を提供します。 Azure NetApp Files を使用すると、企業はコードを変更することなくファイルベースの複雑なアプリケーションを簡単に移行して実行できます。
    • Azure Blob Storage は、アーカイブ、データ レイク、ハイパフォーマンス コンピューティング、機械学習、クラウドネイティブ ワークロード向けのスケーラブルで安全なオブジェクト ストレージです。
  • Azure データベースは、現在のアプリケーション ニーズに合わせられる、フル マネージドのリレーショナルおよび NoSQL データベースの選択肢です。 自動化されたインフラストラクチャ管理によって、スケーラビリティ、可用性、セキュリティが実現します。
    • Azure SQL Database は、フル マネージドの PaaS データベース エンジンです。 SQL Database は、常に、最新の安定したバージョンの SQL Server と、パッチ適用済みの高可用性の OS で実行されます。 組み込みの PaaS データベース管理機能には、アップグレード、パッチ適用、バックアップ、監視があります。 ドメイン固有のビジネスクリティカルなデータベース管理および最適化に集中できます。
    • Azure Database for PostgreSQL は、オープンソースの PostgreSQL リレーショナル データベース エンジンに基づいたフル マネージドのデータベースです。 Hyperscale (Citus) デプロイ オプションでは、より大きなスケールとパフォーマンスを必要とするアプリケーションのために、シャーディングを使用して複数のマシンにわたってクエリをスケーリングします。
    • Azure Cosmos DB は、あらゆる規模に対応するオープン API を備えたフル マネージドの高速 NoSQL データベースです。
  • Azure Site Recovery は、Azure データセンターに障害が発生した場合にフェールオーバーとデータ回復を速やかに実行するために、Azure VM をセカンダリ Azure リージョンにミラーリングします。
  • Azure Data Factory は、スケールアウト、サーバーレス データ統合、およびデータ変換のための抽出、変換、読み込み (ETL) サービスです。 直感的な作成が可能なコード不要の UI を備えているほか、単一のペインで監視と管理を行えます。

シナリオの詳細

現在も一般的な COBOL ベースのメインフレーム アプリケーションの代替方法を探すのには、次のようなさまざまな理由があります。

  • COBOL、CA-Gen、Natural、Telon、ASDO の開発者が引退し、引き継ぎのトレーニングが行われないため、人材プールが着実に減っています。 人材不足が進むなか、COBOL および他のレガシ言語への依存のコストとリスクが増大しています。
  • アプリケーションは最新の IT 向けに設計されていないため、統合が難しくなり、柔軟性も制限されます。
  • IBM メインフレームのハードウェアとソフトウェアは高価であり、補助的なメインフレーム アプリケーションとデータベースのライセンスとメンテナンスの料金も上昇しています。

Advanced の Automated COBOL Refactoring ソリューションは、COBOL アプリケーションと、その他のレガシ言語で記述されたアプリケーションをリファクタリングし、従来の対応するアプリケーションと機能的に同等のクラウド対応アプリケーションとデータベースを提供します。 これにより、コストが削減され、より緊密な統合が可能になり、ビジネス要件を満たすカスタマイズができるようになります。 さらに、自動テストから品質保証まで、品質やスケーラビリティに関するまったく新しい世界が開かれ、Docker や Kubernetes によるコンテナー化されたデプロイメントやオーケストレーションの恩恵を受けることもできます。

リファクターされたアプリケーションは、次のようになります。

  • 機能的には元のアプリケーションと同等です。
  • 保守が容易です。SonarQube A 評価を取得しており、オブジェクト指向の概念とパラダイムに準拠しています。
  • パフォーマンスが元のアプリケーションと同等か、それ以上です。
  • クラウド対応であり、標準の DevOps ツールチェーンとベスト プラクティスを使用して配信されます。

リファクタリング プロセスには、フローの正規化、コードの再構築、データ レイヤーの抽出、データの再モデル化、および再構築のためのパッケージ化が含まれます。 このプロセスでは、複製されたコードを特定し、共有される置換オブジェクトを作成します。これにより、保守が簡略化され、管理が容易になります。 複雑なデータと制御の依存関係の分析によって、実行されないコードが特定され、削除されます。

Advanced ソリューションによって COBOL アプリケーションと関連データベースがリファクターされると、Java および C# の開発者は、標準の DevOps ツールと CI/CD の概念を使用してアプリケーションの機能を拡張できます。 リファクタリング プロセスでは、ビジネス ロジックが保持され、パフォーマンスが最適化されます。 さらに、弾力性、詳細なサービス定義、クラウド ネイティブ サービスとの簡単な統合などの利点もあります。

Automated COBOL Refactoring は、ほとんどの COBOL 言語およびプラットフォーム (z/OS、OpenVMS、VME など) に対応しています。

考えられるユース ケース

Advanced refactoring は、次のような多くのシナリオで役に立ちます。

  • 次のことを求めている企業:
    • インフラストラクチャを最新化して、メインフレーム関連の過剰なコスト、制限、柔軟性不足を回避する。
    • クラウド ネイティブと DevOps に移行することで、レガシ システムとアプリケーションに対するスキル不足に関するリスクを回避する。
    • 運用コストと資本支出コストを削減する。
  • コストがかかり、エラーが発生しやすい手作業での書き換えなしで、メインフレーム ワークロードをクラウドに移行したい組織。
  • ビジネスクリティカルなアプリケーションを、その他のオンプレミス アプリケーションとの継続性を維持しながら移行する必要がある組織。
  • Azure で提供される水平および垂直のスケーラビリティを求めているチーム。
  • ディザスター リカバリー オプションがあるソリューションを優先する企業。

考慮事項

高可用性を持ちセキュリティで保護されたシステムとするために、Microsoft Azure Well-Architected Framework の次の重要な要素を組み込んでください。

可用性

  • このアーキテクチャでは、Azure データセンターで障害が発生した場合の迅速なフェールオーバーおよびディザスター リカバリーのために、Azure Site Recovery を使用して Azure VM をセカンダリ Azure リージョンにミラー化します。
  • Azure 自動フェールオーバー グループ レプリケーションは、セカンダリ リージョンへのデータベースのレプリケーションおよびフェールオーバーを管理します。

Operations

リファクターは、迅速なクラウド導入をサポートするだけでなく、DevOps およびアジャイルの作業原則の導入を促進します。 お客様は開発および運用デプロイを自在に選択できます。

Security

このソリューションでは、Azure ネットワーク セキュリティ グループを使用して、Azure リソース間のトラフィックが管理されます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。

Azure SQL Database 用 Private Link は、Azure VM から Azure SQL Database への、Azure ネットワーク バックボーンに分離されたプライベートな直接接続を提供します。

Azure Bastion は、開いているポートを最小化することで、管理者アクセス セキュリティを最大化します。 Bastion は、TLS 経由で Azure ポータルから直接、ネットワーク VM に安全かつシームレスに RDP/SSH 接続できます。

回復性

回復性は、このソリューションにロード バランサーによって組み込まれています。 1 つのプレゼンテーションまたはトランザクション サーバーで障害が発生した場合、ロード バランサーの背後にあるもう一方のサーバーがワークロードを規則と正常性プローブに従って実行します。 可用性セットと geo 冗長ストレージを強くお勧めします。

コストの最適化

Azure では、リソースの種類の適切な数を特定し、時間の経過に伴う支出を分析し、超過出費のないようビジネス ニーズに合わせてスケーリングして、不要なコストを抑えます。

  • Azure では、VM を実行することでコストを最適化します。 使用していないときには VM をオフにできるほか、既知の使用パターンに合わせてスケジュールを記述できます。 VM インスタンスのコスト最適化の詳細については、Azure Well-Architected Framework に関するページを参照してください。
  • このアーキテクチャの VM では、Premium SSD または Ultra Disk Storage を使用します。 ディスク オプションと価格の詳細については、「Managed Disks の価格」を参照してください。
  • SQL Database は、自動的にスケーリングするサーバーレス コンピューティングおよび Hyperscale ストレージ リソースを使用してコストを最適化します。 SQL Database のオプションと価格の詳細については、「Azure SQL Database の価格」を参照してください。
  • このソリューションの実装のコストを見積もるには、料金計算ツールを使用します。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ