エンタープライズ領域において、コンテナ技術の活用が本格化しつつある。だが、堅牢性と信頼性を第一義とするエンタープライズでは「コンテナの革新性」が運用の障害になるシーンも増えてきた。その要因のひとつがアップグレード頻度の問題だ。日本ヒューレット・パッカード株式会社(HPE)で、Red Hat OpenShiftに代表されるコンテナプラットフォームを推進している磯貝哲也氏は、そうしたコンテナの課題や解決策をどのように捉えているのだろうか。

  • 磯貝 哲也 氏

    日本ヒューレット・パッカード株式会社
    Pointnext Hybrid Cloud Global Competency Center
    Architect 磯貝 哲也 氏

コンテナの魅力はイノベーションの思想にこそある

ビジネス環境の変化に素早く対応したり、新しいビジネスを迅速に立ち上げたりするために、コンテナ技術を活用する企業が増えてきた。コンテナのメリットは、アプリケーションを少ないリソースで高速に起動できる点や、同じアプリケーションを他の環境に容易に可搬できる点、必要に応じて環境を柔軟にスケールできる点などがある。

そもそもアプリケーションを時間や区画で分けて効率よく利用しようという発想はメインフレームの時代から存在した。しかし今日のコンテナ技術が当時と大きく異なるのは、ビジネスのデジタル化が進むなかで、コンテナを利用するメリットがビジネス価値に直結するようになったところにある。

アプリケーションをすばやく変更できれば、顧客に提供する機能や品質が向上し、それを競合優位につなげられる。効率化の手段というよりは、ビジネスそのもののスピードを左右する技術になってきたということだ。

コンテナは、仮想マシンが苦手としてきた高速な環境の立ち上げや大規模なスケールが求められるWebのフロントシステムなどの領域から利用が広がった。今では既存の基幹システムとのつなぎこみ部分や、ハイブリッドクラウド環境の構築などでも利用されるようになった。堅牢性や信頼性を第一義とするエンタープライズ領域でもコンテナは欠かせない技術になりつつあるのだ。

そのようななかで、コンテナの大きな魅力について「新しいものを生み出していこうとする思想にある」と語るのは、HPEの磯貝哲也氏である。

「コンテナは、DevOpsやアジャイルなどの取り組みに向いています。エンタープライズの世界に新しい考え方や方法論を持ち込むことで、新しい環境に適応したり、顧客に対して新しい価値を届けたりできるようになります。現在はクラウドをはじめコンテナを管理するためのさまざまなプラットフォームが登場していますが、エンタープライズの領域でもそうしたコンテナが備えるイノベーションの思想をふまえることがポイントだと考えています」(磯貝氏)

エンタープライズで課題になりやすいアップグレード問題

磯貝 哲也 氏

エンタープライズの領域で、コンテナが備えるイノベーションの思想をより体現しているソリューションのひとつが、Red Hatが企業向けに提供する「Red Hat OpenShift Container Platform」(OpenShift)だろう。

OpenShiftはコンテナプラットフォームのデファクトスタンダードであるKubernetesをベースに、企業での利用において求められるクラスタ管理機能、アプリケーション管理機能、サービスメッシュ管理機能、開発・検証ツールなどをワンセットで提供するソリューションだ。また、専用OSの「CoreOS」と、運用自動化のための「Operator」という仕組みをプラットフォーム全体で活用することで、他のKubernetesディストリビューションにはない運用性、拡張性、セキュリティの高さを実現している。

「レガシーなアプリケーションをクラウドネイティブに変えていく場合、既存の考え方や方法論も変革していくことが求められます。その際は仮想マシンなど既存インフラにできるだけ手を加えずに活用しようというアプローチがある一方、既存インフラも含めて時代に合ったかたちへと根本的に変えていこうというアプローチがあります。個人的には後者のアプローチがコンテナの正しい方向性ではないかと考えています。その取り組みを推進しやすいプラットフォームがOpenShiftなのです」(磯貝氏)

「変革のしやすさ」を端的に示す機能のひとつが、アップグレードへの対応だ。Kubernetesを企業で利用する場合、アップグレードサイクルの速さにどう対応していくかが課題になる。Kubernetesのメジャーアップデートは3カ月に1回。OpenShiftも1度のマイナーバージョンあたりのフルサポートは4カ月で、延長サポートを含めても同じバージョンのままKubernetesを最大14カ月間しか利用できない。

  • マイナーバージョン当たりのサポート期間

エンタープライズシステムではシステム変更の影響を少なくするため、一度構築したシステムを数年間アップグレードせずに運用することが一般的だ。そのため、仮にKubernetesを採用してアプリケーションのリリースサイクルを早めることができたとしても、その基盤のアップグレードが追いつかないという事態が発生しやすいのだ。

