2018年03月06日 08時00分 公開
特集/連載

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

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

[Computer Weekly]
Computer Weekly

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

Computer Weekly製品導入ガイド無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly製品導入ガイド」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。


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

 インフラプラットフォームの基盤はオンプレミスとクラウドの両方で、仮想マシン(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」は、運用管理用に分析結果の次元ダッシュボードを提供する。

 次に来るコンテナインフラ層は運用環境の順応性を高める。

この記事を読んだ人にお薦めの関連記事

注目テーマ

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

news075.jpg

インティメート・マージャー、B2B向けリードジェネレーションツール「Select DMP」の提供を開始
インティメート・マージャーは、B2B向けのリードジェネレーションを目的としたニーズ検知...

news071.jpg

サイバーエージェント、サイト滞在時間を最大化するDSP「Skyrocket」を提供
サイバーエージェントは、サイト滞在時間を最大化するDSP「Skyrocket」の提供を開始した...

news023.jpg

2018年上半期、テレビで最も長時間話題になったのは「北朝鮮情勢」(181時間56分14秒)――エム・データ調べ
エム・データは、「2018年上半期TVニュースランキング」を発表しました。