トピック

エンタープライズ統合の概要

アプリケーションとデータの統合は、新しいカスタマー・エクスペリエンスとサービスを提供するための基礎となるものです。一般には、1 つのチームがエンタープライズ全体のモノリシックな統合テクノロジーを管理します。しかしアプリケーションは複雑性を増し、分散化が進んでいます。また、競合する市場で勝ち抜くには、拡張してすばやく変化しなければなりません。このような新しい課題を解決するには、クラウドネイティブな統合テクノロジーとアジャイルなチームに基づく、反復アプローチが欠かせません。

エンタープライズ統合とは

先進的な企業なら、データを共有する必要があります。そのためには、ビジネス戦略の中心にあるアプリケーションとデバイスが相互にアクセスできなければなりません。また、そうしたアクセスは往々にして複数のクラウド環境をまたいで行う必要があります。エンタープライズ統合はテクノロジー、プロセス、チーム構造を含むものであり、IT 組織内のどこからでもデータ、アプリケーション、デバイスを接続します。

エンタープライズ統合モデルは、比較的少数のポイントツーポイント接続から、エンタープライズ・サービス・バス (ESB) で接続された一元化モデル、さらには多数の再利用可能なエンドポイントを持つ分散アーキテクチャへと、数年間かけて発展しました。

エンタープライズ統合の「対象」と「方法」

エンタープライズ統合の対象

まず第一に、エンタープライズ統合とはデータに関する課題です。組織内に存在するデータが非常に多いので、データソースの規模や多様性を表すために「ビッグデータ」という用語が使われるようになりました。さまざまな標準化されていない形式で存在する大量のデータには、多大なビジネス価値があるかもしれませんが、価値を引き出すにはまず複数のソースまたはアプリケーションから統合する必要があります。IoT (モノのインターネット) も、毎日使うデバイスを通じて顧客とつながり、有益なデータを分析する新たなチャンスをもたらしますが、データセンターに送るべき重要なデータをふるい分ける必要があります。Web アプリケーションによって、エンタープライズ統合がさらに複雑になります。レガシーアプリケーションをマイクロサービスなどのサービスベースのアーキテクチャで統合する必要がある場合は、なおさら複雑になります。

アプリケーション、デバイス、データを統合する方法

これまでは、一元化されたチームが管理する一元化されたエンタープライズ・サービス・バス (ESB) が、環境内のあらゆるエンドポイントを接続できました。しかし、チームとテクノロジーを一元化するアプローチは、分散コンポーネントを統合するためにすばやく簡単な方法を必要とする先進的なシステムにとって、障害となりかねません。データおよびサービスのニーズに応じて、メッセージング、アプリケーションコネクタ、データストリーム、エンタープライズ統合パターン、デプロイの速度と反復性が高いアプリケーション・プログラミング・インタフェース (API) を組み合わせるほうが、先進的なアプリケーション開発に適しています。

メッセージングは、分散アプリケーション・アーキテクチャ内の各種コンポーネントが通信する方法です。通信の両側にあるコンポーネントが共通メッセージング形式とプロトコルを理解していれば、言語、コンパイラー、オペレーティングシステムが異なっていても、メッセージを送受信できます。

マイクロサービス・アーキテクチャ内でメッセージを送信するために、サービスメッシュが使用されます。

アプリケーション・コネクターは、コンポーネントが相互作用するためのルールをモデル化した、アーキテクチャ上の要素です。特定の API に対してカスタマイズされた標準クラスの接続なので、新しいエンドポイントをすばやく統合するために使用できます。

データストリームは絶えず情報を送信し、アプリケーションはデータの転送に影響されることなく、データソースに情報を追加したりデータソースの情報を使用したりすることができます。たとえば Apache Kafka は分散データストリーミング・プラットフォームで、レコードのストリームをリアルタイムで公開、サブスクライブ、保存、処理できます。

