Special
» 2016年11月28日 10時00分 UPDATE

Docker、Kubernetesを効果的に活用:コンテナ技術を、ITサービス競争の“武器”にするためには

デジタルトランスフォーメーションの波が高まる中、利便性の高いITサービスをいかにスピーディに提供・改善できるかが企業の命運を左右する状況になっている。こうした経営環境を勝ち抜く上では、ITサービスの開発・運用スタイルも従来のやり方を抜本的に変えていく必要がある。その手段として企業の注目を集めているコンテナ技術だが、具体的にはどのように適用すれば、企業が安全に使えるビジネスの武器になり得るのか? コンテナ技術に深い知見を持つレッドハットに話を聞いた。

[PR/@IT]
PR

スピーディにサービスを開発・改善するための「仕組み」とは?

 国内でもデジタルトランスフォーメーションの波が高まる中、ほぼ全ての業種でITサービス開発競争が活発化し、「ニーズの変化に応じてITサービスをいかにスピーディに開発・改善できるか」が、ビジネスで勝つ前提条件になりつつある。こうした中、迅速な開発・改善に寄与するとして、コンテナ技術が多くの企業に注目されている。特にオープンソースソフトウェア(以下、OSS)の「Docker」は、昨今、Webサービス系企業に限らず、一般的な企業でも活用に乗り出すケースが増えつつある。

 エンタープライズITとOSSの豊富な知見・実績を基に、企業ITのモダナイゼーションを支援しているレッドハットのテクニカルセールス本部シニアソリューションアーキテクト OpenShiftエバンジェリストを務める大溝桂氏は、昨今のコンテナ技術への関心の高まりについて次のように話す。

ALT レッドハット テクニカルセールス本部シニアソリューションアーキテクト OpenShiftエバンジェリストの大溝桂氏

 「デジタルビジネスにおいては、ニーズに合わせて新しいサービスをスピーディにリリース・改善することが求められます。特に重要なのは“競合に先んじるスピード”です。スピーディにITサービスを展開しなければ、これまでなかった利便性を提供する新たなITサービスによって、その市場の既存プレーヤーが脅かされるリスクもあります。そうした経営環境とデジタルディスラプションに対する危機意識の高まりを背景に、コンテナ技術への関心が急速に高まってきていると思います」

 すでにRed Hatでは、海外企業におけるコンテナ技術導入・活用支援に多数の実績がある。「実際にコンテナがビジネスの強力な武器になっている例を見ていると、取り組みの遅れが日本企業にとって致命傷になるのではといった危惧もある」という。

 では具体的に、現在の開発スタイルに対してコンテナ技術をどのように適用すれば“ビジネスの強力な武器”となるのだろうか? 大溝氏は、「ITサービスをスピーディに開発・改善する上で、これまでの開発スタイルには大きく2つの課題があります」と指摘する。

 1つは、アプリケーションの実行環境を構築・更新する作業に時間・工数がかかってしまうこと。開発環境、テスト環境、本番環境で構成が異なるために、「テスト環境では問題なかったが本番環境で動かない」といった事態を防ぐ上では、どうしても慎重な確認作業が必要になるためだ。もう1つは、アプリケーションのアーキテクチャがモノリシック(一枚岩)であり、さまざまなモジュールと密接に絡み合っているため、アプリケーション更新の影響範囲が大きくなりがちなこと。安全に更新するためには、影響範囲を考慮して、どう実装するかを慎重に検討する必要がある。

 「従って、ニーズの変化にスピーディに対応するためには、環境の差異に縛られずにデプロイできることと、更新の影響範囲を最小に抑えられるよう、単機能のサービスを組み合わせて1つのアプリケーションを作るマイクロサービスアーキテクチャのアプローチを採り、サービスの更新を小さい単位で行うことの2つがポイントとなります」

 その点、コンテナ技術はアプリケーションをパッケージングすることで、『ホストOS上の他のプロセスから隔離されたアプリケーション実行環境』を構築する技術だ。これにより、環境の差異に縛られず、どんなアプリケーションでもさまざまな環境に迅速・確実にデプロイできるようになる。また、単機能のサービスをコンテナで実装すれば、サービスの修正もコンテナ単位で行える。つまり影響範囲を最小限に抑えたスピーディな改修・更新も可能になるというわけだ。

 大溝氏は「作業時間を短くするためには、従来通りの方法を取らないことが重要」と強調する。

 「いかに作業時間を短くしようと、従来と同じ手順を踏んでいる以上、大きな効果は期待できません。開発・デプロイの高速化を狙うためには、それに対応できる“仕組み”に変える必要があります。コンテナはそうした仕組みに変える上で最適な技術なのです」

