編集

次の方法で共有


Azure でメインフレーム バッチ アプリケーションをリエンジニアリングする

Azure Data Factory
Azure Databricks
Azure Kubernetes Service (AKS)
Azure SQL データベース
Azure Storage

この参照アーキテクチャでは、Azure を使用して z/OS メインフレーム バッチ アプリケーションを再設計し、Azure を使用して、セキュリティで保護されたスケーラブルで高可用性のシステムをクラウドに提供する方法を示します。 ビジネス ニーズは進化し続けるので、データとアプリケーションはインフラストラクチャに影響を与えずに提供およびスケーリングする必要があります。 クラウドへのリエンジニアリングは、財務、医療、保険、小売の企業が製品や機能の配信時間を最小限に抑え、コストを削減するのに役立ちます。

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

最初の図は、z/OS メインフレームで実行されている一般的なバッチ アプリケーションのアーキテクチャを示しています。

z/OS メインフレームで実行される一般的なバッチ アプリケーションの図。

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

ワークフロー

  1. メインフレーム バッチ プロセスは、操作、計画、制御 (OPC) スケジューラを使用して、スケジュールされた時刻にトリガーできます。 また、ファイルが作成されたことを読み上げるメッセージのように、メッセージ キューに配置されたメッセージによってトリガーすることもできます。

  2. メインフレームダイレクトアクセスストレージデバイス(XSL)は、入力ファイルと出力ファイルを格納するために使用されます。たとえば、アプリケーションで必要なフラット ファイルなどです。 バッチ・プロセスをトリガーするには、ファイルをストレージ上に作成します。

  3. バッチ 処理は、特定のタスクを実行するためにユーザーまたはシステム プログラムを内部的に実行するジョブなど、一連のジョブの実行です。 通常、バッチ プロセスはユーザーの操作なしで実行されます。 メインフレーム上のすべてのバッチ ジョブは、ジョブ実行システム (JES) の制御下で実行されます。

  4. バッチ プロセス内のプログラムは、次のデータの読み取り/書き込みを行うことができます。

    • Virtual Storage Access Method (VSAM) などのファイル ベースのデータベース。
    • Db2 や Informix などのリレーショナル データベース。
    • 情報管理システム (IMS) などの非リレーショナル データベース。
    • メッセージ キュー。
  5. ジョブ実行の出力は、OPC スケジューラまたはチボリ ワークロード スケジューラ (TWS) を使用して監視できます。 JES のシステム表示および検索機能 (SDSF) もメインフレームで使用され、ジョブの実行状態を確認します。

  6. 管理レベルでは、次のサービスが提供されます。

    • Endevor や Changeman などのソース管理。
    • リソース アクセス制御機能 (RACF) などのセキュリティ。 このセキュリティにより、バッチの実行、ファイルへのアクセス、データベースへのアクセスに対する認証が提供されます。
    • ジョブ実行ログのストレージと検索をサポートする出力管理。

Azure アーキテクチャ

2 番目の図は、Azure サービスを使用して、追加の機能と柔軟性を備えた同様のアプリケーションを再設計する方法を示しています。

Azure サービスを使用して再設計されたバッチ アプリケーションの図。複数のサンプル サービスが含まれています。

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