EIP は、共通する統合問題に対するテクノロジーに依存しないソリューションの集合です。パターンには、統合を記述するための、開発者とアプリケーション・アーキテクト向けの共通言語も含まれています。

API は、アプリケーション・ソフトウェアを構築するための、一連のツール、定義、プロトコルです。これにより、製品やサービスは、他の製品やサービスの実装方法を知らなくてもそれらと通信できます。

アジャイル・インテグレーションとは

Red Hat は、一元化されたチームがモノリシックなテクノロジーを管理するという従来の統合アプローチでは、分散アプリケーションの開発と長期的な有用性が阻害されてしまうと考えています。ESB などの従来の統合テクノロジーには、セキュリティの優先順位付けやデータ整合性といったメリットがありますが、エンタープライズ全体のインテグレーションの定義を 1 つのチームに依存しています。

俊敏な DevOps 手法で開発された現在の疎結合されたクラウドネイティブ・アプリケーション・アーキテクチャには、やはり俊敏でスケーラブルな統合アプローチが必要です。Red Hat では、アジャイル・インテグレーションとはリソースを接続するアプローチで、統合テクノロジー、アジャイル・デリバリー・テクニック、およびクラウドネイティブ・プラットフォームを組み合わせてソフトウェア提供の速度とセキュリティを向上するものであると考えています。具体的には、アジャイル・インテグレーションでは、API を Linux コンテナに統合するテクノロジーをデプロイし、統合の役割を部門を超えたチームに拡大します。

クラウドネイティブ・アプリケーションでの統合

クラウドネイティブ・アプリケーションは、疎結合された小型で独立したマイクロサービスの集合で、Linux コンテナにデプロイされ、API またはメッセージングによって接続されています。各サービスはビジネス機能を実装し、継続的インテグレーションおよび継続的デプロイメント (CI/CD) などの DevOps ワークフローを使用して小規模チームが開発します。これによりサービスの迅速なビルド、自動デプロイ、定期アップデートが可能となり、ウォーターフォール型開発サイクルは不要となります。

DevOps

DevOps とは、ビジネス価値や対応スピードの向上を目的とした、カルチャー、自動化、プラットフォームの設計に対するアプローチです。

コンテナ

コンテナを使用すると、アプリケーションをランタイム環境全体とともにパッケージ化して分離することができるため、全ての機能を維持しながら異なる環境間でアプリケーションを簡単に移行できます。

マイクロサービス

マイクロサービス・アーキテクチャは、アプリケーションを互いから独立した最小単位のコンポーネントへと分割します。

API

API は、アプリケーション・ソフトウェアを構築するための、一連のツール、定義、プロトコルです。実装に関する詳細な知識がなくても、製品とサービスを接続できます。

クラウドネイティブ・アプリケーションは、ユーザーからのフィードバックを継続的改善に速やかに取り入れる機能など、ビジネス価値の提供を目的に開発されています。つまりクラウドネイティブ・アプリケーション開発とは、新規アプリケーションの構築を迅速化し、既存アプリケーションを最適化して、すべてをつなげる手段です。

クラウドネイティブ・アプリケーションは分散しているため、従来のモノリシックなアプリケーションとは異なる独自の統合の課題を抱えています。アジャイル・インテグレーションによって、クラウドネイティブ開発が可能になります。その理由の一端は、統合のアプリケーション要件とビジネスニーズがまとめられることです。

アジャイル・インテグレーションに必要な基盤

インフラストラクチャを接続し、統合に関するエキスパート、アプリケーション開発者、およびビジネスユーザーが共同または単独で、接続されたソリューションを開発できる、分散型統合プラットフォームです。

内外のユーザーを対象とした API の共有、セキュリティ保護、提供、制御、収益化を容易にするプラットフォームです。

柔軟かつ小フットプリント・高パフォーマンスのメッセージング・プラットフォームです。情報を確実に提供し、リアルタイムの統合を実現するとともに、モノのインターネット (IoT) の接続を可能にします。

統合についてさらに詳しく