クラウドコンピューティング、仮想化、コンテナ化について

クラウドコンピューティング、仮想化、コンテナ化について

[[268369]]

クラウドコンピューティングとは何ですか?

1.1 クラウドコンピューティングの概念

クラウド コンピューティングは近年登場したばかりの概念ですが、その需要は実のところ長い間存在していました。現時点で広く受け入れられている定義は、米国国立標準技術研究所 (NIST) によるものです。クラウド コンピューティングとは、コンピューティング リソース (ネットワーク、サーバー、ストレージ、アプリケーション ソフトウェア、サービスなど) の構成可能な共有プールへの、利用可能で便利なオンデマンド ネットワーク アクセスを提供する従量課金制モデルです。これらのリソースは、管理の手間やサービス プロバイダーとのやり取りをほとんど必要とせずに、迅速に提供できます。

クラウド コンピューティングの最も基本的な特徴は、「使用量に応じた支払い」、「リソース共有プール」、およびマルチテナント分離です。

1.2 クラウドコンピューティングの特徴

  • ハイパースケール

クラウドはかなりの規模を持っています。 Google クラウド コンピューティングにはすでに 100 万台以上のサーバーがあり、Amazon、IBM、Microsoft、Yahoo などのクラウドにはすべて数十万台のサーバーがあります。エンタープライズ プライベート クラウドには通常、数百または数千台のサーバーがあります。クラウドはユーザーに***のコンピューティング能力を提供することができます。

  • 仮想化

クラウド コンピューティングにより、ユーザーはさまざまな端末を使用して、どこからでもアプリケーション サービスにアクセスできます。要求されたリソースは、固定された実体からではなく、クラウドから提供されます。アプリケーションはクラウド内のどこかで実行されますが、ユーザーは実際にアプリケーションが実行される具体的な場所を知ったり心配したりする必要はありません。ノートパソコンや携帯電話があれば、ネットワーク サービスを使用して、スーパーコンピューティングなどのタスクも含め、必要なすべてのことを実現できます。

  • 高い信頼性

クラウドでは、フォールト トレランスのためのデータの複数のコピーや、同型で交換可能なコンピューティング ノードなどの対策を使用して、サービスの高い信頼性を確保します。クラウド コンピューティングを使用すると、ローカル コンピュータを使用するよりも信頼性が高くなります。

  • 汎用性

クラウド コンピューティングは特定のアプリケーションを対象としたものではありません。クラウドのサポートにより、さまざまなアプリケーションを構築でき、同じクラウドで同時に異なるアプリケーションの運用をサポートできます。

  • 高いスケーラビリティ

クラウドの規模は、拡大するアプリケーションとユーザー規模のニーズに合わせて動的に拡張または縮小できます。

  • オンデマンドサービス

クラウドは、オンデマンドで購入できるリソースの巨大なプールです。クラウドは水道水、電気、ガスのように請求できます。

  • 非常に安い

クラウドの特別なフォールトトレラント対策により、非常に安価なノードを使用してクラウドを形成できます。クラウドの自動化された集中管理により、多くの企業がデータセンター管理にかかる高騰するコストを削減できます。クラウドの汎用性により、従来のシステムと比較してリソースの使用率が大幅に向上します。そのため、ユーザーはクラウドの低コストの利点を十分に享受でき、以前は完了するのに数万ドルと数か月かかっていたタスクを、数百ドルと数日で完了できる場合がよくあります。

  • 潜在的な危険

クラウド コンピューティング サービスは、コンピューティング サービスの提供に加えて、必然的にストレージ サービスも提供します。しかし、クラウドコンピューティングサービスは現在、民間機関(企業)によって独占されており、商業信用しか提供できません。政府機関や商業組織(特に銀行などの機密データを保有する組織)は、クラウド コンピューティング サービスを選択する際に十分な注意を払う必要があります。民間組織が提供するクラウドコンピューティングサービスを商用ユーザーが大規模に利用するようになると、たとえその技術的優位性がいかに強力であったとしても、データ(情報)の重要性で社会全体を民間組織が人質に取ってしまうことは避けられません。

