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環境になります」(高良氏)