マネージド OpenShift は悩めるコンテナ基盤選びの模範解答かもしれない

# はじめに
コンテナ、Kubernetesへの期待が高まる中、企業情報システムで次期ITインフラとしてコンテナ基盤を検討されているお客様からは以下のような声を耳にします。

- Kubernetes には興味があるが**学習コスト**が高く一歩を踏み出せない
- 技術を内製化したいがKubernetes を**自社運用**していける体力はない
- やりたいことは**柔軟かつ迅速なアプリのライフサイクル**の実現
- 新しい技術のため初期投資を抑えて**スモール・スタート**で始めたい
- マネージド・サービスでも**ベンダー・ロックイン**はされたくない
- コンテナは停止することが前提でも基盤には**高可用性**が必要
- 本番利用にあたってはコンテナの**セキュリティ**が気になる

コンテナ基盤の採用にあたって上記のような課題を抱える方々におすすめしたいのが、Red HatとIBMが提供するフルマネージドのエンタープライズ向けコンテナ基盤[Red Hat OpenShift on IBM Cloud](https://cloud.ibm.com/docs/openshift?topic=openshift-getting-started&locale=ja)です。
[<img width="1274" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/1c1b6b65-dca1-8532-e403-e660234fca0b.png">](https://www.ibm.com/jp-ja/cloud/openshift)

この記事ではなぜRed Hat OpenShift on IBM Cloudが企業のKubernetes 基盤としておすすめなのか、その魅力を徹底解説します。フルマネージドのOpenShift といえば、2019年12月12日にRed Hat からパートナー企業向けプログラム[「Red Hat OpenShift Managed Practice Program」](https://cloud.watch.impress.co.jp/docs/news/1224250.html)を発表され、Microsoftの[Azure Red Hat OpenShift] (https://azure.microsoft.com/ja-jp/services/openshift/)を始め、[NEC](https://jpn.nec.com/press/201911/20191101_02.html)、[富士通](https://www.fujitsu.com/jp/products/software/os/linux/rhocp/)といった国産ベンダーからも提供されていますが、ここでは、本家Red Hat を買収したIBMのシナジー第一段として2019年6月に正式リリースされたRed Hat OpenShift on IBM Cloudについて取り上げます。

[参考：Red Hat OpenShift on IBM Cloudの発表：Kubernetes のメリットと IBM の専門知識を組み合わせて提供する | IBM ソリューション ブログ] (https://www.ibm.com/blogs/solutions/jp-ja/red-hat-openshift-on-ibm-cloud/)

# 魅力1. ポータルからワンクリックでコンテナ基盤を自動デプロイできる
<img width="805" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/1c8bc593-7637-4262-9b18-0436fdc6fedd.png">

複数のコンポーネントが複雑に連携し合い動作するKubernetesクラスターを手組みで一から構築するのは大変です。DockerとKubernetesの上に成り立つOpenShiftでは、IPI (Installer Provisioned Infrastructure)やUPI (User Provisioned Infrastructure) が提供されており、クラウドAPIを活用した自動化により導入障壁が下がっておりますが、それでもOpenShiftが稼働するためのネットワーク、ストレージといったインフラ自体を設計するためには高度なスキルが求められます。

2015年の設立当初から[CNCF (Cloud Native Computing Foundation)](https://www.cncf.io/)のプラチナ・メンバーであるIBMは、2017年よりKubernetesベースのコンテナ基盤を提供しており、2019年現在、[IBM Cloud Kubernetes Service (IKS)](https://www.ibm.com/jp-ja/cloud/container-service) として、数千におよぶエンタープライズのお客様の本番 Kubernetes クラスターを14,000以上管理しています。これには、シビアな非機能要件が求められるIBMのエンタープライズのお客様向けに提供しているAI、IoT、ブロックチェーン環境も含まれています。

OpenShift on IBM Cloudでは、ポータルからワンクリックでこれまでのIBMのベストプラクティスが反映されたインフラ上でOpenShift環境を自動構築することができます。構成にもよりますがデプロイにかかる時間はおよそ20〜30分程度です。お客様はコンテナ基盤自体の設計・構築にコストをかけることなく、安心して本番システム向けのコンテナ基盤としてご利用いただけます。具体的なオーダー手順については、以下の記事が大変良くまとまっていますのでご参考ください。

[参考：IBMのRed Hat買収の成果「Red Hat OpenShift on IBM Cloud」によって、複雑なマルチゾーンのOpenShiftクラスタの構築はどれほど簡単になるのか？（出典：@IT）](https://www.atmarkit.co.jp/ait/articles/1910/21/news003.html)

# 魅力2. フルマネージドなのでコンテナ基盤そのものの運用が不要である
[<img width="1132" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/d7992d7f-2e8c-1465-6888-bb16d4e64169.png">](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift-service-arch&locale=ja)

実証済みのIaaS環境にお客様専用のコンテナ基盤を自動構築できるということはということは大変重要ですが、構築されたコンテナ基盤を自社で運用し続けられるかといういわゆるDay2オペレーションはそれ以上に重要です。コンテナ基盤を立てる作業はわずかでも、その後の運用は続きます。特にアップストリーム版のKubernetesは3ヶ月ごとにマイナー・バージョンがリリースされ開発ライフサイクルが非常に早く、バージョンアップに伴い、OpenShift もマイナーバージョン・アップデートやアップグレードが発生します。変化の早いテクノロジーのため構築後に塩漬け環境にするわけにはいかず、脆弱性やバグ情報をキャッチアップしながら運用していくにはそれなりに運用コストがかかります。自前運用の場合、例えば、Kubernetesの脆弱性が見つかってもアップデートができなかったり、再構築しようとしても運用リソースが足りなかったりといった事態が発生します。

OpenShift on IBM Cloudでは、IBMがOpenShiftのコントロールプレーンをフルマネージドで運用します。IBMがマスター・ノードおよびコンテナが稼働するワーカーノードの展開やリソースの自動化といったインフラ運用、およびコンプライアンス、パッチ、暗号化、ワーカーノードのセキュリティ更新など、主要な運用管理をお客様に代わり実施することで、Day2オペレーションにかかるコストを大幅に節約できます。サポートのカバー範囲については、[Red Hat OpenShift Container Platform](https://www.redhat.com/ja/explore/openshift)はもちろんのこと、ワーカーノードのホストOSとして[Red Hat Enterprise Linux (RHEL)](https://www.redhat.com/ja/technologies/linux-platforms/enterprise-linux)もしくは[Red Hat CoreOS](https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.2/html/architecture/architecture-rhcos)、コンテナイメージの[Red Hat Universal Base Image (UBI)](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/using_red_hat_universal_base_images_standard_minimal_and_runtimes)まで[プレミアム・サポート](https://www.ibm.com/jp-ja/cloud/support)付きで安心してご利用いただけます。これにより、本番環境の運用中に致命的な問題が発生した際にはIBM（バックエンドにはRed Hat）のサポートへアクセスすることで素早く問題解決することができます。単一のアカウントからバージョンとライセンスを管理できるだけでなく、以下のようなIBM Cloudが提供する運用管理サービスと統合することもできます。

- [Managed Istio](https://www.ibm.com/jp-ja/cloud/istio)
    - Istioのシームレスなインストール、コントロール・プレーン・コンポーネントの自動更新とライフサイクル管理を提供します。ロギングおよびモニター用のプラットフォーム・ツールと強力に統合されたマネージドIstioを新規または既存のクラスターに追加します。
- [IBM Cloud Continuous Delivery](https://www.ibm.com/jp-ja/cloud/continuous-delivery)
    - IBM、サード・パーティー、オープン・ソースからのツールで、カスタマイズや共有が可能なテンプレートを使用して、統合ツールチェーンを迅速にプロビジョンします。ビルドとテストを自動化し、分析によって品質を制御します。
- [IBM Cloud Container Registry](https://www.ibm.com/jp-ja/cloud/container-registry)
    - イメージがコンテナにデプロイされる前に脆弱性を検出します。マネージド環境のプライベートなレジストリー内にDockerイメージを保管したり配布したりすることができます。
- [IBM Cloud Monitoring with Sysdig](https://www.ibm.com/cloud/sysdig)
    - Kubernetesベースのアプリケーション、サービス、およびプラットフォームの運用状況を可視化します。
- [IBM Log Analysis with LogDNA](https://www.ibm.com/cloud/log-analysis)
    - ログ・データのフィルタリング、検索、およびテール、アラートの定義、そしてアプリケーションとシステムのログをモニターするカスタム・ビューの設計を行うための、拡張された機能を提供します。

フルマネージドのOpenShift基盤を利用することにより、企業ユーザーはインフラ運用から解放され、OpenShift上でコードを書くことだけに専念することができるのです。

<img width="1192" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/66798632-86f6-8bd1-8565-1276a2e76271.png">

# 魅力3. アプリ担当者がアプリ開発に集中できる環境を手に入れられる
<img width="551" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/8e98438f-bc87-31b6-f2c6-bb99843b3660.png">

コンテナ基盤自体をフルマネージドで提供されるだけでなく、OpenShift自体がアップストリーム版のKubernetes機能に加え、付加価値としてPaaSとCI/CD機能を標準搭載しています。標準機能として、Kubernetes上に構築されたPaaS機能やプライベートコンテナレジストリ、Jenkinsを利用したCI（Continuous Integration）機能、およびRouterによるCD（Continuous Delivery）機能を提供しています。アップストリーム版のKubernetsでは提供されていない機能には以下のようなものがあります。

- PaaS機能
    - s2i (source to image)ビルドとテンプレートにより、アプリケーションのソースコードからコンテナイメージを生成可能。
    - Dockerfileからコンテナイメージを生成することも可能。
- クラスタ内プライベートコンテナレジストリ
    - OpenShiftクラスタを構築すると、OpenShift上でビルドしたコンテナイメージの管理用にプライベートコンテナレジストリが自動構成される。
    - コンテナイメージ管理だけでなく、ImageStream機能によってコンテナイメージの変更履歴管理が可能。

- CI機能
    - コンテナ化したJenkinsを提供しており、Jenkinsによるビルドパイプラインを簡易に実行可能。
    - Jenkinsのslaveを起動してジョブの並列実行も可能。
    - OpenShiftプラグインが組み込まれており、Jenkinsのコンソール上での権限管理と
OpenShiftの権限管理が連動。

- CD機能
    - Router（実体はコンテナ化されたHAProxy）により、アプリケーションの複数バージョンに対して柔軟なワークロード分散が可能。
    - Blue-Greenデプロイやカナリアリリースなど複雑なデプロイ方式に対応。

- セルフサービスとマルチテナント対応
    - 高機能なWebベースの管理コンソール
    - ユーザーに対するきめ細かく厳格な権限管理

これらの機能により、コンテナアプリケーションの開発から運用のライフサイクル全体を通して、インフラ担当者の運用管理の負荷の軽減すると同時にアプリ担当者はアプリ開発に集中することができます。OpenShiftの詳細情報については以下をご参考ください。

[参考：Red Hat OpenShift 4入門 Enterprise Kubernetesへのファーストステップ]
(http://redhat.lookbookhq.com/OCP4Intro_Mook)
[参考：OpenShiftとKubernetesの違いと価値 - THINK Blog Japan](https://www.ibm.com/blogs/think/jp-ja/differences-values-openshift-and-kubernetes/)
[参考：「Red Hat OpenShift on IBM Cloud」によって、モノリシックなJava EEアプリを分割しマイクロサービスとして動かすのはどれほど簡単になるのか？（出典：@IT）](https://www.atmarkit.co.jp/ait/articles/1911/15/news002.html)

# 魅力4. 従量課金のため小さく始めて大きく育てることができる
テクノロジーが日進月歩となった今日では、実際に使いながら醸成するというアプローチが必然的に求められます。こうしたニーズに対して、従来型のソフトウェア・ライセンスの買い取りはマッチしないことが増えてきました。OpenShift on IBM Cloudはクラウドのリソースはもちろんのこと、Red Hatのライセンスも従量制課金で利用可能です。従量制課金により、期間ライセンスへのコミットメントは不要なため迅速に小規模で開始できます。必要なときに必要なリソースを追加し、不要になればいつでもキャンセルすることができますので、お客様は大規模な初期投資なくコンテナ基盤を利用することができます。ライセンスおよび主要コンポーネントの課金体系は以下のとおりです。

- Red Hat Enterprise Linux：時間単位
- OpenShift Container Platform：月次請求
- Multizone Load Balancer (MZLB) ：時間単位
- マスターノード：無料

価格プランの詳細については以下に公開されており、どなたでも見積もりが可能です。
[参考：IBM Cloud カタログ OpenShift on IBM Cloud](https://cloud.ibm.com/kubernetes/catalog/openshiftcluster)
<img width="943" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/7cef417f-72e0-f5b5-131e-9e558365e28e.png">

# 魅力5. いざというときにコンテナ基盤ごとオンプレ／他社クラウドへ移行できる

コンテナはオンプレミス、プライベート、パブリック・クラウドまで全てのIT基盤を凌駕するオープンかつハイブリッドな次世代プラットフォームと言われています。一方で、クラウド・ベンダー各社が提供するマネージド型のKubernetesは、各クラウドベンダーが提供しているネイティブなAPIを多く利用することになり、オープンと言いながらも他クラウドやオンプレに移行することが困難となりコスト抑制機会の損失が発生します。これに対して、OpenShiftベースのコンテナ基盤であれば、どんなアプリでもオンプレ、クラウド問わず、あらゆる環境で素早く、展開・移動が可能になります。さらに、OpenShift自体は、アップストリーム版のkubernetesとAPIレベルでの互換性があり、ユーザーへの相互運用性が保証されています。例えば、Kubernetesの提供する機能の範囲内であれば、ocコマンド（OpenShift固有のCLI）ではなく、kubectlコマンドを利用して他のk8s運用との互換性を担保できます。

OpenShiftベースのコンテナ基盤を採用することで、お客様にとっては、アプリの改修なしに自由にコンテナ基盤ごとアプリの移動を実現できますので、マルチクラウド環境での管理機能と一貫性を担保すると同時にベンダーロックイン回避によるコスト削減が見込まれるのです。

<img width="763" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/ee6a84f7-2991-3a1e-f222-6e18f909825d.png">

# 魅力6. 国内の高可用性ゾーンにお客様専用のコンテナ基盤を構築できる
現在、IBM Cloudは世界で60以上のデータ・センターと40以上の接続拠点で構成されています。そのうち東京リージョンを含む、ダラス、ワシントンDC、ロンドン、フランクフルト、シドニーの６リージョンでマルチゾーン・リージョンを提供しています。2019年6月には、IBM Cloudの西日本初となるネットワーク接続拠点（PoP：Point of Presence）が大阪に開設され、2020年には、大阪データセンターの開設も予定されております。OpenShift on IBM Cloudは、30以上のデータセンターと上記6つのマルチゾーン・リージョンを選択することができます。お客様は、これらのアベイラビリティー・ゾーンを活用することで、オンプレミスでは困難な高可用性なコンテナ基盤を手に入れることができます。例えば、下図のように３つのゾーン（データセンター）を跨いだ「超」高可用性なコンテナ基盤を構成することも可能です。

<img width="743" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/a9be26c8-a376-3fcb-d57b-157059af149a.png">
<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/e610c344-ff9d-915a-4bec-7684220839f6.png">

また、Kubernetesのワーカーノードとして、仮想サーバーだけでなくベアメタル・サーバーにも展開することもできるため、より高いセキュリティとパフォーマンスを担保することが可能です。専用線接続サービスであるIBM Cloud Direct Linkを提供していますので、公衆インターネット網を介さずに、お客様のデータ・センターと世界中のIBM Cloud データセンター間を低遅延かつセキュアに閉域接続することができるため信頼性の高いデータ転送を行うことができます。例えば、専用線接続サービス経由でベアメタル・サーバーを使ってOpenShiftクラスターを構成すれば、オンプレミスやホスティング同等以上にシビアな非機能要件を満たすことができ、お客様専用のプライベート・クラウド環境としてコンテナ基盤を利用することができます。

# 魅力7. 認定済みのコンテナ化された商用ミドルウェアを利用できる
<img width="889" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/3de13cac-8931-7322-d17c-1f412a1405fb.png">
<img width="861" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63451/fcbe6a25-a1b2-4c00-7118-f36634895d16.png">
企業システムの本番環境では、コンテナ基盤で稼働するコンテナ自体のセキュリティ、コンプライアンス、バージョン互換性が必要となります。IBMはIBM Cloud Paksとして、以下の6種類のコンテナ化された商用ソフトウェア／ミドルウェアを提供しています。

- [IBM Cloud Pak for Applications](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-applications)
    - アプリケーションのビルドデプロイ実行
- [IBM Cloud Pak for Data](https://www.ibm.com/jp-ja/analytics/cloud-pak-for-data)
    - データの収集/編成解析
- [IBM Cloud Pak for Integration](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-integration)
    - アプリケーション/データ/クラウドサービス/API の統合
- [IBM Cloud Pak for Multicloud Management](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-management)
    - マルチクラウドの可視性ガバナンス自動化
- [IBM Cloud Pak for Automation](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-automation)
    - ビジネス・プロセス意思決定、コンテンツの変革
- [IBM Cloud Pak for Security](https://www.ibm.com/jp-ja/products/cloud-pak-for-security)
    - セキュリティーのデータ、ツール、ワークフローを結びつける

IBM Cloud Paks ファミリーはソフトウェア／ミドルウェアの新しい配布形態とも言え、Red Hat OpenShift上での稼働が徹底的にテストされており、IBMの保証のもと、ソフトウェア・スタックのフル・サポートと、セキュリティー、コンプライアンス、バージョン互換性に関する定期的な更新が提供されますので、安心してコンテナ基盤上で企業システムを構築・運用していくことができます。

# おわりに
この記事では、Red HatとIBMが提供するフルマネージドのエンタープライズ向けコンテナ基盤OpenShift on IBM Cloudの魅力について解説しました。コンテナはオンプレミス、プライベート、パブリッククラウドまで全てのIT基盤を凌駕するオープンかつハイブリッドな次世代プラットフォームです。今後ますます普及・拡大していくであろうコンテナ基盤の選択肢の１つとしてぜひご検討ください！