クラウドネイティブアプリを支えるコンテナ技術群Computer Weekly製品導入ガイド

エンタープライズアプリケーションを構築するためのコンテナベースプラットフォームの構成要素を解説する。

2018年03月06日 08時00分 公開
[Computer Weekly]

 コンテナ技術を用いることで、高度に差別化されたアプリケーションとサービスを、より迅速に、より良い品質で構築して地理的なリーチを拡大し、魅力的なカスタマーエクスペリエンスを創出できる。

 コンテナ技術は、ソフトウェアデリバリーの高速化、絶大なスケール、耐久性の強化、柔軟性の向上、導入オプションの拡大を約束する。これにより、瞬く間にデジタルビジネストランスフォーメーションの重要な要素になった。エンタープライズアプリのインフラや、開発スタイルおよびアーキテクチャに関する全てが変わりつつある中で、コンテナはそれぞれの分野で重要な役割を果たす。

 インフラプラットフォームの基盤はオンプレミスとクラウドの両方で、仮想マシン(VM)からコンテナサービスへと移行している。開発者は用途に合った小さなアプリのコンポーネントを、APIを通じて使うことを望む。開発スタイルは、真の継続的インテグレーションと継続的デリバリー(DevOps)へと加速し、アプリアーキテクチャは複数の層を持つ一枚岩から、アジャイル性の強いマイクロサービスの集合体へと移行している。

全体像

 エンタープライズアプリケーションのためのコンテナベースプラットフォームを構築するためには、さまざまな機能と、それが互いにどう組み合わさるかに関する総合的な観点が求められる。エンタープライズアプリのプロフェッショナルは、コンテナネイティブまたは統合型プラットフォームパターンのいずれを使っているかを問わず、コンポーネントを選んでシームレスに組み立てなければならない。コンテナアプリケーションプラットフォームの参照アーキテクチャは、それぞれコンポーネント化された特定の技術機能を備える8つの層から成るものと定義できる。

 コンテナネイティブパターン用のオープンソースオプションの多くは、組み立て用に1つの(あるいは複数の)機能コンポーネントに重点を絞っているのが普通だが、統合型パターンのためのオプションは一般的に、コンテナエンジン、コンテナオーケストレーション、外部インテグレーションおよび運用管理層をまとめて組み込んでいる。

 第1の層のコンテナエンジンは、土台となる実行環境を提供する。この環境は、Docker、App Container、Open Container Initiativeといった主要コンテナイメージの、定義済み構成ファイル形式をサポートする必要がある。この環境は、「runC」「Docker」「containerd」「rkt」「cri-o」といったコンテナランタイムをサポートするだけでなく、「runV」「Clear Containers」「LXD.17」といったVMのランタイムもサポートしなければならない。次にこの環境は、コンテナイメージとインスタンスのために、標準的な構築、移動、実行の一連の業務を遂行できる必要がある。

 これは、構成ファイルからのイメージ構築から、リポジトリーでのイメージのタグ付けまで幅広い。

主要機能

 2番目の層のコンテナオーケストレーションは、エンタープライズでの普及の鍵を握る機能を実現する。「Apache Mesos」や「Marathon」といった高可用性をサポートするタスクスケジューリングコンポーネントは、アプリケーション運用のための効率的で安定したリソース使用を保証する。「Docker Compose」や「Topology and Orchestration Specification for Cloud Applications」(TOSCA)といったアプリ構成管理コンポーネントでは、サービスの構造とアプリの構成を単純化できる。「etcd」のようなサービス発見・設定管理コンポーネントでは、コンテナインスタンスを横断するサービスの登録と発見ができ、ストレージとサービス構成の参照が可能になる。

 「Docker Swarm」や「Fleet」などのコンテナクラスタ管理コンポーネントは、クラスタメンバー管理、障害が起きたコンテナインスタンスの検出と復旧、カスタムイベントの伝達を担う。コンテナネットワークコンポーネントの「Docker Networking」「Weave Net」「Canal」などは、抽象化された統合型ネットワーク機能を提供する。「Fuxi」のようなコンテナストレージ管理コンポーネントはコンテナのデータ量を管理する。この層の全機能をカバーしているのは、「Kubernetes」など少数にすぎない。

