Raincode コンパイラを使用した Azure へのメインフレーム アプリケーションのリホスト

Azure Virtual Machines
Azure Kubernetes Service (AKS)
Azure Files
Azure ExpressRoute
Azure Load Balancer

このアーキテクチャでは、1 行のコードも変更することなく、最新の Azure ベースのテクノロジ スタックにシームレスに移行して統合することにより、Raincode COBOL コンパイラによってメインフレームのレガシ アプリケーションを最新化する方法を示します。 Raincode のコンパイラ テクノロジを使用すると、現在の最適化されたメインフレーム アプリケーションを維持し、クラウドにデプロイできます。数十年の開発を維持したまま、パフォーマンスと柔軟性を大幅に向上させることができます。 Raincode のソリューションは、アーキテクチャ全体を変換しながらもビジネス ロジックは維持することで、メインフレームを Azure ネイティブのアーキテクチャに変換することを目的としています。 Raincode では、Azure 上でコンテナー化または仮想マシン (VM) のデプロイを使用して、Linux と Windows にまがるアプリケーションの柔軟性をサポートしています。

Architecture

レガシ IBM z/OS アーキテクチャ

次の図は、Azure に移行する前の、レガシ COBOL ベースのメインフレーム アーキテクチャの例を示しています。

レガシ COBOL ベースのメインフレーム アーキテクチャを示す図。

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

ワークフロー

次の注釈は、ソース IBM z/OS から Azure にマップされます。

A. オンデマンドおよびオンライン ユーザーのための IBM 3270 端末エミュレーションは、Azure のシステム リソースにアクセスするための Web ブラウザーに置き換えられます。

B. COBOL および他のレガシ アプリケーション コードは、CC/.NET に変換されます。 Raincode により、.NET と .NET Core に対する 100% スレッド セーフのマネージド コードが生成されます。

C. Raincode COBOL コンパイラは、1 行のコードも変更することなく、最新のクラウドベースのテクノロジ スタックにシームレスに移行して統合することにより、メインフレームのレガシ アプリケーションを最新化します。

D. ワークロードの自動化、スケジュール設定、レポート、システム監視機能は、現在 Azure 対応であるため、現在のプラットフォームのまま保持することができます。

E. Db2 や IDMS のようなレガシ データベース構造は、Azure が提供するすべての DR/HA 機能と共に、Azure SQL Database に移行できます。 また、Raincode では、静的または動的 SQL クエリも、SQL Server 経由または Azure SQL DB 上でサポートされます。

F. ファイル構造 (VSAM、フラット ファイル、仮想テープなど) は、構造化ファイルや BLOB ストレージ内の Azure データ コンストラクトに簡単にマップできます。 冗長な地理的レプリケーションや Azure 自動フェールオーバー グループ レプリケーションのような機能を使用して、データ保護を提供できます。

G. オプションのプリンター サブシステムで、オンプレミスのプリンターが管理されます。

H. z/OS は論理パーティション (LPAR) 上で実行されています。

I. LPAR は、コンピューターのハードウェア リソースのサブセットを表します。 各 LPAR は、別個の OS をホストできます。 この例では z/OS インスタンスのみを示していますが、同じハードウェア上で実行されている他の LPAR で、z/VM などの他のオペレーティング環境や、zIIP または IFL などの他のエンジンをホストできます。

移行後の、Azure ベースのアーキテクチャ

この図は、Raincode コンパイラや他の多くの最新の Azure サービスを利用して、レガシ アーキテクチャを Azure に移行する方法を示しています。

レガシ アーキテクチャの Azure ワークフローへの移行。

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