ワークフロー

  1. 次のいずれかのトリガーを使用して、Azure バッチ プロセスを開始します。

    • Azure Databricks ジョブ スケジューラを使用するか、Azure Function スケジューラを します。
    • Azure Logic Appsを使用して、定期的なバッチ プロセス タスク 作成します。
    • Azure Blob または File Storageでのファイルの作成や削除など、ストレージ イベント 使用します。
    • Azure Service Busにメッセージが到着した場合など、メッセージ ベースのトリガーを使用します。
    • Azure Data Factory トリガーを作成します。
  2. Azure Blob Storage または Azure Files を使用してメインフレームから移行されたファイルを格納します。 Azure で再設計されたバッチ プロセスは、このストレージからデータを読み取り/書き込むことができます。

  3. Azure には、メインフレーム バッチ ワークロードを実装するためのさまざまなサービスが用意されています。 ビジネス要件に基づいて特定のサービスを選択します。 たとえば、必要なコンピューティング能力、合計実行時間、メインフレーム バッチ プロセスをより小さな単位に分割する機能、コストの感度などです。

    1. Azure Databricks は、Apache Spark ベースの分析プラットフォームです。 ジョブは、R、Python、Java、Scala、Spark SQL の各言語で記述できます。 高速なクラスター開始時刻、自動終了、自動スケールを備えたコンピューティング環境を提供します。 Azure Blob Storage や Azure Data Lake Storage などの Azure Storage との統合が組み込まれています。 大量のデータを短時間で処理する必要がある場合は、Azure Databricks を使用します。 抽出、変換、読み込み (ETL) ワークロードを実行する必要がある場合にも適しています。
    2. AKS と Service Fabric には、サービス ベースのアプリケーション アーキテクチャを実装するためのインフラストラクチャが用意されています。 1 つのアプリケーションではコスト効率が高くない場合があります。 Java Spring Boot を使用してメインフレーム アプリケーションをリファクタリングできます。 Azure で Spring Boot アプリを実行する最善の方法は、フル マネージドの Spring サービスである Azure Spring Apps を使用することです。 Java 開発者はこれを使用して、Azure で Spring Boot マイクロサービスを簡単にビルドして実行できます。
    3. .NET または Java を使用してメインフレーム バッチ アプリケーションを再設計できます。 Batch は、このアプリケーションを大規模に実行するためのインフラストラクチャを提供します。 仮想マシン (VM) のプールを作成して管理し、アプリケーションをインストールし、VM で実行するジョブをスケジュールします。 インストール、管理、またはスケーリングするクラスターまたはジョブ スケジューラ ソフトウェアはありません。 Windows または Linux でサポートされている任意のプログラミング言語でアプリケーションを記述します。
    4. 実行時間の短い COBOL または PL/1 バッチ・プログラムを再設計できます。 これらのプログラムでは、Functions、WebJobs、Logic Apps などの Azure サービスを使用します。
  4. Azure には、データを格納および取得するためのさまざまなデータ サービスが用意されています。

    • Azure リレーショナル データベース オファリングの可視性を最小限に抑えながら、Db2 や Informix などのメインフレーム リレーショナル データベースを移行できます。 たとえば、Azure SQL VM、Azure SQL DB、Azure SQL MI などのリレーショナル データベース サービスなどです。 Azure PostgreSQL などの任意のオープンソースのリレーショナル データベース管理システム (RDBMS) を使用することもできます。 Azure データベースの選択は、ワークロードの種類、データベース間クエリ、2 フェーズ コミットの要件、およびその他の多くの要因によって異なります。
    • IMS、統合データ管理システム (IDMS)、または VSAM などのメインフレームの非リレーショナル データベースを Azure Cosmos DB に移行できます。 Azure Cosmos DB は、迅速な応答時間、自動および即時のスケーラビリティ、およびあらゆる規模での速度の保証を提供します。 これは、任意のサイズまたはスケールの予測不可能または散発的なワークロードに対するコスト効率の高いオプションです。 開発者は、容量の計画や管理を行わなくても簡単に作業を開始できます。
    • Azure Cache for Redis を使用して、再設計されたアプリケーションを高速化できます。
  5. アプリケーション、OS、および Azure リソースは、エージェントを使用して、Azure Monitor ログを するログとメトリックを送信できます。

    • Application Insight は、移行されたアプリケーションを監視します。 パフォーマンスの異常が自動的に検出され、問題の診断に役立つ強力な分析ツールが含まれています。
    • Azure Log Analytics は、収集されたログ データの保存、インデックス作成、クエリ、分析の派生に役立ちます。

    Log Analytics と Application Insights の出力を使用して、アラートとダッシュボードを作成したり、外部サービスにエクスポートしたりできます。 出力を使用して、VM のスケーリングなどのアクションを実行することもできます。

  6. このレベルでは、ソース管理、セキュリティ、出力管理のための Azure サービスが提供されます。 これらのサービスは、Azure DevOps と Microsoft Entra ID で構成される場合があります。

コンポーネント

ネットワークと ID

  • Azure ExpressRoute: ExpressRoute を使用すると、接続プロバイダーからのプライベート接続を介して、オンプレミス ネットワークを Microsoft クラウドに拡張できます。 ExpressRoute を使用すると、Microsoft Azure や Office 365 などの Microsoft クラウド サービスへの接続を確立できます。
  • Azure VPN Gateway: VPN ゲートウェイは、Azure 仮想ネットワークとオンプレミスの場所の間で暗号化されたトラフィックをパブリック インターネット経由で送信するために使用される特定の種類の仮想ネットワーク ゲートウェイです。
  • Microsoft Entra ID: Microsoft Entra ID は、オンプレミスのディレクトリと同期できる ID およびアクセス管理サービスです。

