コンテナ市場の利用シーンとOpenShift
1. Red Hat OpenShift Container Platformとは
Red Hat OpenShift Container Platform(以下、OpenShift)は、LinuxコンテナとKubernetes、CI/CDに利用できる多くのオープンソースソフトウェアのエンタープライズ利用を実現するコンテナアプリケーション開発・実行プラットフォームです。OpenShiftを利用することで、アプリケーションのアーキテクチャに関係なく、あらゆるインフラストラクチャで、オンプレミス、仮想化、プライベートクラウド、パブリッククラウドのいずれにも容易かつ短時間にアプリケーションの構築、開発、デプロイを行えるようになります(図1)。
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 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の普及にも尽力しています。
5.アプリケーション開発者、インフラストラクチャ運用者へのコンテナのメリット
OpenShiftのベースとなるコンテナは、アプリケーション開発者、インフラ運用者に統一的な手法を提供し、それぞれにメリットを提供します(図4)。
アプリケーション開発者のメリット
アプリケーション開発者は、アプリケーションを動かす上で必要なライブラリなど依存関係をコンテナにまるごとパッケージすることで、実行時の環境依存の問題から解放されるようになります。また、コンテナで作成された開発環境やテスト環境をすぐ入手することができるので、アプリケーション開発に集中できるようになります。
インフラストラクチャ運用者のメリット
一方、インフラストラクチャ運用者は、動作が確認されているコンテナを常に同一手順で受け入れることができるため、言語や技術、バージョン等によってデプロイ方法を変える必要はありません。また、コンテナはホストサーバからはOSプロセスとして見えるため、統一された手法で一元管理ができるようになります。さらに、仮想イメージのようにOSデータがすべて含まれた巨大なデータではないので、軽量で高速に起動/停止できるというメリットもあるのです。
6. Red Hatのオープンハイブリッドクラウド戦略
Red Hatでは、お客様がパブリック、プライベート、オンプレミスと自由にクラウド環境を選ぶことができ、アプリケーションはどのクラウド環境でも同じように動作し、クラウドをまたいだ運用・管理を容易に実現できる基盤である「オープンハイブリッドクラウド」を提唱しています。これにより、「安全な環境の利用」「迅速な利用」、そして安価であるという真のクラウドの価値を獲得できるようになります。オープンハイブリッドクラウドの構成要素は、下記の3つです。
- ハイブリッドクラウド基盤
- クラウドネイティブアプリケーション基盤
- クラウド対応の管理・自動化
OpenShiftは、それぞれの構成要素で中心的な役割を果たします(図5)。
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 Administration)
Red Hat 認定スペシャリスト(OpenShift Application Development)
Learn.openshift
様々なシナリオを想定して、ブラウザ上からOpenShiftをコマンドライン実行でインタラクティブに操作できるラーニング環境を提供しています。ここではOpenShiftの操作方法や、実際の問題の確認方法などを身につけることができます。
Red Hat Container Development Kit(CDK)
ご自身のマシンやクラウド環境で動作を確認するための環境(テスト用のミニ構成の仮想環境)とテストシナリオを提供しています。実際の動作や設定方法を確認したい場合は、このサイトの情報を利用してください。
https://developers.redhat.com/products/cdk/overview/
なお、レッドハットラーニングサービスの内容や受講方法については、次回の記事にて詳しく説明します。
今回はOpenShiftの概要やメリット、関連技術について説明しました。実際にOpenShiftを構築、利用する手順は今後の連載で説明します。お楽しみに。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Netflix、データサイエンス分野におけるワークフロー構築ライブラリ「Metaflow Python」ライブラリをオープンソース化
- ブック・インサイド―『Python機械学習プログラミング』学び方ガイド
- Pythonの利用実態調査「Python Developers Survey 2018」発表、データ分析目的の利用が急増
- Pythonの利用実態調査「Python Developers Survey 2018」発表、データ分析目的の利用が急増
- NVIDIA、大規模データ分析およびマシンラーニング向けGPUアクセラレーションプラットフォーム「RAPIDS」リリース
- NVIDIA、大規模データ分析およびマシンラーニング向けGPUアクセラレーションプラットフォーム「RAPIDS」リリース
- Facebook、機械学習ライブラリ「PyTorch 1.0」をプレビュー公開
- データサイエンスプラットフォーム「Anaconda Distribution 5.0」リリース
- データサイエンスプラットフォーム「Anaconda Distribution 5.0」リリース
- Rubyでデータサイエンスするための3つのアプローチ、DataScience.rbで考察