クラウドコンピューティングに対するドッカーの影響、仮想ホスティングの革命

データセンターまたはクラウドコンピューティングITサークルの担当者であれば、通常のコンテナ、特にDockerについて1年以上聞いているはずですが、それらに関するニュースは止まることはありません。2014年6月にDocker1.0がリリースされた後、勢いは前例のないレベルに達しました。

有名な仮想ホスティングサービスプロバイダーであるSiliconCloudでさえ、2017年にすべての仮想ホスティングサービスをコンテナ化し、運用と保守の効率を大幅に簡素化し、可用性を向上させ、ダウンタイムを削減しました。これは、仮想ホスティング業界の革命です。SiliconCloud改善の旗を掲げる際に率先してください。

動きが非常に大きい理由は、多くの企業が驚くべき速度でDockerを採用しているためです。2016年7月のオープンソースカンファレンス(OSCon)で、サーバーアプリケーションを仮想マシン(VM)からコンテナにすでに移行している無数の企業に会いました。実際、Dockerのサービスおよびサポート担当副社長であるJames Turnbullは会議で、3つの主要銀行がDockerのベータ版を使用しており、現在は本番環境でDockerを使用していると語った。初期のテクノロジーにとって、これは間違いなく非常に自信に満ちた動きであり、安全第一の金融業界ではほとんど前例のないことです。

同時に、Dockerのオープンソーステクノロジーは、RedHatやCanonicalなどのLinuxの巨人にとって最愛の人ではありません。Microsoftなどの独自のソフトウェア会社も熱心にDockerを採用しています。

では、なぜ人々はコンテナとDockerを追求するのでしょうか。James Bottomleyは、Parallelsのサーバー仮想化のCTOであり、有名なLinuxカーネル開発者です。彼は、Hyper-V、KVM、Xenなどのハイパーバイザーは「仮想化されたハードウェアエミュレーションメカニズムに基づいています。これは、システムに対する要件が高いことを意味します」と説明しました。

ただし、コンテナは共有オペレーティングシステムを使用します。これは、システムリソースの使用において、ハイパーバイザーよりもはるかに効率的であることを意味します。コンテナはハードウェアを仮想化しませんが、単一のLinuxインスタンスに存在します。つまり、「役に立たない仮想マシンのゴミの99.9%を破棄し、アプリケーションが入った小さくて簡潔なカプセルコンテナを残すことができる」ということです。

したがって、Bottomleyによると、完全に調整されたコンテナシステムを使用すると、Xen仮想マシンまたはKVM仮想マシンを使用する場合よりも、同じハードウェア上に4〜6倍のサーバーアプリケーションインスタンスを配置できます。

いいですね。結局のところ、サーバーにさらに多くのアプリケーションを実行させることができます。では、なぜこれまで誰もそれをやったことがないのでしょうか。実際、誰かが以前にそれをしたことがあります。コンテナは実際には古い概念です。

コンテナは少なくとも2000年とFreeBSDJailsにまでさかのぼります。Oracle Solarisにもゾーンと呼ばれる同様の概念があります。Parallels、Google、Dockerなどの企業は、コンテナをスムーズかつ安全に実行するために、OpenVZやLXC(Linuxコンテナ)などのオープンソースプロジェクトの開発に取り組んでいます。

確かに、コンテナについて知っている人はほとんどいませんが、ほとんどの人は何年もの間それらを使用しています。Googleには、独自のオープンソースコンテナテクノロジーlmctfy(Let Me Contain That For You、つまり「Let Me Contain That ForYou」)があります。検索、Gmail、Googleドックなど、Googleの特定の機能を使用している限り、新しいコンテナが割り当てられます。

ただし、DockerはLXCに基づいています。他のコンテナテクノロジーと同様に、プログラムに関する限り、独自のファイルシステム、ストレージシステム、プロセッサ、およびメモリコンポーネントがあります。コンテナと仮想マシンの主な違いは、ハイパーバイザーがデバイス全体を抽象化するのに対し、コンテナはオペレーティングシステムカーネルのみを抽象化することです。

