大企業もコンテナの活用を始めている
日本のコンテナ普及の状況を見ても、利用はまだ限定的だ。本番環境でコンテナを活用しているのは、Yahoo!やサイバーエージェントなど一部インターネットでビジネスを行っている企業だ。これら企業には頻繁にコンテンツやアプリケーションを改変、更新するニーズがあり、アジャイル開発やDevOpsにいち早く取り組んでいる。その取り組みの中で、コンテナが生産性向上に大きく貢献している。
もう1つ、アプリケーションの可用性向上でもコンテナは注目を集めている。Yahoo!のようなインターネットでサービスを行う企業にとって、サービス停止はブランドイメージを損ないビジネスへの負のインパクトも大きい。また彼らのサービスに接続されるデバイスは今や莫大で、それに対応するインフラには大きな拡張性も求められる。これら要件に最適なのがコンテナであり、コンテナ・オーケストレーションシステムの「Kubernetes」だ。
ところで、ITインフラの可用性や拡張性の確保は、長年にわたり企業の情報システム部門が取り組んできた課題でもある。新しい技術のコンテナ、Kubernetesを用いて、企業が求める可用性や拡張性を実現できるのか。それがよく分からないのが現状だ。さらに企業には、これまでオンプレミスで運用してきた基幹系システムがある。この基幹系システムはモノリシックなアーキテクチャで、規模が大きなものが多い。これを作り直しマイクロサービス化してコンテナに対応させるべきか。そもそも基幹系システムには、速いペースで改変や更新を行う必要がないものも多い。この辺りもはっきりしないまま、次世代ITインフラとしてコンテナ、Kubernetesが大きな注目を集めている。
一方で、ネット業界から離れても、既にコンテナの活用を検討し始めている大手企業もある。例えば、航空会社ではチケット発券アプリケーションの使い勝手を向上させ、利用者の満足度を継続的に上げる必要がある。またチケット発券の仕組みは、停止すればすぐにユーザー離脱にもつながる。これら課題解決にはコンテナ技術が適しているのだ。自動車メーカーもクルマを製造し販売するビジネスから、「移動」をサービス化する取り組みを始めている。その変化の中、基幹系システム周りの仕組みをスマートフォンに対応させたりIoTと連携させたりする必要があり、そのインフラにもコンテナ、Kubernetesが最適だ。とはいえニーズはあっても、ミッションクリティカルなシステムをコンテナ、Kubernetesで高い可用性で安心して動かせるのか。そのためのノウハウがまだ、企業には蓄積されていないのだ。
OpenShiftならKubernetesの課題を解決できる
先進的な企業のエンジニアがコンテナ、Kubernetesの技術を学び、それらを試しながら開発や運用ノウハウを蓄積している。そのような企業ではDevOpsやCI/CD(Continuous Integration/Continuous Delivery:継続的インテグレーション/継続的デリバリー)の文化も浸透し、クラウドネイティブなアプリケーション開発にも積極的だ。コンテナ、Kubernetesを使えば短期間でアプリケーションを開発でき障害も減らせることは実感しているだろう。
とはいえ開発者が試すのと、本番運用とではギャップも出てくる。そのため企業では、コンテナ、Kubernetesを自社のITインフラとしてどう位置づけるか、そのロードマップを作るところからアプローチするべきだ。たとえばコンテナ、Kubernetesのパブリッククラウド・サービスの利用で一部から手軽に始め、どのシステムをクラウドネイティブ化するかを見極める。その際、基幹系システムには手を付けず、オンプレミスのままとの判断になるかもしれない。そうなればKubernetes環境をオンプレミスに用意し、基幹系システムと新しいアプリケーションをAPI連携させる必要もある。
しかし、オンプレミスでオープンソースのKubernetes環境を構築し、ビジネスレベルのセキュリティと信頼性で運用するのは簡単ではない。たとえばセキュリティやガバナンスの確保はポリシーやルールなどを設定し、それを元に統制することも多い。オープンソースの仕組みでは、ルールを満たせるよう技術面からアプローチし、機能を適切に組み合わせることになる。これにはかなり手間がかかり、きちんと動作するかの検証も難しい。
ビジネスレベルの要件でKubernetes環境を運用する。それを容易にできるようにしているのが「Red Hat OpenShift」だ。OpenShiftはRed Hatがサブスクリプションでサポートするソフトウェアであり、Kubernetesの機能に加えて、コンテナの開発から運用までエンド・ツー・エンドで支援するツールが備わっている。「必要なものが全て組み込まれています。CI/CDのツールなども統合され、Javaが使える継続的インテグレーションツールのJenkinsもあり、これがすぐに使えることは企業にはかなり便利です」と高良氏。
さらに、Kubernetesのサポート期間の課題も解決する。オープンソースのKubernetesは日々進化を続けており、長期間のサポートを避け発展に力を入れている。そのため、マイナーバージョンのリリースから9ヶ月でサポートは終了。あとの脆弱性などへの対応はバージョンアップしかない。つまり、オープンソースのKubernetesを導入すれば9ヶ月ごとにバージョンアップ作業が発生し、これは情報システム部門には大きな負担となり現実的ではない。対してOpenShiftはサポート期間がおよそ3年。他の商用ミドルウェア製品と同様のサポートが受けられるのだ。
OpenShiftのもう1つの利点が、高いセキュリティ対応だ。OpenShiftは大手企業で実績がある「Red Hat Enterprise Linux」のコンテナが前提。Red Hat Enterprise Linuxでは長年にわたり脆弱性に対応する活動を続けており、十分に企業ユースができるレベルにある。そのRed Hat Enterprise Linuxの高い脆弱性対応も、OpenShiftに適用される。
また、OpenShiftを使うことはKubernetesそのものを使うことと変わらない。なので、OpenShiftにロックインされる心配はない。OpenShiftで動くアプリケーションは、オープンソースのKubernetesでも、パブリッククラウドのサービスでも問題なく動かせる。その上でOpenShiftには便利なツールが用意されており、管理者は少ない作業量で安心して運用できる。高良氏は「これから初めてKubernetesを使う人に便利です。CI/CDの仕組みがあり、コマンドライン・インターフェイスで操作できるocコマンドも用意されています。これを使えば、開発者ごとに隔離された専用開発スペースを用意するのも簡単です」と言う。
情報システム部門にとって、システムの安定した運用はもっとも重要だ。OpenShiftには必要なメトリックス管理ソフトウェア、すなわちCPU、メモリ、IOなどを監視する仕組みもある。得られる数値データを時系列で表示し、マシン単位だけでなくアプリケーション単位で管理できる。つまり、OpenShiftを使っていれば不具合発生時、コンテナ環境で動くどのアプリケーションが影響を与えたかもすぐに把握できる。
ログ管理も、OpenShiftではコンテナごとのログを1ヶ所に集め管理できる。収集したログは1つのツールで監視でき、サーバー単位、コンテナ単位でも見られる。これによりKubernetes環境下でのログ管理の手間は大幅に削減され、「OpenShiftを使えば、かなり見渡しの良いKubernetes環境になります」(高良氏)
コンテナ・Kubernetesの活用は企業ごとにロードマップを作ってアプローチすべし
IBMではこのOpenShiftの環境を、自社パブリッククラウドからマネージドサービスで提供している。またオンプレミスでも容易に導入・運用できるようサポートもする。さらに、OpenShiftを活用する取り組みとして「IBM Cloud Paks」も提供する。
アプリケーションをコンテナ化し動かすには、アプリケーションだけをコンテナ対応すればそれで終わりではない。アプリケーションの運用では、他システムとの連携やセキュリティ機能など、さまざまなミドルウェアを組み合わせる必要がある。IBMではこれまでミドルウェアをコンテナ化し、「IBM Cloud Private」として提供してきた。これを発展させOpenShiftに対応、目的ごとに複数ミドルウェアをセットにした「IBM Cloud Paks」として提供する。高良氏によれば、Cloud Paksは企業で使うミドルウェアを目的ごとに集めたもので、「OpenShiftベースにすることで、より安心して使える」という。
Cloud Pakには、アプリケーションの構築、デプロイ、実行のための「IBM Cloud Pak for Applications」、データの収集、編成、解析を行う「IBM Cloud Pak for Data」、マルチクラウドの可視性、ガバナンス、自動化を実現する「IBM Cloud Pak for Multicloud Management」、ハイブリッド・マルチクラウド環境で複雑化するセキュリティに対応するための「IBM Cloud Pak for Security」など、6つのPakが現時点で用意されている。Cloud Paksはあらかじめ設定されており、すぐに導入し利用できる。これを使えば「監視やログ管理など、システム管理者のジレンマから解放されるでしょう」と高良氏。
このCloud Paksも活用して、Kubernetesを使う次世代ITインフラのロードマップを提案するところから、IBMはアプローチする。ロードマップがないと、企業はなかなか正しく進めないからだ。ロードマップは1つの正解があるわけではない。企業ごとに異なり、それを企業と一緒に作り上げる。IBMにはクラウド活用の支援サービスを行う部門もあり、顧客の環境やビジネス特性に合わせた提案ができるのも特長だ。
さらにIBMには「IBM Garage for Cloud」がある。これは「企業が新しいテーマに取り組む際に、デザインシンキングを使い新しい価値をどう生み出せばいいかを共創します。このとき、コンテナ技術を使い迅速にアプリケーションを構築し試すのです」と高良氏。1ヶ月から数ヶ月といった短期間で成果を出すプログラムで、OpenShiftで迅速にアプリケーションを試作し評価する。本格的なプロジェクトに発展する場合も、OpenShiftであれば本番運用へ発展させることも容易なのだ。
コンテナ、Kubernetesは一部の先進的な企業のためだけのものではない。すべての企業が適宜活用すべきものだ。とはいえオープンソースのKubernetesでは、本番で活用するのは難しい。そこでOpenShiftを活用し、「効果の出やすいところから始めることが上手くいくコツです。そのためにもまずはロードマップをきちんと作ることが重要です」と、高良氏は改めて指摘するのだった。