コンテナ技術を軸に、開発・運用手順を標準化して自動化を促進

 では開発・デプロイを高速化する上で、具体的にはどのような“仕組み”が求められるのか。大溝氏は「コンテナ技術を使って、ビルド、テスト、デプロイの手法を標準化することで、自動化が容易に実現できるようになる」と指摘する。

 というのも、これまでも標準化・自動化には多くの企業が取り組んできたが、多くの場合、“標準的な手順に従って人手で行うもの”になりがちだった。また、ビルド、テスト、デプロイの方法は、プログラミング言語や利用するミドルウェアなどに依存するため、統一した方法での自動化が難しいという問題もあった。だがコンテナ技術を使えば、どんなアプリケーションでも同じ手法でパッケージングと配布ができるので、どんな環境でも同じ方法でデプロイすることが可能となる。

 「つまりコンテナ技術を活用することで、アプリケーション、環境や実施者に依存することなく、アプリケーションのビルド、テスト、デプロイ、その後の運用まで、手法を統一化できるのです。このようにシステマティックな標準化ができれば、ツールを使った自動化も自ずと推進できるようになります。これがアプリケーションのスピーディな開発・改善を支える“仕組み”の軸となるのです」

コンテナ型のアプリケーションのライフサイクル管理

 だが課題もある。こうした「アプリケーションのビルド、テスト、デプロイ、運用の手法を統一化できる」というメリットを実業務に生かす上では、「単にDockerなどのアプリケーション仮想化ソフトウェアを導入するだけでは不十分」ということだ。実際、コンテナ技術のメリットに注目し、Dockerやコンテナを管理するコンテナオーケストレーションフレームワーク「Kubernetes」を導入している企業が、そうした課題に直面しているという。

 「DockerやKubernetesを導入したり、導入に向けてテストを始めたりする企業が増えてきましたが、『DockerとKubernetesだけではアプリケーションライフサイクル管理が難しい』という声が数多く上がっています。企業がコンテナ技術を採用するためには、アプリケーションのライフサイクル管理は必須になりますが、それらを実現する方法を検討する必要があります」

 例えば、「あるアプリケーションを、顧客企業ごとにバージョンを変えて提供する」場合を考えてみる。コンテナを使えば、「コンテナごとに各顧客が必要とする機能を組み込んでそれぞれに提供する」といったことは容易に行える。実際に、Dockerではこうしたイメージ作成やデプロイは首尾よく行える。

 だが、顧客ごとに異なるバージョンのアプリケーションが必要とされる場合、「それぞれのバージョンのコンテナイメージをどのようにビルド・管理し、リリースするか」となると、アプリケーションライフサイクル管理の機能が必要となる。Kubernetesを利用すれば、サービスを継続した状態でアプリケーションの更新は可能だが、アプリケーションのコンテナイメージのビルドや管理はできず、開発、テスト、本番環境へのデプロイ、運用、フィードバックと改善といった一連のプロセスをつなぐ上では機能が不足する。これらのライフサイクルを実現するために、OSSのツールなどを組み合わせて利便性の向上を検討するが、ツールの選択や実行環境の統一など高度なスキルと多大な工数が必要となる。

 そこでDockerやKubernetesの機能を活用してコンテナ技術のメリットを享受しながらアプリケーションライフサイクル全体を管理できるようにしたのが、コンテナアプリケーションプラットフォーム「Red Hat OpenShift Container Platform」(以下、OpenShift)だ。