つまり、ハイパーバイザーが実行できることの1つは、コンテナーが実行できないことであり、別のオペレーティングシステムまたはカーネルを使用することです。したがって、たとえば、Microsoft Azureを使用して、Windows Server2012のインスタンスとSUSELinuxエンタープライズサーバーのインスタンスを同時に実行できます。Dockerの場合、すべてのコンテナーは同じオペレーティングシステムとカーネルを使用する必要があります。

一方、できるだけ多くのサーバーアプリケーションインスタンスをできるだけ少ないハードウェアで実行したい場合は、複数のオペレーティングシステム仮想マシンを実行する必要はありません。同じアプリケーションの複数のコピーがまさに必要なものである場合は、コンテナを気に入るはずです。

Dockerに切り替えることで、データセンターやクラウドコンピューティングサービスプロバイダーの電力とハードウェアのコストを毎年数千万ドル節約できると期待されています。したがって、彼らができるだけ早くDockerに群がっているのも不思議ではありません。

Dockerは、以前のテクノロジーにはなかったいくつかの新機能をもたらします。1つ目は、Dockerを使用すると、コンテナの展開と使用が以前の方法よりも簡単かつ安全になることです。さらに、Dockerは、Canonical、Google、Red Hat、Parallelsなど、コンテナ分野の他の巨人と協力して、主要なオープンソースコンポーネントlibcontainerを共同開発しているため、コンテナに待望の標準化をもたらします。

同時に、開発者の大多数はDockerを使用して、任意のアプリケーションをパッケージ化、配信、および実行できます。アプリケーションは、軽量でポータブルで、どこでも実行できる自給自足のLXCコンテナになります。Bottomleyが私に言ったように、「コンテナを使用すると、アプリケーションの移植性をすぐに楽しむことができます。」

市場調査会社である451ResearchのシニアアナリストであるJayLyman氏は、次のように述べています。「組織は、アプリケーションとワークロードを効率的で標準化された繰り返し可能な方法で移植および配布しやすくするよう努めていますが、これは困難な場合があります。 GitHubがソースコードを共有することでコラボレーションとイノベーションを促進するのと同様に、Docker Hub、公式リポジトリ、および商用サポートも、アプリケーションのパッケージ化、展開、および管理の方法を改善することで、多くの企業がこの問題に対処するのに役立ちます。」

最後になりましたが、Dockerコンテナはクラウドに簡単にデプロイできます。Ben Lloyd Pearsonがopensource.comに書いたように、「Dockerは特別なアプローチを採用しているため、Puppet、Chef、Vagrant、AnsibleなどのほとんどのDevOps(開発および運用)アプリケーションに統合したり、単独で使用したりできます。 、開発環境を管理する。主なセールスポイントは、これらの他のアプリケーションによって通常実行される多くのタスクを簡素化することです。具体的には、Dockerを使用すると、同じホストから実行されるアクティブサーバーとまったく同じようにローカル開発環境を構築できます。複数の開発環境(各開発環境には固有のソフトウェア、オペレーティングシステム、および構成があります)、新しいサーバーまたは異なるサーバーでプロジェクトをテストし、ローカルホストに関係なく、誰でもまったく同じ設定で同じプロジェクトで作業できるようにします環境は何ですか。」

つまり、Dockerでできることは次のとおりです。他のテクノロジと比較して、同じハードウェアでより多くのアプリケーションを実行できます。開発者は、いつでも実行できるコンテナ化されたアプリケーションを簡単に構築できます。これにより、アプリケーションの管理と展開のタスクが大幅に簡素化されます。全体として、Dockerがエンタープライズレベルのテクノロジーとして突然普及した理由を理解できます。それが期待に応えられることを願っています。そうでなければ、心配しているCEOやCIOが外にいるでしょう。

おすすめ

転載: blog.csdn.net/weixin_43205316/article/details/82704272
おすすめ