連載 [第1回] :
  Red Hat OpenShiftの全貌

コンテナ市場の利用シーンとOpenShift

2018年11月8日(木)
河野 恭之
本連載の1回目として、OpenShiftが求められている背景や、クラウドネイティブアプリケーションについて解説します。

1. Red Hat OpenShift Container Platformとは

Red Hat OpenShift Container Platform(以下、OpenShift)は、LinuxコンテナとKubernetes、CI/CDに利用できる多くのオープンソースソフトウェアのエンタープライズ利用を実現するコンテナアプリケーション開発・実行プラットフォームです。OpenShiftを利用することで、アプリケーションのアーキテクチャに関係なく、あらゆるインフラストラクチャで、オンプレミス、仮想化、プライベートクラウド、パブリッククラウドのいずれにも容易かつ短時間にアプリケーションの構築、開発、デプロイを行えるようになります(図1)。

図1. OpenShift Container Platformの概要

図1. OpenShift Container Platformの概要

2. OpenShiftが必要となったビジネス背景

近年、多くの企業がこれまでにない競争にさらされています。例えば、数年前まではインターネットサービスのスタートアップだった企業がイノベーションとともに金融業、流通業、通信業、または製造業にまで進出し、数年で市場勢力図を大きく塗り替えています。この動きは海外だけではなく日本でも活発に起きています。このようなビジネスの状況下、企業は今まで以上にITを活用したビジネス変革を実現するためのデジタルトランスフォーメーション(DX)の取り組みと新しい基盤の導入が必要不可欠となっています。新しい基盤とは、クラウドの活用をベースとしたクラウドネイティブアプリケーションの開発・実行・運用基盤です。そしてこれを実現するのが、OpenShiftなのです。

3. クラウドネイティブアプリケーションとは

OSSによるクラウドネイティブコンピューティングを推進する団体であるCloud Native Computing Foundation(CNCF※1)では、クラウドネイティブコンピューティングを下記のように定義しています。

コンテナパッケージ化

アプリケーションデプロイメントの分離単位、またはハイレベルのリソース分離を達成するためのメカニズムとして、ソフトウェアコンテナ内でアプリケーションおよびプロセスを実行します。これにより、開発者は開発に集中することで生産性が向上し、コードやコンポーネントの再利用を促進し、クラウドネイティブアプリケーションの操作を簡素化します。

動的オーケストレーション管理

集中的なコンテナオーケストレーションプロセスによって、スケジュールが管理されます。メンテナンスや運用のコストを削減しながら、マシンリソースの利用率を大幅に向上させます。

マイクロサービス指向

明示的に記述された依存関係により、複数のサービスを疎結合で連携します。これにより、アプリケーションの全体的な敏捷性と保守性を大幅に向上させます。

Red Hatもクラウドネイティブの定義はCNCFと同様に考えており、既存のトラディショナルアプリケーションとの違いは、下記のようになると考えています。

トラディショナルアプリケーションとクラウドネイティブアプリケーションの差異

対象トラディショナルアプリケーションクラウドネイティブアプリケーション
実行環境サーバ中心コンテナ中心
拡張垂直スケールアップ水平スケールアウト
連携大規模で密結合疎結合&サービスベース
環境依存インフラストラクチャ依存インフラストラクチャ非依存のポータビリティ
開発・デリバリウォーターフォール、セミアジャイル、長期デリバリアジャイル&継続デリバリ
開発ツールローカルIDEと開発ツールクラウドベースでインテリジェントなツール
体制サイロ化された開発、運用、セキュリティチームDevSecOps、NoOps、またはコラボレーション

※1 Cloud Native Computing Foundation(CNCF)URL:https://www.cncf.io/about/faq/

4. Kubernetes とCloud Native Computing Foundation(CNCF)

Kubernetes(先頭のkと末尾のsの間に8文字あることから、k8sと略される)は、Linuxコンテナの操作を自動化するオープンソースプラットフォームです。Kubernetesを使用すると、コンテナ化されたアプリケーションのデプロイとスケーリングに伴う多くのプロセスを自動化することができます。つまり、Linuxコンテナを実行しているホストをまとめてクラスタ化できるようになり、これらのクラスタを容易に、かつ効率的に管理することができるようになります。ここで言う「クラスタ」には、パブリック、プライベート、ハイブリッドクラウドにまたがるホストが含まれます。