多様な使い方

 「Next」は外部インテグレーション層で、多様な使い方を想定した広範なサポートを実現する。ビッグデータインテグレーションコンポーネントは、「Apache Hadoop YARN」や「Apache Spark」のような主要ビッグデータフレームワークを支援し、それぞれ独自のスケジューラを使いながら、コンテナのパワーを活用してクラウドにおけるパフォーマンスを最大限に引き出す。メッセージ待ち行列インテグレーションコンポーネントは、「Apache Kafka」のようなサードパーティーメッセージ待ち行列・ストリーミングプラットフォームをコンテナ環境にデプロイする。IaaSインテグレーションコンポーネントは、「OpenStack」などのIaaSプラットフォームにコンテナオーケストレーションを取り入れる助けになる。

 4番目の運用管理層は、運用やメンテナンスプロセスの合理化を目的とする。「Logstash」「OpenTracing」「Fluentd」といったコンテナモニターデータ収集コンポーネントは、コンテナの監視、分散環境におけるAPI呼び出し、統一された形でのデータ収集を行う。「Prometheus」や「Elasticsearch」のようなメトリックスストレージ、分析・通知コンポーネントは、常駐型のデータモデル計量法を使って収集したデータを分析し、通知を送信する。管理ポータルコンポーネントの「Kibana」や「Grafana」は、運用管理用に分析結果の次元ダッシュボードを提供する。

 次に来るコンテナインフラ層は運用環境の順応性を高める。コンテナOSコンポーネントの「Red Hat Enterprise Linux Atomic」や「VMware Photon OS」などは、コンテナ化されたアプリの実行をサポートする無駄のないOS機能を提供する。「ESXi」「KVM」「Hyper-V」といった汎用(はんよう)ベアメタルハイパーバイザーは、仮想化やクラウド導入のための汎用コンポーネントで、物理サーバ上でハードウェアリソースプールのための仮想化を実現する。

統合コントロールと価値共同創出

 コンテナイメージ管理層は、統合型のコントロールと価値の共同創出を保証する。プライベートイメージリポジトリーコンポーネントは、一元化された拡張性の高いコンテナイメージの管理、発見・配信、変更管理機能を提供。企業は「Docker Registry」や「CoreOS Quay Enterprise」といったコンポーネントをオンプレミスに導入することも、「Docker Cloud」や「Google Container Registry」「Amazon EC2」「Container Registry」のようなクラウドベースサービスで使うこともできる。「Docker Store」や「CoreOS Quay」といったパブリックイメージマーケットプレースコンポーネントは、コンテナイメージ共有のために、評判インジケーターの付いた信頼できるプラットフォームを提供する。

 最後から2番目の層は、エンドツーエンドのセキュリティを守るコンテナセキュリティに関連する。この層は、コンテナインフラからコンテナ運用管理とイメージ管理に至る完全な技術スタックと、イメージ作成からランタイム実行(イメージ署名と認証、役割ベースのアクセス管理、セキュリティポリシー管理、エンタープライズLDAPインテグレーションを含む)に至る全コンテナライフサイクルの守りを固める。

 例えば「Docker Content Trust」は、イメージタグのクライアントサイド署名および認証を徹底させ、「CoreOS Clair」はコンテナランタイムの脆弱(ぜいじゃく)性を静的に分析する。

アプリケーションライフサイクル高速化

 最後の層となるDevOps自動化は、アプリケーションライフサイクル高速化を実現する。この層は、コンポーネントの他の層への導入簡略化を支援するだけでなく、既存のクラウド環境やDevOpsツールと連携させて、シームレスなコラボレーションを保証する。例えば「Docker Machine」は主要クラウドサービスプロバイダー上のバーチャルホストにDocker Engineをインストールでき、管理機能を実現する。

 エンタープライズアプリケーションのプロフェッショナルは、それぞれの層について、ビジネスニーズに照らした機能範囲を評価しなければならない。ビジネスニーズを技術条件に当てはめる役割を主導し、各コンポーネントがそうしたニーズに対応できる能力を見極める必要がある。例えば、もし大規模Webアプリケーションが実績のある5000ノード以上のクラスタ管理機能を必要とする場合、KubernetesよりもMesosの方が適しているかもしれない。だが、KubernetesプロジェクトにはGitHubで9億5000人以上が貢献し、Mesosより活発なエコシステムを提供している。

本稿はForresterのチャーリー・ダイ、デイブ・バートレッティ両氏による報告書「Vendor landscape: container solutions for cloud-native applications」より抜粋。

ITmedia マーケティング新着記事

news099.jpg

CMOはつらいよ マッキンゼー調査で浮かび上がるAI時代の厳しめな業務実態
生成AI、研究開発、価格戦略……。慢性的なリソース不足の中でマーケターの業務範囲はま...

news017.jpg

「リンクレピュテーション」とは? SEO対策や注意点もわかりやすく解説
「リンクレピュテーションって何のこと?」「なぜ重要?」「リンクレピュテーションを意...

news213.jpg

MAツール「MoEngage」 DearOneが日本語版UI提供へ
NTTドコモの子会社であるDearOneは、AI搭載のMAツール「MoEngage」の日本語版を2025年1月...