情報は情報社会にとって不可欠です。一方、クラウド コンピューティング内のデータは、データ所有者以外のクラウド コンピューティング ユーザーにとっては機密情報ですが、クラウド コンピューティングを提供する商業組織にとっては、実際にはまったく秘密ではありません。これらすべての潜在的な危険性は、民間機関や政府機関がクラウド コンピューティング サービス、特に外国の機関が提供するクラウド コンピューティング サービスを選択する際に考慮しなければならない重要な前提です。

1.3 クラウドコンピューティングの分類

  • パブリック クラウド: 使用する権利のみがあり、使用した分だけ料金を支払います。しかし、そのデータは他人の家に保存されています。データのセキュリティは保証されません。さらに、銀行はパブリッククラウドを使用しませんし、金融業界はパブリッククラウドを使用すべきではありません。パブリック クラウドの中心的な属性は、共有リソース サービスです。
  • プライベートクラウド: 自社のコンピュータルーム内に構築されたクラウド。プライベート クラウドには制限があり、リソースは固定されています。データは比較的安全です。プライベート クラウドの中心的な属性は、独自のリソースです。
  • ハイブリッドクラウド: 主なタスクはプライベートクラウドに配置され、一時的に必要なときにハイブリッドクラウドが使用されます。パブリッククラウドとプライベートクラウドを組み合わせて、最良の効果を実現します。このパーソナライズされたソリューションは、コストの節約と安全性の両方の目標を達成します。

1.4 クラウド コンピューティング レイヤー

クラウド コンピューティングにもレイヤーがあり、次のカテゴリに分類できます。

  • 従来のIT

基本的に、ネットワーク、ストレージ、サーバー、仮想化、オペレーティング システム、ミドルウェア、オペレーティング環境、データ、アプリケーションなど、すべてを自分で管理する必要があります。

  • クラウド

IaaS (Infrastructure-as-a-Service) は、中国語では Infrastructure as a Service として知られています。主な機能は、仮想マシンやその他のリソースをサービスとしてユーザーに提供することです。

  • パース

PaaS、Platform-as-a-Service、中国語名はPlatform as a Serviceです。従来のコンピュータアーキテクチャにおける「ハードウェア + オペレーティングシステム/開発ツール + アプリケーションソフトウェア」の観点から見ると、クラウドコンピューティングのプラットフォーム層はオペレーティングシステムや開発ツールと同様の機能を提供する必要があります。

実際、これは真実です。 PaaS は、インターネット経由でアプリケーション ソフトウェアを開発、実行、操作するための完全なサポート プラットフォームをユーザーに提供することを目的としています。パーソナル コンピュータ ソフトウェア開発モデルと同様に、プログラマーは開発ツールを使用して、Windows または Linux オペレーティング システムを搭載したコンピュータ上でアプリケーション ソフトウェアを開発および展開できます。 PaaS はミドルウェアと呼ばれることもあります。その主な機能は、ユーザー向けの開発および運用プラットフォームを提供することです。

  • クラウド

SaaS (Software-as-a-Service) は、Software as a Service の中国語名です。簡単に言えば、インターネットを通じてソフトウェアサービスを提供するソフトウェアアプリケーションモデルです。このモデルでは、ユーザーはハードウェア、ソフトウェア、開発チームの構築に多額の投資をする必要がなくなります。一定のレンタル料金を支払うだけで、インターネットを通じて対応するサービスを利用でき、システム全体のメンテナンスもメーカーの責任となります。

IaaS、PaaS、SaaS を一文でまとめると、クラウド コンピューティングを携帯電話に例えると、IaaS はハードウェアであり、使用するには自分でコードを記述してシステムを開発する必要がある、ということになります。 PaaS は携帯電話システムであり、特定の機能を実現するにはさまざまなソフトウェアをインストールする必要があります。 SaaS はハードウェア + システム + ソフトウェアであり、やりたいことは何でも 1 つの文で解決できます。

仮想化とは何ですか?

2.1 仮想化の概念

仮想化は、ソフトウェアを通じてコン​​ピューターのハードウェア リソース イメージを統合、管理、再配布するテクノロジです。一般的な方法には、仮想マシンベースの仮想化とコンテナベースの仮想化があります。

2.2 仮想化技術の分類

2.2.1 アプリケーションシナリオによる分類

  • オペレーティング システムの仮想化
  • アプリケーション仮想化
  • デスクトップ アプリケーション仮想化
  • ストレージ仮想化
  • ネットワーク仮想化

