米国スタートアップ企業、Imperfect FoodsのDevOpsエンジニア、マシュー・グラスバーガー氏はWebメディア「TechTarget」で、「Docker」と「OpenShift」の主な違いについて解説した。DockerとOpenShiftにはそれぞれ長所と短所があり、どちらを選ぶかはアプリケーションと企業の具体的なニーズによって決まるという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
米国スタートアップ企業、Imperfect FoodsのDevOpsエンジニア、マシュー・グラスバーガー氏は2023年11月9日(米国時間)、Webメディア「TechTarget」で「Docker」とRed Hatの「OpenShift」の主な違いについて解説した。
コンテナ導入を検討するに当たっては多くの選択肢がある。選択肢があまりにも多いので、選択や比較が非常に混乱する恐れがある。コンテナアプリケーションのデプロイメントとスケーリングをシンプルにする機能を提供するのが、DockerとOpenShiftだ。
開発者もテスト担当者も、このDockerとOpenShiftの両ツールの機能と特徴を慎重に評価すれば、戦略的なコンテナ化に最適なツールを選択し、コンテナアプリケーションのデプロイメントを確実に成功に導くことができる。
Dockerは広く知られ、コンテナ化の標準ツールとして長きにわたって使用されている。Dockerは、機能を完備する独自のOS内にアプリケーションをパッケージ化する。この自己完結型のアプリケーションを作成するには、まず「Dockerfile」を作成し、ベースイメージ、依存関係、アプリケーションの設定、構築、実行に必要なステップを指定する。Dockerfileはシンプルなテキストファイルで、Dockerコンテナの構築手順を記述するために使用する。
Dockerの使用には、仮想マシン(VM)といった従来の選択肢よりも多くの利点がある。例えば、Dockerでは構築とデプロイがはるかに高速になる。Dockerfileはアプリケーション実行環境のドキュメントとしての役割も果たす。DockerはOSを問わず任意のシステム上で容易に再作成することもできる。
OpenShiftとは、「Kubernetes」を土台に構築されたコンテナオーケストレーションツールだ。OpenShiftを提供するRed Hatは、オープンソースソフトウェア(OSS)の世界では名の知られた存在で、「Red Hat Enterprise Linux」(RHEL)などを提供している。
RHELは、OSS「Linux」の商用ディストリビューションだ。しっかりとテストされた、安定した商用サポート付きのLinux OSを必要とする企業がRHELを利用する。RHELには、一般的なプログラミング言語、Webサーバ、データベースシステムなど、その他のソフトウェアパッケージの特定バージョンがバンドルされる。
OpenShiftも同様のパターンに倣い、Kubernetesに加えて、バグ修正、セキュリティパッチ、CI/CD(継続的インティグレーション/継続的デリバリー)ツール、その他の開発ツールがパッケージ化される。また、発生する問題のトラブルシューティングや解決を目的とする商用サポートも提供される。
Dockerは、コンテナ化に着手する場合に最も一般的に使われるコンテナ化ツールの一つだ。大手クラウドプロバイダーは全て、Dockerコンテナの運用に幅広いサポートを提供している。
一方で、多くのドキュメントや商用サポートがあったとしても、開発チームは、OpenShiftといった専門的なツールにあまりなじめない可能性がある。
Dockerだけを使用してDockerコンテナを運用環境にデプロイすることはあまり一般的ではない。デプロイメント、スケーリング、セキュリティ強化を容易にする目的で、コンテナを基盤として構築されたオーケストレーションツールが多数存在する。Dockerはこうした追加機能をサポートしないので、運用環境でDockerコンテナのアプリケーションを実行する場合はオーケストレーションツールが必要になる。
既にDockerによってアプリケーションのコンテナ化を済ませ、そのコンテナをデプロイして運用するプラットフォームを探しているなら、OpenShiftが優れた選択肢になる。OpenShiftでは、「Jenkins」「GitLab」といったツールによって、組み込みのCI/CD機能が提供される。また、Dockerイメージの格納や共有を目的とする、組み込みのイメージリポジトリも提供される。ユーザーは、OpenShiftによって、DevOpsベストプラクティスに従って、ソースコードリポジトリからアプリケーションをデプロイできる。
一方で「Docker CLI」を使えば、DockerをCI/CDパイプラインに統合できる。だが、OpenShiftの統合機能を使用するよりも手作業のプロセスが多くなる。
Dockerイメージを構築するためのプラグインを備えるCI/CDツールも数多く存在するが、OpenShiftの統合機能を利用する利点は、Dockerfileから運用環境にDockerイメージをデプロイするまでのプロセス全体を開発チームがOpenShiftエコシステム内で管理できることにある。
全体として、DockerとOpenShiftはいずれも、開発者やITチームがコンテナアプリケーションを運用、管理するのに役立つ強力なツールだ。
OpenShiftはDockerよりも複雑なプラットフォームで、必要最小限のKubernetesに加え、追加機能を提供するコンテナオーケストレーションツールを求めている場合に適している。
Dockerが軽量かつ柔軟なコンテナ化が必要な開発者にとって優れた選択肢なのに対し、OpenShiftは高度な機能やCI/CDパイプラインとの統合機能を必要とするエンタープライズ規模のアプリケーションにとって優れた選択肢になる。
Copyright © ITmedia, Inc. All Rights Reserved.