Special
» 2020年03月06日 10時00分 公開

開発者がクラスタ構築・運用で忙殺されないためには:コンテナやKubernetesをエンタープライズグレードにするOpenShiftと相性が良いクラウドはどれだ?

エンタープライズ企業で、顧客接点を増やしてユーザーからのフィードバックを次のサービス開発に素早く活かすアプリケーションの開発などでコンテナとKubernetesの活用が進んでいる。だが、その実行環境の構築、さらには運用までが、開発者中心になっており、より良いアプリケーションを迅速に開発するという本来の業務に支障を来すようになるなど、さまざまな課題が顕著になってきた。企業が課題を解決し、コンテナとKubernetesをエンタープライズグレードにするためのソリューションとは。実行に最適なクラウド環境とは。

[PR/@IT]
PR

コンテナとKubernetesを活用する際の開発者の課題

 IT業界でコンテナに注目が集まり始めてから、既に5年以上の月日が経過している。当初は一部の先端的な技術に積極的に取り組む開発者が、自分の思い通りのアプリケーションをどこでも容易に動かせる環境として飛びついた。その後、徐々に利用が広がり、クラウドネイティブなアプリケーションを開発したいユーザーなどが積極的にコンテナを活用している。

 エンタープライズ企業でも、お客さま接点を増やしてユーザーからのフィードバックを次のサービス開発に素早く活かすアプリケーションの開発などでコンテナが利用されている。コンテナ化したアプリケーションのデプロイ、スケーリング、管理を行うコンテナオーケストレーションツールとしては「Kubernetes」がデファクトスタンダードだ。

 アプリケーション開発者がインフラ環境を気にせず、迅速にアプリケーションを市場に提供できるようにするのが、本来のコンテナやKubernetesの利用目的だ。ところが最近は「最新技術だからという理由で、Kubernetesを導入して活用すること自体が目的となりがちです。そうすると、なかなかコンテナのメリットが発揮できません」と話すのは、レッドハット テクニカルセールス本部 パートナーソリューションアーキテクト部 シニアソリューションアーキテクトの橋本賢弥氏だ。

ALT レッドハット
テクニカルセールス本部
パートナーソリューションアーキテクト部
シニアソリューションアーキテクト
橋本賢弥 氏

 アプリケーション開発者がコンテナやKubernetesの実行環境を整備し使えるようにするのは、それほど簡単ではない。インフラ担当のエンジニアであれば、コンテナやKubernetesの技術を新たに学び、運用できるスキルを身に付けることは、エンジニア価値を高めることになるだろう。だが、アプリケーション開発者にとってはより良いアプリケーションを迅速に開発することが価値であり、コンテナでのアプリケーションの作り方のお作法を実践する作業などは本質的ではなく、やりたいことではない。

 日本マイクロソフト デジタルトランスフォーメーション事業本部 エンタープライズクラウドアーキテクト統括本部 Cloud Solution Architectの大溝桂氏は「開発者がDockerfile(コンテナイメージのレシピのようなもの)や、kubernetesの定義ファイルを記述するのに苦労しているという状況も生まれています。アプリケーション開発者はアプリケーション開発に集中したいにもかかわらず、コンテナやKubernetesの仕組みを理解して、アプリケーションのランタイム環境を自分で構築することになってしまい、このハードルはかなり高いのです」と指摘する。

 アプリケーションを型にはめてKubernetesに載せられれば、運用負荷は大きく低減されるはずだ。だが、その環境を整備し載せるところまで自分で行わなければならないとなると、開発者はかなり勉強してコンテナに関する十分な知識とスキルを身に付けなければならない。

KubernetesをエンタープライズグレードにするOpenShift