ワークフロー

  1. Web ベースのアプリケーションにアクセスするために TLS ポート 443 上で提供されるユーザー アクセス。 Web ベースのアプリケーションのプレゼンテーション層は、エンド ユーザーの再トレーニングを最小限に抑えられるよう、実質的に変更しないままにすることができます。 または、必要な要件に応じて、Web アプリケーションのプレゼンテーション層を最新の UX フレームワークで更新することもできます。

  2. Azure では、アプリケーション コンピューティング クラスターへのアクセスは、Azure Load Balancer によって行われます。これにより、スケールアウト コンピューティング リソースを使用して入力作業を処理できます。

  3. Raincode システム エミュレーション ソフトウェアは、コンテナー内のデプロイをサポートすることもできます。 Raincode の最先端のコンパイラ テクノロジを使用すると、現在の最適化されたメインフレーム アプリケーションを維持し、.NET Core にデプロイできます。

  4. クラウドネイティブ アプリケーションは、軽量コンテナーとしてパッケージ化された、独立した自律サービスのコレクションです。

    仮想マシンとは異なり、コンテナーは迅速にスケールアウトおよびスケールインできます。 スケーリングの単位がコンテナーにシフトされるため、インフラストラクチャの使用率が最適化されます。

  5. データ サービスでは、Ultra または Premium の SSD (ソリッド ステート ドライブ) の高パフォーマンス ストレージ、NetApp または Azure ファイル上のファイル ストレージ、ローカル冗長または geo 冗長である標準の BLOB、アーカイブ、バックアップ ストレージを組み合わせます。

  6. Azure SQL Database では、高 IOPS と高アップタイム SLA の両方のために、Hyperscale または Business Critical サービス レベルのいずれかを使用します。 さらに、Azure SQL Database 用の Private Link を使用して、Azure VM から Azure SQL Database への、Azure ネットワーク バックボーンに分離されたプライベートな直接接続が提供されます。 Raincode データ移行ツールを使用すると、DMS および RDMS スキーマを SQL に変換できます。

  7. Azure Blob Storage は、外部データ ソースの汎用ランディング ゾーンです。

  8. Active Directory の実装を作成するか、あらかじめ配置しておく必要があります。 Raincode により、Active Directory 拡張機能を使用して、RACF および Top Secret の ID 統合が提供されます。

Components

  • Azure Kubernetes Service (AKS) は、コンテナー ベースのコンピューティング クラスターでコンテナ化されたアプリケーションをデプロイおよび管理するためのフル マネージド Kubernetes サービスです。

  • Azure Virtual Network (VNet) は、Azure 内のプライベート ネットワークの基本的な構成要素です。 VNet により、Azure Virtual Machines (VM) などのさまざまな種類の Azure リソースが、他の Azure リソース、インターネット、およびオンプレミスのネットワークと安全に通信することができます。 VNet は、自社のデータセンターで運用する従来のネットワークと似ていますが、スケール、可用性、分離性など、Azure のインフラストラクチャのさらなる利点が提供されます。

  • Azure Files では、クラウドで、業界標準の Server Message Block (SMB) プロトコルを介してアクセスできる、フル マネージド ファイル共有を提供します。 Azure ファイル共有は、クラウドまたはオンプレミス デプロイにある Windows、Linux、および macOS に同時にマウントできます。

  • Azure ExpressRoute を利用すると、接続プロバイダーが提供するプライベート接続を介して、オンプレミスのネットワークを Microsoft クラウドに拡張できます。 ExpressRoute では、Microsoft Azure、Office 365 などの Microsoft クラウド サービスへの接続を確立できます。

  • Azure Load Balancer は、開放型システム間相互接続 (OSI) モデルの第 4 層で動作します。 クライアントにとっての単一接続点となります。 Load Balancer では、ロード バランサーのフロントエンドに到着した受信フローを、バックエンド プールのインスタンスに分配します。 これらのフローは、構成された負荷分散規則と正常性プローブに従っています。 バックエンド プール インスタンスには、Azure Virtual Machines か、仮想マシン スケール セット内のインスタンスを使用できます。

  • Azure SQL Database は、安定した最新バージョンの SQL Server とパッチ適用済みの OS を常に実行し、99.99% の可用性がある、フル マネージドの、サービスとしてのプラットフォーム (PaaS) データベース エンジンです。 SQL Database では、アップグレード、修正プログラムの適用、バックアップ、モニタリング、ほとんどのデータベース管理機能がユーザーの介入なしで処理されます。 これらの PaaS 機能を使用すると、ユーザーはビジネス クリティカルな、ドメイン固有のデータベースの管理と最適化に集中できます。

  • Azure Cosmos DB は、NoSQL データベース用の Azure PaaS サービスです。

  • Azure Database for PostgreSQL は、PostgreSQL データベース用の Azure PaaS サービスです。

シナリオの詳細