ALT 図1 DockerやKubernetesを活用し、アプリケーションライフサイクル全体を管理可能としたコンテナアプリケーションプラットフォーム「Red Hat OpenShift Container Platform」

 これにより、「アプリケーションのコンテナ化までは手を付けていたが、コンテナアプリケーションをサービスとして提供するためのプラットフォームをどう作ればよいのか分からない」「コンテナアプリケーションをどう運用管理すればよいのか分からない」といった悩みを持つ企業も、コンテナのメリットを実業務で生かすことができるわけだ。

コンテナ活用にエンタープライズレベルの安全性を担保――Red Hat OpenShift Container Platform

 では具体的にどのような機能が提供されているのだろうか。ここでは、数ある機能のうち、開発迅速化と運用効率の向上という観点から、継続的インテグレーション/継続的デリバリー、運用管理機能、マルチテナント/マルチユーザーの各機能を簡単に紹介しよう。

CI/CD(継続的インテグレーション/継続的デリバリー)

 継続的インテグレーションでは、JenkinsなどのCIツールが広く使われているが、OpenShiftそのものでもソースコードのコミットからビルド、デプロイのパイプラインを実行することができる。さらに、OpenShiftはプラグインが組み込まれたJenkinsコンテナを提供しており、それを利用してCIを実現できる。

ALT 図2 CIによりビルド、テストを自動化できる

 CI後にテスト環境や本番環境にコンテナをデプロイする機能も装備し、Dockerイメージの作成、リポジトリへの登録、テスト環境、本番環境へのデプロイといった一連のプロセスを自動化し1クリックで行うことも可能だ。

ALT 図3 CDによりDockerイメージのテスト環境、本番環境への配信を自動化

 また、コンテナの数が増えると管理負荷が高まることを受け、コンテナイメージにタグ付けする機能も持つ。タグを利用することで、「どのバージョンのアプリケーションが、どのステージで、どういったステータスにあるか」を容易に確認できる。このタグ付けをトリガーにして変更分を自動的に本番環境にデプロイすることもできる。例えば開発とテストが終わった段階で、コンテナに「テストOK」といったタグを付与すると、それをトリガーにして自動的にデプロイするといった具合だ。これらにより、企業は従来通りの“安全性”を担保しながら、「ニーズの変化に応じた迅速なITサービス開発・改善」を実現できる。

コンテナオーケストレーション

 運用管理機能では、サービスの可用性を担保する機能を実装している。具体的には、Kubernetesのオーケストレーション機能を利用して、コンテナのデプロイの最適化や、デプロイ済みのコンテナの稼働状況の管理・監視を行う。この機能により、何らかの要因でコンテナのプロセスが停止しても、別のコンテナを起動することでサービスを継続することが可能だ。また、オートスケール機能を有効にすることで、サービスへのアクセスが増えてきたら、自動的にコンテナの数をスケールアウトして負荷分散を行うことも可能。このようにサービスの可用性、安定性を担保することができる。

マルチテナント/マルチユーザー

 マルチテナント機能は、複数のアプリケーションが同一のOpenShift上で動いているときに、特定のアプリケーションからのアクセスのみを許可することで、セキュリティを保つ機能だ。例えば、会計システムのデータベースが稼働しているコンテナに対し、人事システムからアクセスがあっても適切な権限がなければアクセスできないようにする。この機能は、仮想ネットワークを分離することで実現しているため、セキュリティの強度は高くなる。

 マルチユーザー機能とは、ユーザーの役割ごとに異なる権限を持たせる機能だ。例えば、「開発者にはビルド、デプロイ、削除の権限を与えるが、テスト担当者にはデブロイはできてもビルドはできないようにする」といった具合に、権限管理することでオペレーションミスを防ぐことができる。ユーザーごとに権限を設定する、ユーザーをグループ化して管理することも可能だ。