Kubernetesは元々、Googleのエンジニアによって開発および設計されました。GoogleはLinuxコンテナテクノロジーに当初から貢献してきており、Googleのすべての業務がコンテナで実行されていると公言しています※2。このテクノロジーが、Googleのクラウドサービスを支えています。Googleでは毎週20億以上のコンテナをデプロイしており、これらすべては内部プラットフォームであるBorgから行われています。BorgはKubernetesの前身であり、何年にもわたってBorgを使用して得られた教訓が、Kubernetesテクノロジーの背後にある主要な原動力となっています。

Red Hatは、Kubernetesに関してGoogleと最初に連携した会社の1つです。Kubernetes発表前から関わってきたRed Hatは、Kubernetesアップストリームプロジェクトにおける第2位のコントリビューターになっています(図2を参照。Red Hatは2018年2月にCoreOS社を買収)。2015年にGoogleは、新しく設立されたCloud Native Computing FoundationにKubernetesプロジェクトを寄贈しました。

図2. Kubernetesプロジェクトへの企業別貢献度

図2. Kubernetesプロジェクトへの企業別貢献度

※2 Googleのコンテナ URL:https://cloud.google.com/containers/

Cloud Native Computing Foundation(CNCF)

CNCFは、2015年にLinux Foundation傘下でクラウドネイティブコンピューティングを汎用的で持続可能にすることを目的に設立され、クラウドネイティブシステムを推進するためのオープンソースソフトウェア団体です。現在、Red Hatを含む300社以上のメンバ企業で運営されており(図3)、Kubernetesを含む27のプロジェクトをホストしています(2018年9月現在)。中でもKubernetesは、最初の「Graduated(卒業)」プロジェクトとして独立したプロジェクトに認定されています。また、CNCFではCertified KubernetesとしてKubernetesサービスプロバイダの認定や、Kubernetes管理者、Kubernetesアプリケーション開発者の認定をすることで、Kubernetesの普及にも尽力しています。

図3. CNCF Platinum Member(2018年9月現在)

図3. CNCF Platinum Member(2018年9月現在)

5.アプリケーション開発者、インフラストラクチャ運用者へのコンテナのメリット

OpenShiftのベースとなるコンテナは、アプリケーション開発者、インフラ運用者に統一的な手法を提供し、それぞれにメリットを提供します(図4)。

図4.コンテナのメリット

図4.コンテナのメリット

アプリケーション開発者のメリット

アプリケーション開発者は、アプリケーションを動かす上で必要なライブラリなど依存関係をコンテナにまるごとパッケージすることで、実行時の環境依存の問題から解放されるようになります。また、コンテナで作成された開発環境やテスト環境をすぐ入手することができるので、アプリケーション開発に集中できるようになります。

インフラストラクチャ運用者のメリット

一方、インフラストラクチャ運用者は、動作が確認されているコンテナを常に同一手順で受け入れることができるため、言語や技術、バージョン等によってデプロイ方法を変える必要はありません。また、コンテナはホストサーバからはOSプロセスとして見えるため、統一された手法で一元管理ができるようになります。さらに、仮想イメージのようにOSデータがすべて含まれた巨大なデータではないので、軽量で高速に起動/停止できるというメリットもあるのです。

6. Red Hatのオープンハイブリッドクラウド戦略

Red Hatでは、お客様がパブリック、プライベート、オンプレミスと自由にクラウド環境を選ぶことができ、アプリケーションはどのクラウド環境でも同じように動作し、クラウドをまたいだ運用・管理を容易に実現できる基盤である「オープンハイブリッドクラウド」を提唱しています。これにより、「安全な環境の利用」「迅速な利用」、そして安価であるという真のクラウドの価値を獲得できるようになります。オープンハイブリッドクラウドの構成要素は、下記の3つです。

  • ハイブリッドクラウド基盤
  • クラウドネイティブアプリケーション基盤
  • クラウド対応の管理・自動化