このアーキテクチャでは、Raincode ソリューションが Azure 上でどのように実行されるかを説明します。 Azure 上の Raincode では、次の機能がサポートされます。

  • .NET と .NET Core に対する 100% スレッド セーフのマネージド コード。

  • メインフレームをクラウドネイティブ アーキテクチャに変換することを主目的としたソリューション。

  • オンプレミスまたは Azure SQL DB 上の SQL Server を使用した静的または動的 SQL クエリのネイティブ サポート。

  • Db2 (Microsoft の HIS 経由) と SQL Server のサポート。

  • Visual Studio との統合。デバッガー、コンパイラ、構成、C# IntelliSense、コードの色分け機能、プロジェクト管理を備えています。

  • メインフレームのメモリ表現を使用した、すべての COBOL データ型のサポート。

  • PL/I および ASM370 コンパイラとのシームレスな統合。

  • コールグラフ、統計、その他のコンパイル時情報を含むリポジトリ。

  • コンパイル時と実行時のネイティブ EBCDIC サポート。

Raincode を使用して最新の分散クラウド インフラストラクチャに移行すると、次のことが可能になります。

  • C# での新しい開発とメンテナンスが容易になります。

  • COBOL ライセンス コストの財務上の負担から解放されます。

  • .NET Core を通じて最新のテクノロジを使用することにより、柔軟でスケーラブルなプラットフォームを採用できます。

  • Web やモバイルなどの最新のアプリケーションと統合して、カスタマー エクスペリエンスを向上させます。

  • モノリシックのレガシ アプリケーションを、マイクロサービスまたはサービス指向アーキテクチャ (SOA) に変換します。

  • Azure のスケーラビリティと可用性の機能を使用して、総保有コスト (TCO) を制御します。

考えられるユース ケース

多くのユース ケースで、Raincode コンパイラの恩恵を受けることができます。次に例を挙げます。

  • インフラストラクチャを最新化して、メインフレーム関連の高いコスト、制限、柔軟性不足を回避したいと考える企業。

  • クラウド ネイティブと DevOps への移行による技術的負債の削減。

  • 運用コストと資本支出コストの削減。

  • 完全な再開発という副作用を伴うことなく、IBM zSeries メインフレームのワークロードをクラウドに移行することにした組織。

  • 他のオンプレミス アプリケーションとの継続性は維持しながら、ミッション クリティカルなアプリケーションを移行する必要がある IBM zSeries メインフレームの顧客。

  • Azure で提供される水平および垂直のスケーラビリティを求めているチーム。

  • ディザスター リカバリー オプションを提供するソリューションを優先する企業。

  • 最新のソフトウェア開発イノベーション (ツール、フレームワーク、言語、プラクティス) の活用。

考慮事項

このソリューションには以下の考慮事項が適用されます。

可用性

  • Raincode アーキテクチャでは、Azure データセンターで障害が発生した場合の迅速なフェールオーバーおよびディザスター リカバリー (DR) のために、Azure Site Recovery を使用して Azure VM をセカンダリ Azure リージョンにミラー化します。

Operations

  • クラウドネイティブ アプリケーションの各サービスは、独立したライフ サイクルを通過します。これは、アジャイル DevOps プロセスを通じて管理されます。

  • 複数の継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを並行して実行し、クラウドネイティブ アプリケーションのデプロイと管理を行うことができます。

パフォーマンス効率

  • クラウドネイティブ アプリケーションは、軽量コンテナーとしてパッケージ化された、独立した自律サービスのコレクションです。

  • 仮想マシンとは異なり、コンテナーは迅速にスケールアウトおよびスケールインできます。

  • スケーリングの単位がコンテナーにシフトされるため、インフラストラクチャの使用率が最適化されます。

セキュリティ

コストの最適化

  • Raincode COBOL コンパイラは、C# での新しい開発を容易にし、COBOL ライセンス コストの財務負担を排除します。

  • SQL と CICS のネイティブ サポート。 デバッグ対象のソース コードは、プリプロセッサの出力ではなく、保守されているソースと同じです。

共同作成者

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

プリンシパル作成者:

  • Jonathon Frost | プリンシパル ソフトウェア エンジニア

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

次のステップ

詳細については、legacy2azure@microsoft.com にお問い合わせいただくか、次のリソースをご覧ください。