Kuberntesのアップグレート問題を解消するOTA Update

こうしたアップグレード問題を解消するのが、OpenShiftが提供する「Over-the-Air(OTA) Update」機能だ。OTA Updateを用いると、プラットフォーム全体のアップグレードをGUIからボタンひとつでできるようになる。

「OTA Updateを利用しない場合、各コンポーネントをコマンドラインで1台ずつ手動アップデートしていく必要があります。たとえばホストのOSのパッチを当ててホストに含まれるコンテナのランタイムをアップグレードし、Kubernetesのデーモンをアップグレードしていくといった作業が発生するわけです。その際はそれぞれのコンポーネントの依存関係を気にする必要がありますし、利用しているすべてのノード分この作業を行う必要があります。また、マスターノード、ワーカーノードなどの順番を気にしながら実施することになるでしょう。OTA Updateはこうした一連の作業をボタンひとつでできるようにしてくれます」(磯貝氏)

Kubernetesのツール(k8sadmなど)を使うことで一部の作業は自動化できるものの、対象はKubernetesクラスタにとどまってしまう。このためホストOSのパッチ適用など、残された作業はユーザー自身が行う。OTA Updateは、こうしたアップグレードにともなうさまざまな作業そのものをなくせるというわけだ。

「コンテナのホストOSのレイヤーからKubernetesクラスタ、OpenShiftが提供するさまざまなサービスのレイヤーまで、すべて含めてまるごとアップグレードすることが可能です。必要なファイルをダウンロードし、となりのファイルシステムに置いてリブートして順次切り替えるといったローリングアップデートを行います。これはCoreOSというイミュータブルでセキュアなOSを用いていること、Operatorという自動化のための仕組みを備えていることによって実現しています。Red HatがOSからミドルウェア、アプリケーションまで面倒を見ているからこそできることです」(磯貝氏)

  • UPDETEアーキテクチャ

OpenShiftにおける主要なコミュニティ活動のひとつに「OpenShift Meetup」がある。磯貝氏は2020年9月25日に行われた第10回目の「OpenShift.Run Summer 2020」で、OTA Updateのアーキテクチャや実際の動作についてデモを交えて解説している。こちらは動画でも視聴できるのでぜひ確認してほしい。

>>磯貝氏による「OpenShift.Run Summer 2020」の講演

コンテナに適した新しい手法やスタイルを適用していく

なお、簡単にKubernetesがアップグレードできるといっても注意点はある。アップグレードに伴ってGUIを担うPodが再起動したり、OAuthなどの認証系のサービスがうまく動かなくなったりすることがあるのだ。もしものときに備えてクラスタ情報を保存しているEtcdのバックアップを取得しておくことも求められる。

「アップグレードが失敗したときに備えた対策が必要です。ただ、そこに力を入れすぎてしまうと、コンテナを採用したメリットが生かしにくくなります。重要なことは、コンテナに適した新しい手法やスタイルを適用していくということです。たとえば常にインプレースでアップグレードするのではなく、隣に新しいクラスタを作っておいて、ブルーグリーンデプロイメントのように切り替えるといった取り組みも合わせて進めます」(磯貝氏)

そうした思想や手法、スタイルそのものを新たにしていくために、磯貝氏は5つのポイントを挙げる。それは「エラー発生時のトラブルシューティング」「ステークホルダーとの調整」「ドキュメンテーション」「アップグレード頻度」「アップグレード後の検証」だ。

「エラー発生時のトラブルシューティングについては、インフラチームで事前検証/事象再現が自由にできる環境を確保しておきます。また、ステークホルダーとの調整では、適切なクラスタの範囲を検討することが重要です。さらに、ドキュメンテーションについてそもそものあり方を見直したり、アップグレードを自動化してアプリケーションチームと連携できるような体制を整備していくことが求められます」(磯貝氏)

Red Hatも構成管理ツールの「Red Hat Ansible」や、OpenShiftの拡張管理機能「Red Hat Advanced Cluster Management for Kubernetes(ACM)」などを提供しており、自動化の推進やクラスタの効率的な管理をサポートしている。また、HPEでもOpenShiftの導入から設計構築、運用サポートまでの一貫したコンサルティングサービスを提供。ハードウェア導入にあたってのコスト面での課題についても、オンプレミスの機器をサブスクリプション方式で利用できる「HPE GreenLake」などが用意されている。

「さまざまなお客様と接するなかで『これまでのシステムの作り方を変えたい』『アプリケーションの提供の仕方を根本的に変えたい』との声が高まっていると感じます。OpenShiftはそのニーズに応えられるソリューションです。HPEもさまざまなハードウェアやサービスの提供で、お客様の変革の取り組みを支援していきます」(磯貝氏)

  • 磯貝 哲也 氏

関連情報

[PR]提供:レッドハット