OpenShiftは、それぞれの構成要素で中心的な役割を果たします(図5)。

図5.Red Hatのオープンハイブリッドクラウド戦略

図5.Red Hatのオープンハイブリッドクラウド戦略

7. Red Hatが提供するOpenShiftラインナップ紹介

Red Hatでは、利用スタイルに合わせて3つの利用形態を提供しています。

OpenShift Container Platform

OpenShift Container Platformは、Red Hat Enterprise Linuxがサポートするインフラストラクチャに対する一貫したアプリケーション環境を提供します。これにより、オンプレミスのデータセンター、パブリッククラウド、プライベートクラウドと場所を問わずに、どこでも同じように動作させることが可能となります。

OpenShift Dedicated

OpenShift Dedicatedは、Red Hatが管理するシングルテナントのエンタープライズKubernetesクラスタを提供します。管理者権限による環境設定はネットワークの設定やセキュリティ設定などいくつかの項目に制限されますが、利用者はインフラストラクチャの構築やバージョンアップ、管理の煩わしさから開放された利用が可能となります。

OpenShift Online

OpenShift Onlineは、パブリッククラウドで管理されたエンタープライズKubernetesを提供します。管理者権限によるOpenShift環境の設定変更はほぼできませんが、利用者はインフラストラクチャの管理を気にすることなく、アプリケーションの開発と運用に注力することができます。

8. トレーニングツールの紹介

ここではOpenShiftを学ぶためのいくつかのコンテンツを紹介します。

Red Hatラーニングサービス

Red HatではラーニングサービスにてOpenShiftを体系立てて学習できるサービスとしてラーニングパスを提供しています。講師によるオンサイトでのトレーニングやオンラインでのセルフサービストレーニングとラボ環境を受講できます。確実に技術を習得したい場合や実プロジェクトでの使用のために短期で習得したい場合、認定試験を取得する場合はこちらをご利用ください。

Red Hat ラーニング・パス: OpenShift

Red Hat 認定スペシャリスト(OpenShift Administration)

Red Hat 認定スペシャリスト(OpenShift Application Development)

Learn.openshift

様々なシナリオを想定して、ブラウザ上からOpenShiftをコマンドライン実行でインタラクティブに操作できるラーニング環境を提供しています。ここではOpenShiftの操作方法や、実際の問題の確認方法などを身につけることができます。

https://learn.openshift.com/

Red Hat Container Development Kit(CDK)

ご自身のマシンやクラウド環境で動作を確認するための環境(テスト用のミニ構成の仮想環境)とテストシナリオを提供しています。実際の動作や設定方法を確認したい場合は、このサイトの情報を利用してください。

https://developers.redhat.com/products/cdk/overview/

なお、レッドハットラーニングサービスの内容や受講方法については、次回の記事にて詳しく説明します。

今回はOpenShiftの概要やメリット、関連技術について説明しました。実際にOpenShiftを構築、利用する手順は今後の連載で説明します。お楽しみに。

レッドハット株式会社

テクニカルセールス本部 ミドルウェアソリューションアーキテクト部 アソシエートマネージャ
オープンソースの可能性と必要性を感じて2009年にレッドハットに入社。 主にJBossアプリケーションサーバやインテグレーション、BPM製品のプリ セールスを担当。最近は、ミドルウェアに加え急速に需要が増えている OpenShift のプリセールスや布教活動を担当。

連載バックナンバー

クラウド技術解説
第5回

OpenShift:アプリケーションの構成と運用

2019/3/28
連載5回目となる今回は、OpenShiftでデプロイしたアプリケーションの運用に関するトピックを紹介する。
クラウド技術解説
第4回

Projectとアプリケーションデプロイ

2019/1/18
連載4回目となる今回は、OpenShiftにおけるProjectの解説、イメージのビルドやデプロイについて学びます。
クラウド技術解説
第3回

開発環境の準備とOpenShiftへのアクセス

2018/12/20
連載3回目となる今回は、OpenShiftの学習と開発のための環境を準備する手順を紹介いたします。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています