コンテナ化とオーケストレーション。
特にシステム管理者の場合、DevOpsの世界でこれらの2つの用語に出くわした可能性があります。
コンテナ化とオーケストレーションの違いを説明しようとした記事はすでにたくさんありますが、それらのほとんどはDockerとKubernetesの比較に焦点を当てています。
ソフトウェアを区別する前に、そもそもなぜそれらが開発されたのかについて、それらの目的の違いを最初に理解することが不可欠です。
そのため、このクイックリードでは、コンテナ化とオーケストレーションという用語が、初心者と初心者のコアコンセプトとして実際に何を意味するのかを探りました。
コンテナ化とオーケストレーションをどのように区別できますか?例えを使ってみましょう。
コンテナという言葉は、個々の環境における大きな孤立した直方体を表しています。これらのコンテナは貨物を保管し、船に積み込まれます。

あなたはそれを造船所の船にドッキングされたコンテナとして想像することができます。
「Docked」、「Dockyard」、「Docker」!これらの用語はベルを鳴らしますか?
オーケストラという言葉は、指揮者の助けを借りて、またはコンサートマスターと呼ばれる、完全に同期して音符を演奏するミュージシャンのグループを表しています。

この完全に同期した音楽のハーモニーは、オーケストレーションと呼ばれるものです。
さて、DevOpsの観点から見て、このアイデアがコンピューターシステム内で実行されるアプリケーションの管理にどのように採用されたかを理解しようとすると、ミュージシャンをコンテナ「船」に置き換える必要があります。
ここで説明したアプリケーションは、船のコンテナ内に保持されている貨物に非常によく似ています。
したがって、Dockerソフトウェアを、さまざまなアプリケーションを実行するさまざまなコンテナーにドッキングされた船として視覚化できます。この船がどのように操縦されるかは、「クォーターマスター」によって異なります。 Dockerは、アプリケーションをコンテナー化して、単一の分離されたユニットとして実行します。
クォーターマスターが船の航行、操舵、信号を注意深く監視する責任があるのと同じように、Dockerはコンピューターシステムで実行されているコンテナーを効率的に管理する責任があります。
これらのコンテナは、仮想マシンまたは物理サーバーとして、独自の分離されたOSベースの環境内で個々のアプリケーションを実行することに注意してください。
複数のコンテナを単一の仮想マシンまたはサーバーで実行できます。これらの仮想マシンまたはサーバーは、船として表されていると考えることができます。
同じ行でKubernetesをどのように視覚化できますか?今、複数の船について考えてみてください。

これらの船のそれぞれは、複数のコンテナを運びます。 Kubernetesは、複数の仮想マシンまたはノードを調整して、相互に完全に同期して実行します。
Kubernetesという用語は操舵手、つまり船のパイロットを意味しますが、その用語を「港長」に関連付けると、私たちのアナロジーはよりよく理解されます。
港長が船の港に出入りする多数の船を「オーケストレーション」する方法と同じように、Kubernetesは同じことを行いますが、さまざまなコンテナを実行する複数の仮想マシンを使用します。船(システム)が1つしかない場合でも、複数のコンテナに同じアナロジーを使用できます。
「パフォーマンス」という言葉は引き続き使用できます。しかし、オーケストラでの演奏や港でのフリート演奏の代わりに、サーバーでのシステム演奏が可能になりました。
これで、物理サーバーでのコンテナー化とオーケストレーションの根本的な違いを明確に視覚化できるようになることを願っています。
この理解に基づいて、両方の簡単な定義で締めくくりましょう。
コンテナ化とは、仮想マシンまたは物理サーバー内の個々のOSベースの環境内に展開するためのアプリケーションの分離であり、一般にノードとも呼ばれます。このようなコンテナ化ツールの例はDockerです。
オーケストレーションは、複数のノードで実行されている複数のコンテナーと、ノード自体を同期する方法です。これらのノードは、仮想マシンまたは物理サーバーにすることができます。このようなオーケストレーションツールの例はKubernetesです。
Docker Swarmがオーケストレーションを実行するのと同じように、Kubernetesもコンテナ化を実行できることに注意してください。
この記事がお役に立てば幸いです。これで、説明した類推によって2つの概念を区別できるようになります。フィードバック、提案、コメントを共有したい場合は、以下のセクションを使用してください。