ALT 日本マイクロソフト
デジタルトランスフォーメーション事業本部
エンタープライズクラウドアーキテクト統括本部
Cloud Solution Architect
大溝桂 氏

 コンテナ、Kubernetesの環境を利用したい開発者の負担を大きく削減するのが、「Red Hat OpenShift」(以下、OpenShift)だ。「OpenShiftはKubernetesをベースにした、エンタープライズグレードのコンテナ運用環境です。その上でPaaS的な側面も持っています。もちろんKubernetesのやり方をそのまま適用することもできますが、Kubernetesを使う際にコンテナの視点でやらなければならないことをOpenShiftが吸収してくれるので、開発者がPaaSを使うような感覚でアプリケーション開発に集中できます」と橋本氏は言う。

 開発に注力できるようにする機能の一つが、「Source-to-Image」だ。開発したアプリケーションのソースコードをGitHubなどのGitリポジトリに置き、そのURLを指定する。その後は、テンプレートカタログからJavaや.NETなどのプログラミング言語や必要なミドルウェアを選ぶだけで、Source-to-Imageの機能で自動的にコンテナイメージやKubernetesのランタイム定義を生成する。カタログはアプリケーション実行環境の統制にも役に立つ。利用するミドルウェアなどをカタログで指定しておけば、それを使いビルドが行われるので、組織内で標準化した実行環境を構成することも容易だという。

ATL Source-to-Imageの実行イメージ《クリックで拡大します》

 さらに外部との連携が容易なこともOpenShiftの特長だ。OpenShiftには標準でCI/CD(継続的インテグレーション/継続的デリバリー)などの機能もあるが、既に外部ツールを使っているなら、それらと連携させてCI/CDのパイプラインに容易に組み込むことができる。

 OpenShiftは、金融や公共など規制が厳しい領域でまずは採用された。これらの業界では、開発者が迅速にアプリケーションを開発できるようにするのと同時に、厳しい規制にも適切に準拠する必要がある。その両方のニーズに応えるために、OpenShiftが選ばれている。

 Red Hatのグローバルイベント「Red Hat Summit 2019」では、金融や公共機関に加え、ヘルスケアや流通、製造など、さまざまな業界の企業がビジネス変革のプラットフォームにOpenShiftを活用していることが紹介された。これらの業界では、新しいアプリケーションの開発だけではなく、既存のレガシーシステムとの連携でもOpenShiftを活用している。

 「迅速なアプリケーション開発とは無縁だと思われていた、重厚長大な産業の代表であるエネルギー業界などでも今やデジタル変革に取り組んでおり、そのプラットフォームにOpenShiftを選んでいます」と橋本氏。グローバルの動きから日本は若干時差もあるものの、今急速に追随してきているという。

OpenShiftとAzureを組み合わせることで生まれる価値

 企業がコンテナ環境をエンタープライズグレードにする際には、押さえておくべきポイントがある。それが「セキュリティ」と「法規制への準拠」だ。

 そもそも、KubernetesはLinuxで動いている。このLinuxは何でもいいと思われるかもしれないが「Kubernetes上で稼働するコンテナはLinuxのカーネルを共有しており、コンテナアプリケーションランタイムが使用するLinuxカーネル機能との互換性が重要です。OpenShiftならばKubernetesが動作するLinuxカーネル、そしてそれを利用するコンテナベースイメージの両方が、エンタープライズで実績のある『Red Hat Enterprise Linux(RHEL)』の技術をベースとすることができるため、Red Hatが一貫してテスト、サポートできます。これもエンタープライズ利用では大きなメリットです」と橋本氏。

 また、DevOpsは、今や「DevSecOps」として捉えられることが多くなり、継続して迅速な開発を行い、ビジネス効果を得るためのリードタイムを短くするだけではなく、その開発サイクルの中でシステムが常にセキュアであるように維持する必要がある。OpenShiftならば、デプロイするコンテナイメージを管理し、コンテナイメージ内部に潜む脆弱(ぜいじゃく)性を確認するような機能も用意されている。

 さらにクラウドで動かすアプリケーションやサービスも、当然ながら各業界で必要とされる法律や規制に準拠しなければならない。「『Microsoft Azure』(以下、Azure)は海外の法律などに対応するだけではなく、日本の法規制にもいち早く対応しています。自前オンプレミス環境で各種法律や規制に対応するのは大変です。規制の厳しい業界ほど、Azureを選ぶメリットがあります」(大溝氏)。

 つまりKubernetesの環境をエンタープライズグレードで利用できるようにするOpenShiftがあり、エンタープライズ利用に対応したクラウドのAzureがある。両方併せて利用できることが企業から求められており、OpenShiftとAzureのお客さまの層はかなりの部分で重なるという。そのため、Azure上でOpenShiftを動かすユーザーが、これまでもたくさんいた。そのニーズに応えるため、Azureではマーケットプレースで「OpenShift Container Platform」が提供していたが、最新バージョンは Red Hat OpenShift Cluster Managerから Azureにデプロイできるようになり、IaaSに導入してすぐに利用できるようになっている。

 それをさらに一歩進めた、Azure上のOpenShiftのフルマネージドサービスが「Azure Red Hat OpenShift(ARO)」だ。もともとMicrosoftは2015年にRed Hatと戦略的なパートナーシップを結び、2016年にはRed Hat Enterprise LinuxをAzure上で提供している。以降も両社ではさまざまな協業を続けており、Azure Red Hat OpenShiftはその一貫として新たに生まれたものだ。

ATL OpenShiftクラスタを管理する場合(IaaS)《クリックで拡大します》
ATL Azure Red Hat OpenShiftの場合《クリックで拡大します》

 コンテナ環境のセキュリティはOpenShiftで保証する。さらにOpenShiftを動かすプラットフォームのセキュリティはAzureで保証する。その上で「エンタープライズグレードのコンテナ環境を開発者の視点で使えるかどうかが鍵となります。開発者がコンテナのメリットを享受できるのがAzure Red Hat OpenShiftです」と橋本氏。GUIでの簡単な操作やコマンドを1つ実行するだけでKubernetesのクラスタを構築でき、必要に応じ拡張も縮退も容易に行える。費用も利用した分だけを従量制で支払えるので、最適化が可能だという。

 さらに、Azureのストレージやデータベースのサービスとも容易に連携でき、認証基盤で「Azure Active Directory」を使っていれば、それと連携することも可能だ。複数のサービスと組み合わせた場合でも、Azure上で一元的に管理できる。また運用監視についてもAzureのサービスで容易に実現でき、ハイブリッドクラウドなどではOpenShiftの機能を選ぶことも可能だ。

 Azure Red Hat OpenShiftは、MicrosoftとRed Hatが共同で開発しており、サポートも共同で提供する。Azureのサービスなので問い合わせの窓口はMicrosoftになるが、サポートにはRed Hatのエンジニアも対応する。このサポート体制は、既にRed Hat Enterprise Linuxの提供時から実績があるものだ。Microsoftの後ろにエスカレーション先としてRed Hatがあるのではなく、チケットシステムを統合するなど、両社が密接に連携し情報を共有して迅速にサポートしている。

ATL 共同サポートと運用体制《クリックで拡大します》

 Azure Red Hat OpenShiftは、2019年末から東日本リージョンで提供が開始された。これにより、国内でも低遅延ネットワーク環境で利用できる。今後はマルチAZ(アベイラビリティゾーン)クラスタ、プライベートクラスタにも対応する予定だ。さらに、クラウド環境ならではのオンデマンドで自動拡張する機能となるクラスタのオートスケールにも対応するという。

 「お客さまから要望があったからこそ、MicrosoftとRed Hatは手を組みました。新しい機能も、お客さまの要望を重視し実現しています。そのためAzure Red Hat OpenShiftを使って、ぜひフィードバックしてください」と橋本氏。ハンズオンセミナーも随時開催しているので、本稿を読んで気になった読者は、Azure Red Hat OpenShiftを動かして、その多彩な機能を体験してみてはいかがだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2020年3月19日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。