2.2.2 アプリケーションモードによる分類

1 対多: 1 台の物理サーバーが複数の仮想サーバーに分割されます。これは、一般的なサーバー統合モデルです。

多対 1: 複数の仮想サーバーが統合され、リソース プールとして使用されます。これは、典型的なグリッド コンピューティング モデルです。

多対多: 最初の 2 つのパターンを組み合わせます。

2.2.3 ハードウェアリソース呼び出しモードによる分類

  • 完全仮想化

完全仮想化: 仮想化されたオペレーティング システムは、基盤となるハードウェアから完全に分離されます。中間のハイパーバイザー層は、仮想化されたクライアント オペレーティング システムの呼び出しコードを基盤となるハードウェアに変換します。完全仮想化では、クライアントのオペレーティング システムを変更する必要がなく、互換性も良好です。代表的なものとしては、Vmware Workstation や KVM などがあります。

  • 準仮想化

準仮想化は、仮想クライアント オペレーティング システムに特定の仮想化命令を追加します。これらの命令により、ハードウェア リソースをハイパーバイザー レイヤーから直接呼び出すことができるため、ハイパーバイザー レイヤーで命令を変換する際のパフォーマンス オーバーヘッドが排除されます。準仮想化の代表的なものとしては、Microsoft Hyper-V や VMware の vSphere などがあります。

注: ディスク IO のレイヤーが 1 つ増えると必然的に速度が低下するため、IO レベルでは準仮想化の方が完全仮想化よりも優れています。一般的に言えば、IO はネットワーク IO とディスク IO を指します。これは、これら 2 つが比較的遅いためです。

2.3 ハイパーバイザベースの仮想化

ソフトウェア層のカプセル化により、物理ハードウェアと同じ入出力パフォーマンスを提供します。これにより、オペレーティングシステムとコンピュータハードウェアの分離が実現され、OS とコンピュータの関係が 1 対 1 から多対多 (実際には 1 対多) に変更されます。このソフトウェア レイヤーは仮想マシン マネージャー (VMM/ハイパーバイザー) と呼ばれ、ベア メタル (Xen、VMware EXSi) 上で直接実行することも、オペレーティング システム (KVM、VMware Workstation) 上で実行することもできます。この技術はすでに成熟していますが(40 年以上前に開発されました)、まだいくつかの問題が残っています。

  • 仮想マシン上では完全なオペレーティング システム (ゲスト OS) が実行されており、その下で仮想化レイヤーとホスト オペレーティング システムも実行されます。同じサービスを物理マシン上で直接実行するよりもパフォーマンスは確実に低下します。
  • ゲストOSの存在により、仮想マシンイメージは数GBから数十GBになることが多く、大きなストレージスペースを占有し、移植性が低くなります。
  • より多くのハードウェア リソースを使用するには、新しい仮想マシンを起動する必要があります。 GuesOS の起動を待つには、数十秒から数分かかる場合があります。

実際の使用シナリオでは、仮想化テクノロジーを使用して、オンデマンドでリソースを割り当て、サービスの展開と使用を完了すると同時に、サービスが依存する環境を分離して、他のサービスによって認識されたり干渉されたりしないようにします。この目的のためにゲストOSを起動する必要はありません。複数の仮想マシンでオペレーティング システム カーネルを共有し、サービスが使用するシステム リソースを制御しながら、サービス実行環境のみを分離することを検討してみてはいかがでしょうか。コンテナベースの仮想化はそのような技術です。

2.4 コンテナベースの仮想化

コンテナは、ゲスト OS のない軽量の仮想マシンです。複数のコンテナが OS カーネルを共有します。コンテナには、デプロイされるアプリケーションと、それが依存するシステム環境が含まれます。コンテナのサイズは通常、数十から数百 MB 程度です。コンテナはオペレーティング システム カーネルを共有するため、基盤となるオペレーティング システムに依存します。通常、各オペレーティング システムには独自のコンテナー テクノロジとコンテナー ツールがあります。