ALT 図4 コンテナアプリケーションのライフサイクル全体を管理し、開発者、運用管理担当者の両者に必要な機能を実装

 Dockerについてはセキュリティ面で懸念を抱く企業も少なくない。また、ITサービスはただ速く開発・リリースすれば良いものではなく、収益・ブランド向上につなげるためには、機能だけではなく、セキュリティや安定性といった意味での“品質”もしっかりと担保する必要がある。その点、OpenShiftは企業が“エンタープライズレベルの品質”をしっかりと担保しながら、コンテナ技術のメリットを生かし、ITサービス競争に安全に参加できるプラットフォームを提供するというわけだ。

無償で試せる「OpenShift Online」も用意。「まずは実践してほしい」

 なお、OpenShiftはRed Hat Enterprise Linux(RHEL)が動作する環境ならどこでも稼働する。オンプレミス、プライベートクラウド、パブリッククラウドの、どの環境でも利用できる他、VMware、AWS、Microsoft Azure、OpenStackなどの主要な仮想化基盤、クラウドサービスに対応。どの環境で使ってもRed Hatによる正式サポートを受けることができる。また、多くの企業に浸透している「JBoss Middleware」製品や「Red Hat Gluster Storage」もコンテナ化しており、OpenShift上で提供可能としている。

ALT 図5 OpenShift Container Platformは、物理、仮想、プライベートクラウド、パブリッククラウドのどの環境でも利用可能だ《クリックで拡大》

 提供されるコンテナはRed Hatが認定するものであり、OSやアプリケーションの脆弱性が修正された安全なコンテナを利用できる点も特徴だ。同社が「Open Container Initiative」や「Cloud Native Computing Foundation」といった標準化団体で積極的に活動し、コンテナ技術の標準化をリードする存在であることも心強い。

 事実、OpenShiftの導入企業は、Webサービス系企業に限らず、製造、金融、情報通信など多岐にわたる。この背景には、各社にデジタルトランスフォーメーションに対する危機意識があるのはもちろんだが、「コンテナ技術をエンタープライズレベルの安心感・信頼感をもって活用できること」「アプリケーションライフサイクル全体を、確実かつ高速に回すための各種機能がそろっていること」が、導入の大きなドライバーとなっているのは間違いないといえるだろう。

 無論、コンテナ技術をビジネスに生かす上で、前述のようにDocker、Kubernetesに足りない機能を自社で補完するのも選択の1つだ。だが現在、ITサービス開発競争は活発化しており、デジタルディスラプションの波も高まるさなかにある。企業にとって、そうした環境の中で勝ち残ることが真の目的である以上、問題を解決する明確なソリューションがあるなら“プラットフォームを自社で作ること”より“勝つための手段を手に入れること”に投資した方がよほど合理的といえる。

ALT 「ITサービス競争は、今この瞬間も展開されています。まずはOpenShiftを実際に使ってみるなど“実践”に乗り出すことが大切だと思います」

 大溝氏は、「デジタルビジネスの戦いはすでに激化しており、異なる業種から突然、競合が現れる時代です。そこで企業が勝ち抜いていくためには、優れたビジネスアイデアと、それをいち早く形にするためのプラットフォームの両方が必要です。アイデアを形にするために、まずはコンテナ技術を使ってみる、その上で課題を実感した場合はOpenShiftを使ってみるといったように、何よりも“実践”に乗り出していただきたいと思います」

 レッドハットでは、とにかく始めてみたいユーザーに向けて、無償でOpenShiftを試せる「OpenShift Online」というサイトを用意している。ぜひアクセスしてOpenShiftならではのメリットを体験してはいかがだろうか。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:レッドハット株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2016年12月27日

RSSについて

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

メールマガジン登録

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