企業のデジタルトランスフォーメーション(DX)を推進において、コンテナ型仮想化プラットフォーム「OpenShift」が脚光を浴びています。OpenShiftの概要やKubernetesとの違い、導入するメリットや機能について解説し、あわせてIT基盤の最適化を支援するCTCのC-Nativeを紹介します。
OpenShiftとは?
「OpenShift」とはRed Hat社が提供している、Linuxコンテナの運用環境を構築し、管理するためのプラットフォームを指します。Linux上でコンテナ(仮想的なユーザー空間)を構築するDockerやDockerレジストリ、コンテナの管理や運用を自動化するKubernetesなどで構成されるCaaS(Container as a Service)基盤です。
コンテナとは、「1台の物理サーバーで、複数のOSを動かす」仮想化技術の1つです。物理サーバーのCPU・メモリ・ストレージなどのリソースを専用ソフトウェアで複数に分割し、仮想サーバーに割り当てます。仮想化することで限られたリソースを無駄なく、かつ効率よく利用可能です。
大きく分けて2つの仮想化があり、「OSに仮想化のための専用ソフトウェアを導入するホスト型」と、「物理サーバーに専用ソフトウェアをインストールするハイパーバイザー型」です。ホスト型は手軽に導入可能で、繰り返し検証できるので、実践的な開発環境をすぐに用意したい場合に適しています。一方ハイパーバイザー型は、異なるOSを1つの物理サーバーで運用できるという特徴があります。
コンテナサービスはホスト型に近く、1つのOSで稼働し、ゲストOSを持たないため、ハイパーバイザー型より処理が速いという特徴があります。「OpenShift」の基盤となるDockerは代表的なコンテナエンジンで、アプリケーションの開発からリリースまでの期間を短縮するのに役立ちます。
OpenShiftとKubernetesの違い
Kubernetes(クーバネティスまたはクーベネティス)は、Linux上でコンテナを構築するDockerの運用管理と自動化を目的に設計されたオープンソースのソフトウェアです。「コンテナの組み合わせや負荷に応じた増減・最新バージョンへの切り替え・自己修復・クラスタの仮想化・監視とログ分析の機能」を提供します。
Dockerコンテナのアプリケーションを本格運用するために開発され、そのまま利用したいというニーズに応えてリリースされました。ただし、アップデートのサポート期間に制限があるため、試用プロダクトと見なされることが多いです。
OpenShiftは当初、独自設計のPaaSとして開発されていましたが、バージョン3でKubernetesを基盤とするコンテナ・プラットフォームに生まれ変わりました。Kubernetesにはない長期間のサポート、オープンソースの課題であるセキュリティの脆弱性対応などが強化されています。OpenShiftは企業でKubernetesの機能を利用するために、ディストリビューションされたプラットフォームです。
OpenShiftのメリット
OpenShiftは企業や組織のシステム環境をコンテナ化するソリューションで、アプリケーションの高速・軽量起動を実現します。コンテナエンジンをインストールすれば、オンプレミスやクラウドなどのシステム環境や場所を選ばず、アプリケーションを稼働させられます。必要なときにすぐにデプロイし、開発者1人でテスト環境を設定できるため、開発から運用までのサイクルを短縮することも可能です。
また、高いスケーラビリティにより時間帯に応じたサーバー台数の最適化や、アプリケーション自体のリソース消費量の減少・調整により、サービス集約数に比例したコストメリット向上が得られます。OpenShiftはこういったコンテナ技術のメリットを最大化します。
OpenShiftの機能
ここからは、OpenShiftの具体的な機能について解説します。Kubernetesの機能に加え、独自のコンポーネントを装備しています。
Integrated Docker Registry
OpenShiftはソースコードを変換し、デプロイし、ライフサイクルを管理できます。それを実現するために、「イメージをローカルで管理できるように提供する、内部の統合Dockerレジストリ」がIntegrated Docker Registryです。RubyやPHP、Perl、NETなど60種類近くのイメージをサポートし、主要なコンテンツはほとんど対応可能です。
Software Defined Network
SDN(Software Defined Network)は個々のネットワーク機器の制御とデータ転送処理の機能を分離し、ソフトウェアによるネットワークの集中制御を可能とする技術です。OpenShiftのSDNはサーバーをまたいだコンテナ間の通信を、シングルテナントかマルチテナントで構成できます。シングルテナントは1つのオーバーレイネットワークで利用する方式で、マルチテナントはプロジェクトごとにオーバーレイネットワークを分ける方式です。
Build Configuration
Build ConfigurationはDocker imageを作成するための設定です。ビルドは入力パラメーターの結果として作成するオブジェクトに変換するプロセスを示します。OpenShiftではビルドイメージからコンテナを作成し、イメージレジストリーによってKubernetesを使用できるようになります。ビルドはリソースの制御・CPUやメモリの使用・ビルドやPodの実行時間などの、リソース制限を指定することが可能です。
Deployment Configuration
Deployment Configurationは、Kubernetesを拡張したコンテナ型アプリケーションを実際の運用環境に配置・展開するための設定を指します。「デプロイが失敗した場合の手動」または「自動サポートによるアプリケーションのバージョン管理」や、「レプリケーション(複製化)の手動・自動スケーリング」といった機能があります。
C-NativeでIT基盤の最適化を支援
C-NativeはCTC(伊藤忠テクノソリューションズ株式会社)が提供するクラウドネイティブソリューションです。インフラからアプリまでマルチクラウドの実現をサポートし、クラウドネイティブのコアな技術をフル活用した製品・技術を投入しています。クラウドネイティブとはクラウド仕様で設計されたシステムやサービスのことです。
コンテナ型仮想化によりOSや基盤に影響を受けず、高可搬性・高集約や作業負荷の軽減、インフラの老朽化対応が期待されます。また、Kubernetesの採用により複数のコンテナのデプロイやルーティングなどの運用管理を担い、サービスの維持・管理を実現します。
まとめ
OpenShiftはコンテナ型仮想化プラットフォームで、アプリケーションの開発期間を短縮します。Dockerの運用管理・自動化を行うKubernetesを基盤にし、独自のコンポーネントを実装しているのが大きな特徴です。CTCのC-Nativeはコンテナ型仮想化とKubernetesを採用し、クラウドソリューションに効果を発揮します。