Docker は Linux コンテナ管理ツールです。 Docker の台頭により、Linux コンテナ テクノロジーも最も人気のあるコンテナ仮想化テクノロジーになりました。 OpenVZ、LXC、Docker、Rocket、Lmctfy など、Linux コンテナ ツールは数多くあります。それらのほとんどは、Linux カーネルによって提供される 2 つのメカニズム、Cgroups (オンデマンドのリソース割り当てを実現する) と Namespace (タスクの分離を実現する) に基づいています。

2.5 2つの仮想化技術の違い

  • 仮想マシン技術は長年にわたって開発が進められており、仮想マシンと仮想化層間のインターフェース、仮想マシンイメージフォーマットなどが標準化されています。対応する管理ツールと分散クラスタ管理ツールには比較的完全なソリューションがありますが、コンテナは近年登場したばかりであり、サポートするテクノロジと標準はまだ改善されています。
  • ゲストOSの存在により、仮想マシンはホストとは異なるOSを実行できますが、コンテナはホストカーネルと同じオペレーティングシステムしかサポートできません。
  • VMM の存在により、仮想マシンは互いに、またホスト マシンから適切に分離されます。コンテナはホストマシンのカーネル、システムコール、およびいくつかの基礎ライブラリを共有するため、分離性は比較的低くなります。
  • コンテナは仮想マシンよりも大幅に軽量です。ホスト オペレーティング システムにとって、コンテナーはほぼプロセスのようなものです。したがって、コンテナには、起動速度が速い (数秒またはそれ以上)、ストレージと使用量の密度が高い (イメージ サイズが小さい)、クラスター管理がより便利であるなどの利点があります。同時に、ゲスト OS がないため、コンテナ内でアプリケーションを実行し、ホスト マシン上で直接実行する場合のパフォーマンスの低下はほとんどなく、仮想マシンに比べてパフォーマンス上の利点が明らかです。

クラウドコンピューティングと仮想化の違い

クラウド コンピューティングと仮想化の違いを説明する古典的な格言があります。仮想化は、クラウド コンピューティングがリソース プールを構築するための主要な方法です。この文を徹底的に理解すれば、それらの関係がわかるでしょう。

簡単に言えば、クラウド コンピューティングは概念であり、特定のテクノロジーではありません。仮想化とは、ハードウェア リソースを仮想化して、分離、スケーラビリティ、セキュリティ、リソースの完全利用などの特性を実現する製品を指す特定のテクノロジです。

現在、クラウド コンピューティングは主に仮想化に依存しており、複数のサーバー エンティティを仮想化してリソース プールを形成し、共同コンピューティングと共有リソースを実現します。これが現在クラウド コンピューティングと呼ばれているものです。実際、この用語が作られる前から、サーバー クラスターはすでにこれらの機能を実現していましたが、現在ほど高度ではありませんでした。

3.1 各分野の代表的製品

  • クラウド コンピューティング アーキテクチャのオープン ソース製品は OpenStack です。これは、NASA と Rackspace が共同で開発および開始し、Apache ライセンスに基づいてライセンスされているフリー ソフトウェアおよびオープン ソース プロジェクトです。
  • 仮想マシン仮想化: 商用有料 vSphere または VM 用のオープンソース KVM。
  • コンテナ仮想化: Docker。

3.2 オープンスタック

Openstack は、ネットワーク コンポーネントを含む Neutron、ダッシュボードを含む Horizo​​n、コンピューティング リソースの割り当てを含む Nova など、多くのテクノロジを組み合わせたものです。

仮想化テクノロジーは、リソース プールを構築する方法の 1 つにすぎません。もちろん、物理マシンやコンテナなど、他の方法でリソース プールを構築することもできます。

数年と十数バージョンを経て、Openstack には現在、Keystone、Nova、Neutron、Cinder、Glance、Swift、Heat、Ceilometer などのコンポーネントがあり、クラウド プラットフォームに必要な比較的完全なモジュール セットを提供しています。

3.3 クラウドコンピューティングにおけるさまざまなレイヤーの選択

仮想マシンベースの仮想化またはコンテナベースの仮想化を選択します。初期の頃は、コンテナ技術が不完全だったため、クラウド コンピューティングの唯一の選択肢は仮想マシンでした。

