Advanced の Automated COBOL Refactoring ソリューションは、COBOL アプリケーションと、CA-Gen、CA-Telon、Natural、ADSO、およびその他のレガシ言語で記述されたアプリケーションをリファクタリングし、従来の対応するアプリケーションと機能的に同等のクラウド対応アプリケーションとデータベースを提供します。 これにより、コストが削減され、より緊密な統合が可能になり、ビジネス要件を満たすカスタマイズができるようになります。 さらに、自動テストから品質保証まで、品質やスケーラビリティに関するまったく新しい世界が開かれ、Docker や Kubernetes によるコンテナー化されたデプロイメントやオーケストレーションの恩恵を受けることもできます。
メインフレームのアーキテクチャ
以下に、自動ファクタリングを使用できるシステム例を示します。
Workflow
A。 ユーザーは、TN3270、HTTP、HTTPS などのプロトコルを使用して、TCP/IP 経由で入力を提供します。
B. 入力は標準のメインフレーム プロトコルを使用して到着します。
C. バッチおよびオンライン アプリケーションによって、入力が処理されます。
D. COBOL、PL/I、アセンブラー、および互換性のある言語が、有効な環境で実行されます。
E. ファイルとデータベースによって、データ ストレージが提供されます。 データベースの種類は、階層型、ネットワーク、リレーショナルなどです。
F. サービスによってアプリケーションのためにタスクが実行されます。 一般的に利用できるサービスは、プログラム実行、I/O 操作、エラー検出、保護などです。
G. ミドルウェアおよびユーティリティ サービスは、テープ ストレージ、キュー、出力、Web サポートなどのタスクを管理します。
H. オペレーティング システムは、エンジンとそれが実行するソフトウェアとの間のインターフェイスを提供します。
一 パーティションは、個別のワークロードを実行するか、環境内で作業の種類を分離します。
Azure アーキテクチャ
これは、Azure 用にリファクターした場合の、上のシステム例のアーキテクチャです。 図の文字吹き出しは、リファクタリングされたソリューションが対応するメインフレーム機能を処理する場所を示しています。
このアーキテクチャの Visio ファイルをダウンロードします。
Workflow
入力は、通常、Azure ExpressRoute を通じてリモート クライアントからまたは他の Azure アプリケーションから送られてきます。 どちらの場合も、TCP/IP 接続は、システムに接続するための主な手段です。 Web アプリケーションへのユーザー アクセスは、TLS ポート 443 を介しています。 エンド ユーザーの再トレーニングを最小限にするために、Web アプリケーションの UI を同じままにしておくことができます。また、最新の UX フレームワークを使用して UI を更新することもできます。 Azure Bastion では仮想マシン (VM) への管理者アクセスが提供され、開かれるポートが最小限に抑えられるため、セキュリティが最大限に高められます。
Azure では、アプリケーションのコンピューティング クラスターへのアクセスが Azure ロード バランサーを介して行われます。 この方法では、スケールアウト コンピューティング リソースを使用して入力の作業を処理できます。 入力に応じて、アプリケーション レベルまたはネットワーク プロトコル レベルで負荷を分散できます。
Advanced では、コンテナー、VM、または Virtual Machine Scale Sets でのデプロイがサポートされています。 コンテナーと Virtual Machine Scale Sets は、VM とは異なり、迅速にスケールアウトおよびスケールインができます。 スケーリングの単位をコンテナーにシフトすると、インフラストラクチャの使用率が最適化されます。
アプリケーション サーバーは、コンピューティング クラスターの入力を受け取り、Azure Cache for Redis または Remote Direct Memory Access (RDMA) を使用してアプリケーションの状態とデータを共有します。
アプリケーション クラスターのデータ サービスでは、永続的なデータ ソースへの複数の接続が可能です。 使用できるデータ ソースは、次のとおりです。
- Azure SQL Database。
- Azure Cosmos DB。
- Oracle や Db2 など、VM 上のデータベース。
- Azure Databricks や Azure Data Lake などのビッグ データ リポジトリ。
- Kafka や Azure Stream Analytics などのストリーミング データ サービス。
アプリケーション サーバーは、Java クラスや COBOL プログラムなど、言語の機能に基づいて、さまざまなアプリケーション プログラムをホストします。
データ サービスでは、次の組み合わせが使用されます。
高パフォーマンス ストレージ: Azure Premium SSD と Azure Ultra Disk Storage。
ファイル ストレージ: Azure NetApp Files と Azure Files。
標準ストレージ: Azure Blob Storage、アーカイブ、およびバックアップ。 バックアップは、次のようにすることができます。
- ローカル冗長ストレージ (LRS)。
- ゾーン冗長ストレージ (ZRS)。
- geo 冗長ストレージ (GRS)。
- geo ゾーン冗長ストレージ (GZRS)。
冗長の詳細については、「Azure Storage の冗長性」を参照してください。
Azure PaaS (サービスとしてのプラットフォーム) データ サービスは、クラスター内の複数のコンピューティング リソースが共有できるスケーラブルで可用性の高いデータ ストレージを提供します。 これらは geo 冗長にすることもできます。
Azure Data Factory は、データを取り込み、Azure 内と外部ソースの両方で、複数のデータ ソースと同期することができます。 Azure BLOB ストレージは、外部データ ソースの汎用ランディング ゾーンです。
Azure Site Recovery は、VM とコンテナー クラスター コンポーネントのディザスター リカバリーを提供します。
アプリケーションは、さまざまな PaaS サービスのプライベート エンドポイントに接続します。
コンポーネント
この例では、次の Azure コンポーネントを取り上げます。 これらのコンポーネントとワークフローの一部は、シナリオに応じて交換可能または省略可能です。
Azure Bastion は、トランスポート層セキュリティ (TLS) 経由で Azure portal から直接仮想ネットワーク VM に安全なリモート デスクトップ プロトコル (RDP) または Secure Shell (SSH) 接続を提供するフル マネージド サービスです。 このアーキテクチャでは、Azure Bastion は、リファクタリングされた COBOL アプリケーションをホストする VM への開いているポートを最小限に抑えることで、管理者アクセスセキュリティを最大化します。
Azure Cache for Redis は、フル マネージドのメモリ内キャッシュ サービスであり、高速で大量のデータを処理するための高速キャッシュ レイヤーをアプリケーション アーキテクチャに追加します。 Azure Cache for Redis は、フル マネージド サービスのメリットを活かして、パフォーマンスをシンプルかつ費用対効果良くスケーリングします。 このアーキテクチャでは、Azure Cache for Redis を使用すると、アプリケーション サーバーは、リファクタリングされたメインフレーム アプリケーションのコンピューティング クラスター間でアプリケーションの状態とデータを共有できます。
Azure Data Factory は、スケールアウト、サーバーレス データ統合、およびデータ変換のための抽出、変換、読み込み (ETL) サービスです。 直感的な作成と単一ウィンドウの監視と管理のためのコード不要の UI が提供されます。 このアーキテクチャでは、Azure Data Factory は、リファクタリングされたソリューションでメインフレーム データを移行および処理するためのデータ統合と変換機能を提供します。
Azure データベース は、最新のアプリケーションのニーズに合わせてフル マネージドのリレーショナル データベースと NoSQL データベースを提供するクラウドベースのデータベース サービスのコレクションです。 自動化されたインフラストラクチャ管理によって、スケーラビリティ、可用性、セキュリティが実現します。 このアーキテクチャでは、Azure データベースは、メインフレーム データベース システムを置き換える永続的なデータ ストレージ ソリューションを提供します。
Azure Cosmos DB は、あらゆる規模に対応するオープン API を備えたフル マネージドの高速 NoSQL データベースです。 このアーキテクチャでは、Azure Cosmos DB は、柔軟でスケーラブルなデータ ストレージを必要とするリファクタリングされたアプリケーションに対して、グローバルに分散された NoSQL データベース サービスを提供します。
Azure Database for PostgreSQL は、オープンソースの PostgreSQL リレーショナル データベース エンジンに基づいたフル マネージドのデータベースです。 Hyperscale (Citus) デプロイ オプションは、より大きなスケールとパフォーマンスを必要とするアプリケーションのシャーディングを使用して、複数のマシン間でクエリをスケーリングします。 このアーキテクチャでは、Azure Database for PostgreSQL は、PostgreSQL 機能を必要とするリファクタリングされたアプリケーション向けにオープンソースのリレーショナル データベース サービスを提供します。
SQL Database は、フル マネージドの PaaS データベース エンジンであり、常に最新の安定バージョンの SQL Server と、高可用性を備えた修正プログラムが適用された OS で実行されます。 組み込みの PaaS データベース管理機能には、アップグレード、パッチ適用、バックアップ、監視があります。 このアーキテクチャでは、SQL Database は、SQL Server の互換性を必要とするリファクタリングされたアプリケーション用のマネージド リレーショナル データベース サービスを提供します。
Azure Kubernetes Service (AKS) は、コンテナ化されたアプリケーションをデプロイして管理するためのフル マネージド Kubernetes サービスです。 AKS は、サーバーレス Kubernetes、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、エンタープライズ レベルのセキュリティとガバナンスを提供します。 このアーキテクチャでは、AKS は、リファクタリングされた COBOL アプリケーションを迅速なスケールアウト機能でデプロイおよびスケーリングするためのコンテナー オーケストレーションを提供します。
Azure Load Balancer は、高可用性と信頼性を確保するために、受信トラフィックを複数のターゲットに分散するネットワーク ロード バランサーです。 トラフィックを分散するための規則や基準を定義できます。 このアーキテクチャでは、Load Balancer はアプリケーション コンピューティング クラスターへのアクセスを提供し、スケールアウト コンピューティング リソースがリファクタリングされたメインフレーム アプリケーションからの入力作業を処理できるようにします。
Azure Private Link は、仮想ネットワークから Azure サービスへのプライベート接続を提供するネットワーク サービスです。 Private Link は、ネットワーク アーキテクチャを簡素化し、Azure エンドポイント間の接続をセキュリティで保護するために、パブリック インターネットへの露出をなくします。 このアーキテクチャでは、Private Link を使用すると、リファクタリングされたアプリケーションをさまざまな PaaS サービスのプライベート エンドポイントに安全に接続できます。
Azure Storage は、すべてのデータ、アプリケーション、およびワークロード用のスケーラブルで安全なクラウド ストレージです。 このアーキテクチャでは、Azure Storage には、リファクタリングされたメインフレーム アプリケーションのデータ要件をサポートするためのさまざまなストレージ オプションが用意されています。
Azure Disk Storage は、ビジネスクリティカルなアプリケーション向けのハイパフォーマンスな永続ブロック ストレージです。 Azure マネージド ディスクは、Azure が Azure Virtual Machines (VM) で管理するブロックレベルのストレージ ボリュームです。 使用可能なディスク ストレージの種類は、Ultra Disk Storage、Premium SSD、Azure Standard SSD です。 このアーキテクチャでは、Azure Disk Storage は、Premium SSD または Ultra Disk Storage を使用して、リファクタリングされたアプリケーションの高パフォーマンス ストレージを提供します。
Azure Files は、業界標準のサーバー メッセージ ブロック (SMB) プロトコルを介してアクセスできるフル マネージドのファイル共有をクラウドで提供するフル マネージド ファイル共有サービスです。 クラウドおよびオンプレミスの Windows、Linux、および macOS デプロイでは、ファイル共有を同時にマウントできます。 このアーキテクチャでは、Azure Files は、リファクタリングされたアプリケーションの複数のインスタンスからアクセスできる共有ファイル ストレージを提供します。
Azure VM は、さまざまなサイズと種類のオンデマンドでスケーラブルなコンピューティング リソースを提供するクラウド コンピューティング サービスです。 VM を使用すると、物理ハードウェアを購入して保守することなく、仮想化の柔軟性を実現できます。 このアーキテクチャでは、VM はリファクタリングされたメインフレーム アプリケーションをホストし、コンテナー化されたデプロイの代わりにスケーラブルなコンピューティング リソースを提供します。
Azure Virtual Network は、Azure のプライベート ネットワークの基本的な構成ブロックです。 仮想ネットワーク内の VM は、お互いに安全に通信できるほか、インターネットおよびオンプレミス ネットワークと安全に通信できます。 仮想ネットワークは従来のオンプレミス ネットワークのようですが、スケーラビリティ、高可用性、分離など、Azure インフラストラクチャのメリットがあります。 このアーキテクチャでは、Virtual Network は、リファクタリングされたメインフレーム システムのすべてのコンポーネントにセキュリティで保護されたネットワーク基盤を提供します。
Blob Storage は、アーカイブ、データ レイク、ハイパフォーマンス コンピューティング、機械学習、クラウドネイティブ ワークロード向けのスケーラブルで安全なオブジェクト ストレージです。 このアーキテクチャでは、Blob Storage は、リファクタリングされたメインフレーム アプリケーションの非構造化データとアーカイブ要件に対するオブジェクト ストレージを提供します。
ExpressRoute は、接続プロバイダーからのプライベートな専用ファイバー接続を介して、オンプレミス ネットワークを Azure に拡張する接続サービスです。 ExpressRoute は、Azure や Microsoft 365 などの Microsoft クラウド サービスへの接続を確立します。 このアーキテクチャでは、ExpressRoute は、オンプレミスのメインフレーム環境と Azure で実行されるリファクタリングされたアプリケーションとの間に、セキュリティで保護された高帯域幅の接続を提供します。
NetApp Files は、NetApp を利用したエンタープライズ レベルの Azure ファイル共有を提供するフル マネージドのファイル ストレージ サービスであり、企業はコードを変更せず、複雑なファイル ベースのアプリケーションを簡単に移行して実行できます。 このアーキテクチャでは、NetApp Files は、高度なファイル システム機能を必要とするエンタープライズ グレードのリファクタリングされたメインフレーム アプリケーション向けに、高パフォーマンスのファイル ストレージを提供します。
Site Recovery は、Azure データセンターで障害が発生した場合の迅速なフェールオーバーとデータ復旧のために、Azure VM をセカンダリ Azure リージョンにミラーリングするディザスター リカバリー サービスです。 このアーキテクチャでは、Site Recovery は、リファクタリングされたメインフレーム アプリケーションのビジネス継続性とディザスター リカバリー機能を提供します。
シナリオの詳細
現在も一般的な 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 で提供される水平および垂直のスケーラビリティを求めているチーム。
- ディザスター リカバリー オプションがあるソリューションを優先する企業。
考慮事項
これらの考慮事項は、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、Microsoft Azure Well-Architected Frameworkの
確実
信頼性により、アプリケーションは顧客に対するコミットメントを確実に満たすことができます。 詳細については、「信頼性
回復性は、このソリューションにロード バランサーによって組み込まれています。 1 つのプレゼンテーションまたはトランザクション サーバーで障害が発生した場合、ロード バランサーの背後にあるもう一方のサーバーがワークロードを規則と正常性プローブに従って実行します。 可用性セットと geo 冗長ストレージを強くお勧めします。
セキュリティ
セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、「セキュリティ
このソリューションでは、Azure ネットワーク セキュリティ グループを使用して、Azure リソース間のトラフィックが管理されます。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
Azure SQL Database 用 Private Link は、Azure VM から Azure SQL Database への、Azure ネットワーク バックボーンに分離されたプライベートな直接接続を提供します。
Azure Bastion は、開いているポートを最小化することで、管理者アクセス セキュリティを最大化します。 Bastion は、TLS 経由で Azure ポータルから直接、ネットワーク VM に安全かつシームレスに RDP/SSH 接続できます。
コストの最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化
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 の価格」を参照してください。
- このソリューションの実装のコストを見積もるには、料金計算ツールを使用します。
オペレーショナル エクセレンス
オペレーショナル エクセレンスは、アプリケーションをデプロイし、運用環境で実行し続ける運用プロセスを対象としています。 詳細については、「オペレーショナル エクセレンス
リファクターは、迅速なクラウド導入をサポートするだけでなく、DevOps およびアジャイルの作業原則の導入を促進します。 お客様は開発および運用デプロイを自在に選択できます。
パフォーマンス効率
パフォーマンス効率は、効率的な方法でユーザーの要求に合わせてワークロードをスケーリングする機能です。 詳細については、「パフォーマンス効率
- このアーキテクチャでは、Azure データセンターで障害が発生した場合の迅速なフェールオーバーおよびディザスター リカバリーのために、Azure Site Recovery を使用して Azure VM をセカンダリ Azure リージョンにミラー化します。
- Azure 自動フェールオーバー グループ レプリケーションは、セカンダリ リージョンへのデータベースのレプリケーションおよびフェールオーバーを管理します。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Bhaskar Bandam |シニア TPM
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次のステップ
- 詳細については、legacy2azure@microsoft.com にお問い合わせください。
- 自動 COBOL リファクタリング ファクトシート (PDF)