The Doppler Quarterly (日本語) 冬 2016 | Page 38
がないというわけではありません。 CoreOS のような企業には Rocket という独自のコン
テナー標準があり、コンテナーテクノロジーを中心として多くの標準や製品が構築され
ています。
コンテナーを恐れることはありません。このような種類のアプローチは今に始まったこ
とではなく、システム全体をコンポーネント化するアプローチとして、コンテナーは長年
使用されており、物理プラットフォームからのシステムの抽出、プラットフォーム間 ( ま
たはクラウド間 ) でのシステムの移動を可能にしています。
ひとまず Docker に注目してみましょう。コンテナー内の Linux カーネルでは、リソー
ス分離 (CPU、メモリ、I/O、ネットワークなど ) が可能となり、仮想マシンを起動する
必要はありません。Docker は、Linux コンテナー (LXC) と呼ばれるコンテナー形式
を、分離されたプロセスを実行する軽量の仮想化ソリューションが可能な高レベル API
により拡張します。また、プロセスツリー、ネットワーク、ユーザー ID、ファイルシステ
ムを含む名前空間を提供して、オペレーティング環境のアプリケーションビューを完全
に分離します。
このテクノロジーで、目に見える大きな問題を解決できると考えると、その利点が際立
ちます。たとえば、クラウドプラットフォーム間で真のアプリケーションポータビリティ
を可能にするには、またクラウドコンピューティングを単純なアーキテクチャーから複雑
なアーキテクチャーに移行した時の成功率を高めるにはどうすればよいのかと言った問
題です。
Docker コンテナー内で仮想化を使用せずに軽量なプラットフォーム抽象化を実現する
機能により、クラウド間で移植可能なワークロードバンドルの作成がさらに効率化され
ます。多くの場合、仮想化はワークロードを移行するのに非常に厄介な作業です。そ
のため、コンテナーは、ワークロードをハイブリッド内であちこちに移動するための真
の基礎、または多少のアプリケーションの変更も必要としないマルチクラウド環境を提
供します。
重要なポイント
コンテナーには次のようないくつかの基本的な機能と利点があります。
• コンテナーの抽象化により複雑さが低減します。コンテナーは、アプリケーション
インフラストラクチャ上の依存関係を必要としません。そのため、
プラットフォーム
サービスに対応する複雑なネイティブインターフェイスが不要です。
• 自動化の活用によりポータビリティが最大になり、手動によるスクリプト作成が自
動化に置き換わります。近頃、自動化を使用する場合の確実なポータビリティが
ますます困難になっています。
• コンテナーの外部で、セキュリティとガバナンスの強化が可能です。セキュリティと
ガバナンスのサービスは、アプリケーション固有ではなくプラットフォーム固有の
ものです。セキュリティとガバナンスのサービスをコンテナーの外部に置くことで、
複雑さを大幅に低減できます。
• 拡張された分散コンピューティング機能を提供します。これは、アプリケーション
をコンテナー内に入れたままで多数のドメインに分割することができるためです。
コンテナーが持つポータビリティの側面により、異なる多数のクラウドプラット
フォーム上での実行が可能になります。このため、エンジニアは、費用とパフォー
マンス効率に基づいて、稼働環境のプラットフォームを選択できます。
36 | THE DOPPLER | 2016年冬号