コンテナはオペレーティング システムの仮想化の一形態です。1つのコンテナを使用して、小規模なマイクロサービスやソフトウェアのプロセスから大規模なアプリケーションまで、あらゆる処理を実行できます。コンテナ内には、必要な実行可能ファイル、バイナリ コード、ライブラリ、および構成ファイルがすべて含まれます。ただし、サーバやマシンの仮想化アプローチと比較して、コンテナにはオペレーティング システムのイメージが含まれていません。これにより、軽量で移動性に優れ、オーバーヘッドも大幅に低減されます。大規模なアプリケーションの導入では、複数のコンテナを1つ以上のコンテナ クラスタとして導入できます。このようなクラスタは、Kubernetesなどのコンテナ オーケストレーション ツールによって管理できます。
コンテナは、開発者のローカル ノートパソコンからオンプレミスのデータセンター、さらにはクラウドまで、複数の環境でアプリケーションを構築、テスト、導入、再導入する合理的な方法です。コンテナには次のようなメリットがあります。
コンテナの一般的な活用方法には、次のものがあります。
コンテナ環境に携わる方なら、コンテナ構築や管理に使われる2つの人気ツールやプラットフォームについて耳にしたことがあるのではないでしょうか。DockerとKubernetesです。
Docker は、コンテナ内でソフトウェアを作成および構築するために使用される、一般的な稼働環境です。Dockerイメージ(コピーオンライトのSnapshots)を使用して、コンテナ化されたアプリケーションやソフトウェアを、開発からテスト、本番環境まで、複数の環境に導入します。Dockerは、オープン スタンダードで構築されており、Linux、Microsoft Windows、その他のオンプレミスまたはクラウドベースのインフラなどほとんどの一般的なオペレーティング環境内で機能します。
しかし、コンテナ化されたアプリケーションは複雑になりがちです。本番環境では多くの場合、数百から数千の個別のコンテナが必要になります。そのような場合、Dockerのようなコンテナ稼働環境では、運用中のすべてのコンテナをオーケストレーションまたは管理するために、他のツールを使用することが有効です。
この目的のために試用される代表的なツールの1つに、Dockerをはじめとする複数のコンテナ稼働環境を認識する、コンテナ オーケストレーション ツール、Kubernetesがあります。
Kubernetesは、複数のコンテナの処理をまとめてオーケストレーションします。コンテナ化されたアプリケーションに必要なコンピューティング、ネットワーク、ストレージのリソース量など、基盤となるインフラ リソースの使用状況などを管理します。Kubernetesのようなオーケストレーション ツールを使用すると、本番環境でコンテナベースのワークロードを簡単に自動化および拡張できます。
コンテナ テクノロジは、仮想マシン( VM )やサーバ仮想化テクノロジと混同されることがあります。基本的な類似点がいくつかあるものの、コンテナはVMとは大きく異なります。
仮想マシンはハイパーバイザー環境で実行されており、各仮想マシンにはその内部に、独自のゲスト オペレーション システムと、関連バイナリ、ライブラリ、アプリケーションファイルが含まれている必要があります。そのため、大量のシステム リソースとオーバーヘッドが消費されます。特に、複数のVMが同じ物理サーバ上で実行され、それぞれに独自のゲストOSが搭載されている場合はその傾向が顕著です。
これに対し、各コンテナは同じホストOSやシステム カーネルを共有し、サイズもメガバイト程度と非常に軽くなっています。そのため、コンテナの起動にかかる時間はわずか数秒ということもあります(一般的なVMではギガバイト、および数分かかります)。
NetAppは、コンテナ テクノロジを重視しており、アプリケーションや場所を問わず永続的ストレージを提供、管理できる実証済みのツールとイノベーションの開発に取り組んでいます。その重要な例の1つが、Tridentの開発です。Tridentを導入すると、コンテナ化したアプリケーションでオンデマンドの永続的ストレージの消費がかつてないほど容易になります。
NetAppは、ソフトウェア開発のスピードと即応性をさらに高め、DevOpsの促進に向け積極的に取り組んでいます。ストレージなどのインフラ リソースの消費は簡単にできるべきです。NetAppはアプリケーションをより簡単に拡張し、さまざまなプラットフォームに対応できるコンテナ管理ソリューションなどにより、その実現に尽力しています。
すでにDevOpsパイプラインにあるツールと統合することで、開発者、テスト、QA、運用チームはインフラストラクチャ リソースをコードとして消費できるようになりました。
導入場所を問わず、コンテナ化されたワークロードを高速化できます。オンプレミスでもクラウドでも、NetAppは包括的なデータ管理ソリューションを提供しています。
継続的統合と継続的導入(CI/CD)向けのNetAppソリューションは、開発者のエクスペリエンスを向上させ、ソフトウェアのテストとリリースの信頼性をいつでも高めることができます。
簡単にオンデマンドで。
データ管理とストレージにおける、国際的なリーダーの成功事例
APIプラットフォーム プロバイダであるBandwithは、音声、メッセージ、緊急電話などのサービスを通して多くの人々の生活に日々対応しています。Bandwidthの開発者は、企業のプラットフォームを進化させ、新しいサービスをいち早く市場に展開できるよう、イノベーションの促進に努めています。
PostFinanceは、スイス市場向けに特別に開発または調整された先進的なツールとテクノロジを導入しています。ネットアップのシステムは、銀行取引の安全性を確保する方法でファイル データを提供し、永続的なストレージで金融商品 / サービスの開発期間短縮に貢献しています。
DevOpsは、一般的なアプリケーション開発で常に必要とされる解決策です。サイロ化されたセルフサービス機能の代わりに、ソフトウェア開発(Dev)とIT運用(Ops)が、コンセプトから本番運用までのエンドツーエンドの責任で連携します。
NetAppは、オンプレミス、プライベートクラウド、パブリッククラウドで一貫したシームレスなDevOpsエクスペリエンスを提供します。つまり、運用部門が少ない技術作業でインフラの自動化を実現したり、開発者が軋轢を減らしながら信頼性と予測性の高い環境を構築したりできるようになるということです。