恭之Tweet本連載の1回目として、OpenShiftが求められている背景や、クラウドネイティブアプリケーションについて解説します。Platform(以下、OpenShift)は、LinuxコンテナとKubernetes、CI/CDに利用できる多くのオープンソースソフトウェアのエンタープライズ利用を実現するコンテナアプリケーション開発・実行プラットフォームです。OpenShiftを利用することで、アプリケーションのアーキテクチャに関係なく、あらゆるインフラストラクチャで、オンプレミス、仮想化、プライベートクラウド、パブリッククラウドのいずれにも容易かつ短時間にアプリケーションの構築、開発、デプロイを行えるようになります(図1)。近年、多くの企業がこれまでにない競争にさらされています。製造業にまで進出し、数年で市場勢力図を大きく塗り替えています。この動きは海外だけではなく日本でも活発に起きています。このようなビジネスの状況下、企業は今まで以上にITを活用したビジネス変革を実現するためのデジタルトランスフォーメーション(DX)の取り組みと新しい基盤の導入が必要不可欠となっています。これを実現するのが、OpenShiftなのです。Foundation(CNCF※1)では、クラウドネイティブコンピューティングを下記のように定義しています。コンテナパッケージ化アプリケーションデプロイメントの分離単位、またはハイレベルのリソース分離を達成するためのメカニズムとして、ソフトウェアコンテナ内でアプリケーションおよびプロセスを実行します。これにより、開発者は開発に集中することで生産性が向上し、コードやコンポーネントの再利用を促進し、クラウドネイティブアプリケーションの操作を簡素化します。集中的なコンテナオーケストレーションプロセスによって、スケジュールが管理されます。メンテナンスや運用のコストを削減しながら、マシンリソースの利用率を大幅に向上させます。明示的に記述された依存関係により、複数のサービスを疎結合で連携します。これにより、アプリケーションの全体的な敏捷性と保守性を大幅に向上させます。Hatもクラウドネイティブの定義はCNCFと同様に考えており、既存のトラディショナルアプリケーションとの違いは、下記のようになると考えています。Foundation(CNCF)Kubernetes(先頭のkと末尾のsの間に8文字あることから、k8sと略される)は、Linuxコンテナの操作を自動化するオープンソースプラットフォームです。Kubernetesを使用すると、コンテナ化されたアプリケーションのデプロイとスケーリングに伴う多くのプロセスを自動化することができます。Linuxコンテナを実行しているホストをまとめてクラスタ化できるようになり、これらのクラスタを容易に、かつ効率的に管理することができるようになります。ここで言う「クラスタ」には、パブリック、プライベート、ハイブリッドクラウドにまたがるホストが含まれます。Kubernetesは元々、Googleのエンジニアによって開発および設計されました。GoogleはLinuxコンテナテクノロジーに当初から貢献してきており、Googleのすべての業務がコンテナで実行されていると公言しています※2。このテクノロジーが、Googleのクラウドサービスを支えています。Googleでは毎週20億以上のコンテナをデプロイしており、これらすべては内部プラットフォームであるBorgから行われています。BorgはKubernetesの前身であり、何年にもわたってBorgを使用して得られた教訓が、Kubernetesテクノロジーの背後にある主要な原動力となっています。Hatは、Kubernetesに関してGoogleと最初に連携した会社の1つです。Hatは、Kubernetesアップストリームプロジェクトにおける第2位のコントリビューターになっています(図2を参照。Hatは2018年2月にCoreOS社を買収)。FoundationにKubernetesプロジェクトを寄贈しました。Foundation傘下でクラウドネイティブコンピューティングを汎用的で持続可能にすることを目的に設立され、クラウドネイティブシステムを推進するためのオープンソースソフトウェア団体です。Hatを含む300社以上のメンバ企業で運営されており(図3)、Kubernetesを含む27のプロジェクトをホストしています(2018年9月現在)。中でもKubernetesは、最初の「Graduated(卒業)」プロジェクトとして独立したプロジェクトに認定されています。KubernetesとしてKubernetesサービスプロバイダの認定や、Kubernetes管理者、Kubernetesアプリケーション開発者の認定をすることで、Kubernetesの普及にも尽力しています。Member(2018年9月現在)5.アプリケーション開発者、インフラストラクチャ運用者へのコンテナのメリットOpenShiftのベースとなるコンテナは、アプリケーション開発者、インフラ運用者に統一的な手法を提供し、それぞれにメリットを提供します(図4)。図4.コンテナのメリットアプリケーション開発者のメリットアプリケーション開発者は、アプリケーションを動かす上で必要なライブラリなど依存関係をコンテナにまるごとパッケージすることで、実行時の環境依存の問題から解放されるようになります。コンテナで作成された開発環境やテスト環境をすぐ入手することができるので、アプリケーション開発に集中できるようになります。インフラストラクチャ運用者のメリット一方、インフラストラクチャ運用者は、動作が確認されているコンテナを常に同一手順で受け入れることができるため、言語や技術、バージョン等によってデプロイ方法を変える必要はありません。コンテナはホストサーバからはOSプロセスとして見えるため、統一された手法で一元管理ができるようになります。仮想イメージのようにOSデータがすべて含まれた巨大なデータではないので、軽量で高速に起動/停止できるというメリットもあるのです。Hatでは、お客様がパブリック、プライベート、オンプレミスと自由にクラウド環境を選ぶことができ、アプリケーションはどのクラウド環境でも同じように動作し、クラウドをまたいだ運用・管理を容易に実現できる基盤である「オープンハイブリッドクラウド」を提唱しています。これにより、「安全な環境の利用」「迅速な利用」、そして安価であるという真のクラウドの価値を獲得できるようになります。オープンハイブリッドクラウドの構成要素は、下記の3つです。ハイブリッドクラウド基盤クラウドネイティブアプリケーション基盤クラウド対応の管理・自動化OpenShiftは、それぞれの構成要素で中心的な役割を果たします(図5)。Hatでは、利用スタイルに合わせて3つの利用形態を提供しています。Linuxがサポートするインフラストラクチャに対する一貫したアプリケーション環境を提供します。これにより、オンプレミスのデータセンター、パブリッククラウド、プライベートクラウドと場所を問わずに、どこでも同じように動作させることが可能となります。Hatが管理するシングルテナントのエンタープライズKubernetesクラスタを提供します。管理者権限による環境設定はネットワークの設定やセキュリティ設定などいくつかの項目に制限されますが、利用者はインフラストラクチャの構築やバージョンアップ、管理の煩わしさから開放された利用が可能となります。Onlineは、パブリッククラウドで管理されたエンタープライズKubernetesを提供します。管理者権限によるOpenShift環境の設定変更はほぼできませんが、利用者はインフラストラクチャの管理を気にすることなく、アプリケーションの開発と運用に注力することができます。トレーニングツールの紹介ここではOpenShiftを学ぶためのいくつかのコンテンツを紹介します。HatではラーニングサービスにてOpenShiftを体系立てて学習できるサービスとしてラーニングパスを提供しています。講師によるオンサイトでのトレーニングやオンラインでのセルフサービストレーニングとラボ環境を受講できます。確実に技術を習得したい場合や実プロジェクトでの使用のために短期で習得したい場合、認定試験を取得する場合はこちらをご利用ください。Development)Learn.openshift様々なシナリオを想定して、ブラウザ上からOpenShiftをコマンドライン実行でインタラクティブに操作できるラーニング環境を提供しています。ここではOpenShiftの操作方法や、実際の問題の確認方法などを身につけることができます。Kit(CDK)ご自身のマシンやクラウド環境で動作を確認するための環境(テスト用のミニ構成の仮想環境)とテストシナリオを提供しています。実際の動作や設定方法を確認したい場合は、このサイトの情報を利用してください。https://developers.redhat.com/products/cdk/overview/なお、レッドハットラーニングサービスの内容や受講方法については、次回の記事にて詳しく説明します。今回はOpenShiftの概要やメリット、関連技術について説明しました。実際にOpenShiftを構築、利用する手順は今後の連載で説明します。アソシエートマネージャオープンソースの可能性と必要性を感じて2009年にレッドハットに入社。プリセールスや布教活動を担当。第5回OpenShift:アプリケーションの構成と運用2019/3/28連載5回目となる今回は、OpenShiftでデプロイしたアプリケーションの運用に関するトピックを紹介する。第4回Projectとアプリケーションデプロイ2019/1/18連載4回目となる今回は、OpenShiftにおけるProjectの解説、イメージのビルドやデプロイについて学びます。開発環境の準備とOpenShiftへのアクセス2018/12/20連載3回目となる今回は、OpenShiftの学習と開発のための環境を準備する手順を紹介いたします。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。