OpenshiftとOpenStackの違いは何ですか?


ベストアンサー

OpenStackはInfrastructureas a Service(IaaS)クラウドです。特定のOS(+その他の機能)に基づくイメージを使用して、特定のCPU /メモリ/ディスク/ネットワークのシステムを起動するためのインターフェイスをユーザーに提供します。エンドユーザーは、Openstackがsystem / vmを作成した後、システムの使用方法を決定できます。彼/彼女は、選択したアプリケーションなどをインストールして、ワークロードを実行できます。 OpenStackは、複数の仮想化ハイパーバイザーをサポートします。

OpenShiftは、Platform as a Service(PaaS)クラウドです。これにより、jboss / pythonなどのアプリケーションプラットフォームを選択し、実行するアプリケーション固有のコード/構成を使用してワークロードを直接実行するためのインターフェイスがユーザーに提供されます。これは、コンテナ/ポッドを使用して実装されます。テスト済み/認定済みのコンテナにRedHatのレジストリを使用するか、dockerregisterまたはその他のサードパーティのレジストリを使用することもできます。

回答

ほとんどの場合、比較する方法は1つではありません。異なるもの。そうは言っても、最初にこれらのそれぞれの必要性を定義し、それらをリンクします。

スタックの一番下から始めましょう。サーバーを実行するにはインフラストラクチャが必要です。何と一緒に行けますか? DigitalOceanなどのVPSプロバイダーを使用することも、AWSを使用することもできます。

技術的でない理由でAWSを使用できない場合はどうなりますか?たとえば、保存するデータと実行するサーバーは、サービスを提供する顧客と同じ地域にあり、AWSには同じ地域がないという法令遵守がありますか?

これはここで、 OpenStack が登場します。これはインフラストラクチャを管理するためのプラットフォームです。ベアメタルデータセンターで実行できるAWSのオープンソース実装と考えてください。

次に、スタックを上に移動します。アプリをパッケージ化して出荷する効率的な方法が必要です。一定量の車、石炭、綿をポイントAからポイントBに移動する実際の例を考えてみましょう。これらすべてを船に積み上げて送り出すわけではありません!コンテナを使用しています。コンテナは、商品を適切に隔離して梱包し、効率的に移動できるようにする標準化されたユニットです。

出典: UnsplashのAxelAhoi(@axelahoi)による貨物船の写真のコンテナ

Docker は、物理コンテナに相当するソフトウェアです。アプリの分離とパッケージ化を提供します。それらは簡単にスケーリングできます。コンテナ化テクノロジーはたくさんありますが、Dockerが主流です。

Dockerには非常に多くの利点があることに気づき、より多くのテクノロジーを使い始めます。アプリケーションを「コンテナ化」して、本番環境に出荷します。すぐに、あなたは新しい問題に直面します。これらすべてのコンテナを効率的に管理するにはどうすればよいですか?コンテナをオーケストラするにはどうすればよいですか?

ソース: UnsplashでのManuelNägeli(@gwundrig)によるオーケストラリハーサル写真

コンテナがそもそもオーケストラを必要とするのはなぜですか?たぶん、あなたはOSを実行しているデスクトップコンピュータでこの答えを読んでいます。ブラウザを開くと、OSはブラウザプロセスにメモリや計算能力などのリソースを割り当てます。しばらくして、ブラウザのタブを切り替え、しばらくしてから新しいプログラムを開きます。 OSは、すべてのプロセスが必要なコンピューティングリソースを公平に共有できるように、舞台裏で多くのハードワークを実行します。コンテナレベルのOSのようなものが必要です。これは、 Kubernetes が果たす正確な役割です。

Kubernetesに一連のコンピューティングリソース(ノードと呼ばれる)とワークロードを提供します。このPHPアプリを実行するための3つのコンテナーを作成して提供してください」と、Kubernetesは既存のコンピューティングリソースの上に前述のコンテナーを作成することに着手しました。 Docker swarmやMesosなど、他のコンテナオーケストレーションソリューションもあります。

Kubernetesはクラスタにとって、Linuxカーネルはオペレーティングシステムにとっての役割です。カーネルがOS内のプロセスのみを管理するように、Kubernetesはコンテナーのみを管理します。本格的なOSを実行するには、ユーザー、アクセス許可、デバイスドライバーなど、さらに多くのものが必要です。同様に、Kubernetes自体の有用性は限られています。仕様またはワークロードを指定すると、コンテナーをプロビジョニングできます。 Kubernetesに渡す前に、どのようにコンテナを構築しますか?新しいコードを出荷したら、どのようにして新しいKubernetesプロビジョニングを自動的にトリガーできますか?それを行うために、Kubernetesの上に構築されたソリューションはたくさんあります。ニーズに合わせて最適化して配線するか、 OpenShift を使用できます。

出典:現在、弓、リボン、クリスマスのHD写真 UnsplashのBenWhite(@benwhitephotography)

OpenShiftは、これらすべての機能を裸のKubernetesの上にきちんとパッケージ化された方法で組み合わせたKubernetesディストリビューションです。 OpenShiftはKubernetesにとって、UbuntuはLinuxカーネルにとってです。 これはKubernetesの「フォーク」ではなく、その上に構築されます。

OpenShiftがKubernetesの上に構築するものについて詳しく知りたい場合は、に関する私の投稿を確認してください。 トピック、 OpenShift vs Kubernetes-Craft of Coding

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です