アプリケーション

  • Logic Apps: Logic Apps を使用すると、スケジュールに従って自動の定期的なタスクとプロセスを作成して実行できます。 HTTP エンドポイントや HTTPS エンドポイントなど、Azure の内外でサービスを呼び出すことができます。 また、Azure Service Bus などの Azure サービスにメッセージを投稿したり、ファイル共有にアップロードされたファイルを取得したりすることもできます。
  • Service Bus: Service Bus を使用して、ユーザー インターフェイスとバックエンド サービスの間のメッセージングを行うことができます。 このシステムは、アプリケーションとサービスを分離し、信頼性と使用を向上させることができます。
  • Azure Databricks: Azure Databricks は、大量のデータの処理と変換に使用されるクラウドベースのデータ エンジニアリング ツールです。 その後、機械学習モデルを使用してそのデータを探索できます。
  • Azure Spring Apps: Azure Spring Apps を使用すると、Spring マイクロサービスを Azure に簡単にデプロイ、管理、実行できます。 Java と .NET Core の両方をサポートしています。
  • AKS: AKS は、運用上のオーバーヘッドを Azure にオフロードすることで、マネージド Kubernetes クラスターを Azure にデプロイすることを簡略化します。
  • Batch: Batch は、実行中のワークロードに基づいてスケーリングできる多数の VM にわたって、クラウドで汎用バッチ コンピューティングを実行するように設計されています。 複数のタスクが互いに独立して並列に実行される ETL または AI のユース ケースに最適です。
  • 関数: アプリケーション インフラストラクチャを気にすることなく、関数を使用して小さなコードを実行します。 Functions を使用すると、クラウド インフラストラクチャは、アプリケーションの大規模な実行を維持するために必要なすべての up-to-date サーバーを提供します。
  • Azure App Service: App Service の機能である WebJobsを使用して、再利用可能なバックグラウンド ビジネス ロジックを Web ジョブとしてコーディングできます。
  • Azure Cache for Redis: 大量のバックエンド データを使用するアプリケーションを開発し、Redis などのメモリ内データ ストアと統合することで、高度に最適化されたパフォーマンスを実現できます。 Azure Cache for Redis では、Redis オープン ソース (OSS Redis) と Redis Enterprise の商用製品の両方がマネージド サービスとして提供されます。

貯蔵

Azure Storage には、複数の層のホット データ、クール データ、アーカイブ データが用意されています。 これらのストレージ層を効果的に使用すると、価格からパフォーマンスへの利点が得られます。

  • Blob Storage: クラウドネイティブ ワークロード、アーカイブ、データ レイク、ハイ パフォーマンス コンピューティング、機械学習のためのスケーラブルで安全なオブジェクト ストレージ。
  • Azure Files: シンプル、安全、サーバーレスのエンタープライズ レベルのクラウド ファイル共有。 Azure Files は、再設計されたメインフレーム ソリューションに特に便利です。 マネージド SQL ストレージに効果的なアドオンを提供します。
  • Table Storage: 大規模な半構造化データセットを使用した迅速な開発のための NoSQL キー値ストア。
  • Azure Queue Storage: 大規模なワークロード向けのシンプルでコスト効率の高い永続的なメッセージ キュー。
  • Azure SQL: AZURE の SQL Server 向けのフル マネージド サービス ファミリ。 リレーショナル データは、Azure SQL Managed Instance、Azure Virtual Machines 上の SQL Server、Azure Database for MariaDB などの他の Azure サービスと効率的に移行して使用できます。
  • Azure Cosmos DB: メインフレームから表形式以外のデータを移行するために使用できる SQL なしのオファリングです。

モニタリング

  • Azure Monitor: Azure Monitor は、クラウド環境とオンプレミス環境からのテレメトリを収集、分析、および操作するための包括的なソリューションを提供します。 Application Insights、Azure Monitor ログ、Azure Log Analytics の機能が含まれています。