コンテナ技術の台頭により、コンテナベースの仮想化は、パフォーマンスが向上し、配信が高速化され、管理が容易になり、リソースの使用率も高くなり、仮想マシンよりも優れたソリューションになると思われます。ただし、2 つの大きな欠点 (不十分な分離とオペレーティング システムへの依存) により、VM を完全に置き換えることはできません。 SaaS ユーザーや一部の PaaS ユーザーにとっては、これら 2 つの欠点はそれほど明白ではないかもしれません。現在、コンテナとクラウドコンピューティングの主な組み合わせは、SaaS と PaaS です。実際、ほとんどの SaaS および PaaS サービス プロバイダーはコンテナ テクノロジを使用しています。

しかし、IaaS ユーザーの場合はインフラストラクチャをレンタルします。独自のシステムとサービスを備えており、分離が弱いということは、セキュリティと信頼性が低いことを意味します。こうなると大口顧客は間違いなく不安になるだろう。同時に、オペレーティング システムへの依存性も、IaaS レイヤーでのコンテナの適用を制限する大きな問題です。これは、ほとんどのソリューションが VM 上でコンテナを実行する理由でもあります。このように、コンテナの優れたパフォーマンスの利点は、実際にはクラウドでは発揮されません。唯一の利点は起動が速いことです。

参照ドキュメント

https://www.google.com

http://t.cn/Ai98v0mw

http://t.cn/E5fCarY

http://t.cn/EzJpfCn

<<:  企業はクラウドに完全移行しており、物理マシンの販売は10年ぶりにマイナス成長を経験している

>>:  初志を貫き、再び五家万井(赤峰)情報技術産業パークへ出発

推薦する

企業への恐喝を理由に全国76のウェブサイトが閉鎖

新華社によると、記者が国家インターネット情報局から得た情報によると、最近、「人民ニュース​​動画ネッ...

フレンドリーリンクの用途は何ですか?友好的なリンクを素早く交換するにはどうすればいいですか?

数年間ウェブサイトに携わってきた私は、個人的には外部リンクよりもフレンドリーリンクを重視しています。...

domain.com - ホスティングが 40% オフ

domain.com では、スペース購入時に 40% 割引となる大きな割引コード 40HOSTING...

CBRCはP2Pを調査するために非公開会議を開催し、年末までに規制規則を発行する可能性があります

はじめに: P2P 業界が中国銀行業監督管理委員会の監督下に置かれたことを受けて、中国銀行業監督管理...

店舗の内部力を強化するには、どのような点から始めるべきでしょうか?

店は開業して2年になりますが、まだ利益が出ていません。先週、社長は広州に行き、Liebo Dafen...

ドメイン名の先占:侵害事件は年々増加、ビジネスチャンスと侵害は密接に関係

ジェレミー・リンは全米バスケットボール協会で急速に人気者となり、「リン・トルネード」もインターネット...

コンテナオーケストレーションについて1つの記事で学ぶ

コンテナ オーケストレーションは、現代のソフトウェア開発の鍵の 1 つであり、企業が大規模なコンテナ...

Android仮想マシンを検出するための方法とコード実装

Android エミュレーターの検出に関するオープンソース プロジェクト/記事/論文をいくつか読みま...

dedipath: 現在、米国西海岸で最も安価な無制限トラフィック サーバー。1Gbps 帯域幅 - 月額 70 ドル、10Gbps 帯域幅 - 月額 559 ドル

dedipath コンピュータ ルームは、ロサンゼルス コンピュータ ルームの独立サーバーのプロモー...

中国CITIC銀行のネットワークセキュリティ戦略のためのビジュアル管理プラットフォームの構築実践

タイトル:実践丨銀行全体の集中的な運用保守を推進し、業務のデジタル変革を可能にする――中国中信銀行の...

ビッグデータ時代はマーケターに何を教えてくれるでしょうか?

ビッグデータの時代が到来しました。将来、データは企業にとって最も重要で価値のあるものになるかもしれま...

企業の長期的な利用には、BaiduプロモーションとSEO最適化のどちらが適しているかを探る

現在、多くの企業は、企業が多くの顧客を獲得できる百度入札プロモーションに加えて、現在非常に人気があり...

中国初のITチャンネルメディア「コンピュータビジネスニュース」が運営停止

コンピュータビジネスニュースのホームページに残っているのは停止通知だけだ1月30日午前のニュースによ...