管理

  • Azure DevOps: ソフトウェア開発とチームコラボレーションのすべてのフェーズで、Azure 上のメインフレーム アプリケーションをリエンジニアリングします。 DevOps には、次のサービスが用意されています。

    • Azure Boards: アジャイル計画、作業項目の追跡、視覚化、およびレポート ツール。
    • Azure Pipelines: コンテナーまたは Kubernetes をサポートする言語、プラットフォーム、クラウドに依存しない CI/CD プラットフォーム。
    • Azure Repos: クラウドでホストされるプライベート Git リポジトリを提供します。
    • Azure Artifacts: Maven、npm、Python、および NuGet パッケージ フィードをサポートする、パブリックまたはプライベート ソースからの統合パッケージ管理を提供します。
    • Azure Test Plans: 統合、計画済み、探索的なテスト ソリューションを提供します。

シナリオの詳細

メインフレームは、主に大量のデータを処理するために使用されます。 バッチ処理は、グループ化された大量のトランザクションを処理し、データベースに対して一括更新を行う方法です。 トリガーされると、ユーザーの操作を最小限に抑える必要がなくなります。 たとえば、メインフレーム システムを使用すると、銀行やその他の金融機関が四半期末の処理を行い、四半期ごとの株式や年金明細書などのレポートを作成できます。

潜在的なユース ケース

このソリューションは、金融、保険、医療、小売業界に最適です。 このアーキテクチャを使用して、Azure 上のメインフレーム アプリケーションを再設計します。 アーキテクチャは次の場合に最適です。

  • リソースを集中的に使用するメインフレーム バッチ アプリケーション。
  • 月末、四半期、年など、特定の期間に高いコンピューティングを必要とするバッチ アプリケーション。
  • メインフレームバッチプロセスは、リソースを集中的に消費せず、繰り返し行われますが、外部システムによる使用率が必要になる可能性があります。

考慮 事項

これらの考慮事項は、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、Microsoft Azure Well-Architected Frameworkの に関するページを参照してください。

確実

信頼性により、アプリケーションは顧客に対するコミットメントを確実に満たすことができます。 詳細については、「信頼性設計レビューチェックリスト」を参照してください。

  • Log Analytics に加えて、Azure Monitor と Application Insights を使用して、Azure リソースの正常性を監視できます。 アラートを設定して、リソースの正常性を事前に管理します。
  • Azure の回復性の詳細については、「信頼性の高い Azure アプリケーションの設計」を参照してください。

安全

セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、「セキュリティ設計レビューチェックリスト」を参照してください。

  • この参照アーキテクチャでは、オンプレミス環境から Azure へのプライベートで効率的な接続に ExpressRoute を使用します。 ただし、サイト間 VPNを作成することもできます。
  • Microsoft Entra ID を使用して Azure リソースを認証できます。 ロールベースのアクセス制御 (RBAC) を使用してアクセス許可を管理できます。
  • Azure のデータベース サービスでは、保存データ暗号化などのさまざまなセキュリティ オプションがサポートされています。
  • セキュリティで保護されたソリューションの設計の詳細については、Azure セキュリティ ドキュメント参照してください。

コストの最適化

コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化設計レビューチェックリスト」を参照してください。

Azure 料金計算ツールの を使用して、Azure リソースのコストを見積もります。

サービス コスト見積もりの例については、Azure メインフレームバッチ アプリケーションの に関するページを参照してください。

オペレーショナル エクセレンス

オペレーショナル エクセレンスは、アプリケーションをデプロイし、運用環境で実行し続ける運用プロセスを対象としています。 詳細については、「オペレーショナル エクセレンス設計レビュー チェックリスト」を参照してください。

  • この記事のバッチ アーキテクチャでは、高可用性を提供するマルチノード コンピューティングまたは PaaS サービスを使用します。
  • Azure データベース サービスはゾーン冗長をサポートしており、障害が発生した場合やメンテナンス期間中にセカンダリ ノードにフェールオーバーするように設計できます。

パフォーマンス効率

パフォーマンス効率は、効率的な方法でユーザーの要求に合わせてワークロードをスケーリングする機能です。 詳細については、「パフォーマンス効率設計レビュー チェックリスト」を参照してください。

  • このアーキテクチャの次の Azure サービスには自動スケール機能があります。

    • Azure Databricks
    • AKS
    • Spring Apps
    • バッチ
    • Azure Functions
    • Logic Apps
  • Azure での自動スケールの詳細については、自動スケール ガイドのを参照してください。

貢献

この記事は Microsoft によって管理されています。 もともとは次の共同作成者によって作成されました。

プリンシパルの作成者:

非公開の LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順

  • 詳細については、datasqlninja@microsoft.comにお問い合わせください。
  • Azure データベース移行ガイドを参照してください。
  • 大量のバッチ トランザクション処理 を する