クラウドオープンイノベーションによるクラウド基盤技術の取り組み

オープンソース

PaaS

PaaS基盤 ・ Cloud Foundryの取り組み
お じ りけん †1

たにぐちのぶろう † 1

な が た

たかひこ † 1

なかがわしんいち † 1

いわさきゆうだい † 2

尾尻健 /谷口 展郎

長田 孝彦/中川 真一岩嵜 雄大

NTTソ フ ト ウ ェ ア イ ノ ベ ー シ ョ ン セ ン タ で は オ ー プ ン ソ ー スPaaS（Platform as a Service）基盤ソフトウェアである「Cloud Foundry」の開発と商用導入支援に取り組んでいます．本稿ではCloud Foundryの最近の動向とクラウドビジネスへの展開に向けた取り組みについて紹介します．

NTTソフトウェアイノベーションセンタ
†2
NTT Innovation Institute, Inc.

†1

ラリ，フレームワーク，あるいはWebと運用にかかる実行環境の構築工数のサーバやデータベース，ロードバラン削減にあります．アプリケーション開サなどのミドルウェアを組み合わせた発においては，PaaS利用により手軽NTTソフトウェアイノベーション

ソフトウェア ・ スタックを，IaaS（Infra­にテスト用環境を入手できるため開発センタではオープンソースによるクラstructure as a Service）上で提供すのスピードアップを図れます．アプリ

ウド基盤構築の一環として，「Cloudることを目的とします（図 １ ）．異なケーション運用においては，PaaS利る種類のアプリケーション間で共通し用によりアプリケーションサービスがアプリケーションの開発と運用を効率化するPaaS（1）（2）,Foundry」

を用いたPaaS（Platform＊as a Service）基盤 の開発を行ってて用いられる実行環境をPaaS提供者います．

があらかじめ用意し，実行されるアプ

PaaSは，アプリケーションの実行環境（Platform），すなわち，アプリリケーションの死活監視などもPaaS利用者に提供します．

ケーション実行に必要なさまざまなソPaaSを利用することで得られる最フトウェア，例えばOSや各種ライブ大の利点は，アプリケーションの開発

SaaS

アプリケーション

フレームワーク
PaaS

フレームワーク
データベースWebサーバロードバランサWebサーバ

OS

OS

OS

OS

仮想マシン

仮想マシン

仮想マシン

仮想マシン

IaaS

ハイパーバイザハイパーバイザ

物理マシン

物理マシン

図116

＊ PaaS基盤：本稿では，「PaaS」をPaaSのサービスそのもの，「PaaS基盤」をPaaSを構築するための一連の技術スタック，「アプリケーション」をPaaS上で実行されるアプリケーション（サービス）の意味で用いています．また「PaaS利用者」はPaaS上でアプリケーションを開発 ・提供するユーザ，「アプリケーションユーザ」をアプリケーションの利用者として用います．

NTT技術ジャーナル 2014.12

クラウドを構成する技術の階層構造

特 集

大規模化しても環境構築済みの計算機ることができます．一般に，各PaaS模のプライベートPaaSから，数千台リソースを容易に調達できるため効率が提供する機能や利用方法はそれぞれ規模のマシンで稼動する大規模なパブ的に運用できます．

異なるため，それぞれのPaaS間にはリックPaaSまで，求められる規模や近年はPaaSに対するニーズの高ま互換性が存在しません．そのため，特信頼性に応じたPaaSを構築することりに伴い，2012年12月にサービス開定のPaaS向けに開発されたアプリが可能です．コンポーネントは後から始したNTTコミュニケーションズのケーションをほかのPaaSに移植する増減設することもできるため，最初はCloud PaaS をはじめ，Google Appためにはソースコードの書換えや運用小規模に構築し，処理量の増加に応じEngine，AWS Elastic Beanstalk，手順の見直しといった作業が伴いまてスケールアウトしていく運用も容易

Microsoft Azure，Heroku，IBMす．このような状況においては，突然です．

Bluemixなど，市中にはすでに多数のの利用料値上げやサービス終了などへ（3） 豊富な開発言語とフレーム商用PaaSが登場しています（表）．の対応が難しく，特に商用アプリケーn（3）ワーク

ションを運用している利用者にとってCloud Foundry は Ruby や Java，は大きなリスクとなり得ます．CloudJavaScript，PHPをはじめとするさFoundryを採用しているPaaSの場合，

ま ざ ま な プ ロ グ ラ ミ ン グ 言 語 や，

Cloud Foundryはオープンソースで相互に互換性が保証されることから，Ruby on Rails や Sinatra，Spring，開発が進められているPaaS基盤ソフ

このようなベンダ ・ ロックインの問題

Node.jsなどのWebアプリケーション

ト ウ ェ ア で す．Microsoft Azureやは発生しません．利用者は時勢に合わの開発に用いられるさまざまなフレー

Herokuなどはソースコード非公開のせてPaaS提供者を選択することがでムワークを用いたアプリケーションを独自ソフトウェアで構築されているのきるうえ，独自のプライベートPaaS動作させることができます．さらにに対し，Cloud Foundryは公開されたを構築することも可能です．

Herokuによって導入された概念であ

ソースコードを利用してPaaS基盤を（2） 柔軟なシステム構成

るBuildpackに対応しており，これに誰でも構築することができます．

Cloud FoundryではPaaSに対するよりPaaS基盤で提供していないプロ

Cloud Foundryの特長は主として以さまざまなニーズを満たすため，シスグラミング言語 ・ フレームワークを用下の ３ つにまとめることができます．

テム全体を複数現用構成（n-ACT）

いたアプリケーションを動作させるこ（1） ベンダ ・ ロックインフリーで動作可能な疎結合のコンポーネントともできます．

オープンソースで開発されているに分割し，必要に応じてそれらを組みなお，オープンソースで開発が行わ

Cloud Foundryを 利 用 す る こ と で，合わせる設計となっています（図 ２ ）．

れているPaaS基盤としては，Cloud

PaaS利用者は特定のPaaS提供者へのこれにより，例えば単一マシン上にすFoundryのほかにRed Hat社を中心と依存（ベンダ ・ ロックイン）を回避すべてのコンポーネントを配置する小規して開発が行われているOpenShift

オープンソースで開発が進む
Cloud Foundry

表
サービス名

PaaSの一覧

PaaS提供者名特長

Google App Engine

Google

独自のAPIやBigTableなどの仕組みにより高いスケーラビリティを確保

AWS Elastic Beanstalk

AmazonAWSで提供されるほかのサービスとの連携に対応

Microsoft Azure

Microsoft

Microsoft社製統合開発環境との連携が充実

Herokusalesforce.com

多様な汎用プログラミング言語をサポートするPaaSの先駆的サービス

Force.com

salesforce.com

ビジネスアプリケーション用のロジックが豊富

Cloud PaaS※

NTTコミュニケーションズ

Cloud RDBとの連携，ログ収集，監視，アプリ分散配置の機能を具備

Pivotal Web Services※

PivotalCloud FoundryコミュニティをリードするPivotal社が自ら運営

IBM Bluemix※

IBM

アプリ開発者支援機能が充実，連携サービスが豊富※

anynines

anynines

100％ヨーロッパのデータセンタを利用

OpenShift

Red HatRed HatによるOpenShift origineを用いたサービス

nn※Cloud Foundryを採用しているサービス

NTT技術ジャーナル 2014.12

17

オープンイノベーションによるクラウド基盤技術の取り組み

Originが 存 在 し ま す． 現 時 点 で は（2） PaaS基盤の運用自動化に行うことでハイブリッドクラウドのCloud Foundryのほうが貢献技術者のCloud FoundryをIaaS上に導入し，実現性を検証しています．

数などオープンソースコミュニティの各コンポーネントの起動と監視を行え■“NTT clouds Develop”との連携

活発さやPaaS提供者の採用実績の面

るPaaS基盤管理ソフトウェアであるによる運用プロセスの効率化で一歩リードしています．

BOSHを活用し，CPUやメモリ，ネッNTT 研 究 所 とNTT Innovation

トワーク帯域などの所要リソースが不Institute, Inc.（NTT I3）とが連携し足したり，余剰となったときに自動的てCloud Foundry とDevOps導入支援

NTT研 究 所 で はCloud FoundryににIaaSの仮想マシンを増減設できるサービス“NTT clouds Develop”とのよるPaaS基盤活用に向け，以下のよようにするオートスケール機能を開発

連 携 実 験 を 行 っ て い ま す．NTT

うな取り組みを行っています．

しました．

clouds Developは近年アジャイルソフ

■機能拡充と検証（3） 複数のIaaSをまたがるPaaS基トウェア開発の普及に付随するかたちNTT研究所の取り組みで注目が集まっているDevOpsと呼ば盤の構築と運用（1） PaaS基盤上で動作するアプリ

前述のBOSHは，さまざまなIaaSにれるサービス開発 ・ 運用プロセスを実PaaS利用者がアプリケーションを対応するCPI（Cloud Provider Interface）現するためのサービスです．DevOps

複数起動して可用性を確保しようとすを備えているため，Cloud Foundryをによる開発 ・ 運用プロセスの改善とる場合，アプリケーションの配置先はさまざまなIaaS上に導入することがCloud Foundryによるオペレーションできるだけ分散していることが望ましできます．またCloud Foundryは，IaaSの効率化を組み合わせることで，開発プいといえます．そこで複数のデータセ相互間でIP通信が可能であれば，複ロセスの大幅な最適化が期待できます．

ンタやサーバがアプリケーション配置数のIaaSにまたがって単一のPaaS基DevOpsではこれまで分離されてい先となるようにCloud Foundryのア盤を構築し運用することもできます．

た開発プロセスと運用プロセスを密にプリケーション管理機能を拡張しま

そこでパブリックIaaSどうしやプラ連携させることにより， １ 日に数十回した．

イベートIaaSとパブリックIaaSの組といった，従来よりも高速かつ高頻度合せでPaaS基盤の構築と運用を実際なサービス更新を実現します．サービ

ケーションの可用性向上

アクセス先のユーザアプリケーションまたはコンポーネントに対し，ホスト名ベースでトラフィックの振り分けを行う

アプリケーション利用者からのアクセスはWebブラウザなどから行われる

ロードバランサ

Webブラウザなど

PaaS利用者による操作は専用CLIツールやWebGUIなどから行う

ユーザアプリケーション

DEA

Router
ユーザアプリケーション

DEA
Router

CLI などユーザアプリケーションはDEA上で実行される

Loggregator
traﬃccontroller

Loggregator

NATS 高信頼なメッセージングバス
Cloud Foundry APIを提供するとともにシステム全体を制御

PaaS提供者による操作は専用CLIツールやWebGUIなどから行う

Cloud
Controller

Storage

UAA

BOSH

CLI などetcd

HealthManager
ユーザ認証を行う

RDB

ユーザアプリケーションの各種ログ収集と提供を行う

ユーザアプリケーションの死活監視を行う

Cloud FoundryコンポーネントのIaaS上へのデプロイと運用を担う※白文字がCloud Foundryコンポーネント

図2

18

NTT技術ジャーナル 2014.12

Cloud Foundryのコンポーネント構成

特 集

スの更新頻度は，エンドユーザのニー

こ れ ら の 問 題 は，Cloud Foundryをえる優れたオープンソースPaaS基盤ズを素早くサービスに取り込んでいく

サービスデリバリのプラットフォーム

ソフトウェアです．NTT研究所では，うえで欠かせないことから，ニーズのとして統合することで，大きく改善さ

引き続きCloud Foundryコミュニティ

変化が激しい昨今の市場では大きな競れます．Cloud Foundryを用いることへの貢献とPaaS市場の拡大に取り組争力に結び付きます．

でサービスのデリバリは簡単なパラんでいきます．また今後は，これまで一方で，DevOpsの導入には障壁もメータの調整と，ソースコードのプッの取り組みに加え，オープンソース存在します．効果的なDevOpsを実現

シュのみに単純化されます．これによIaaS基盤として有力であるOpenStackするためには，さまざまなツール，例り，最終的なサービスの更新を専門のとCloud Foundryと の 連 携 を 強 化 さえば，ソースコードのバージョン管理運用チームだけでなく，開発者自身がせ，プライベートクラウドでの活用もや課題チケットのトラッキングに始ま行うことが可能となります．

視野に入れたPaaS基盤の展開を図っ

り，継続的インテグレーション（CI）

また，プッシュされたソースコードやサーバ構成管理の自動化など，用途が実際に動き出すまでの時間も数十秒ごとに幅広いツールの使いこなしが必もしくは数分単位にまで短縮可能であ要です．

り，時間的なコストも削減できます．

しかし，これらすべてのツールに習さらに，開発や本番といった複数の環熟し，ツールを横断的に組み合わせる

境を １ つのCloud Foundryで提供するためのノウハウを得ることは簡単ではことが可能となることから計算資源のありません．この問題を解決するため利用効率も高まると同時に，開発環境に，NTT clouds Developはさまざまから本番環境への移行も容易になりまな機能をあらかじめ統合したかたちです． こ の よ う に，Cloud Foundryをサ ー ビ ス と し て 提 供 す る こ と で，NTT clouds Developと組み合わせる

DevOpsを誰でも簡単に始めることがことにより，DevOpsの要である開発できるよう設計されています．と運用の統合を，より高いレベルで達NTT clouds Develop に Cloud
Foundryを統合することで，サービス■コミュニティへの貢献
オ ー プ ン ソ ー ス 製 品 で あ るCloudています．これまでも，NTT clouds

Foundryを安定的に利用していくためにDevelopを導入することにより，サーは，利用者と開発者がかたちづくる活バ環境の構築を自動化することは可能

発なオープンソースコミュニティの存でしたが，構築したいサーバの設定や在が必要不可欠です．そこで，NTT研

クラスタ化，モニタリングといった設究所はNTTグループを代表してCloud定を行うためには依然として専門的なFoundry Foundationに参画を表明するとノウハウが必要でした．また，環境ごともに（5），国内におけるCloud Foundryとにサーバを立ち上げるための，時間コミュニティの醸成とPaaSの普及に取的あるいは金銭的なコストや，環境ごり組んでいます．また，前述した ２ つとに異なる設定値の管理なども運用上の取り組みについても，ソースコードの 大 き な 負 担 と な っ て い ま し た．の公開やCloud Foundry Summitでの発

NTT clouds Developの 導 入 に よ り，表を行うなど，積極的な情報共有によソースコードやチケットの管理などのりコミュニティへ貢献しています．

最終ステップであるサービスのデリバリに時間と手間がかかっていました．

■参考文献（1） http://cloudfoundry.org/（2） https://github.com/cloudfoundry（3） http://www.ntt.com/cloudn/data/paas.html（4） http://www.ntti3.com/（5） http://www.pivotal.io/platform-as-a-service/press-release/cloud-foundry-foundation

成することが可能となります．

デリバリのさらなる効率化が期待され開発面は大きく効率化されましたが，ていきます．

今後の展望
Cloud Foundryは魅力的な特長を備（上段左から）尾尻健/ 谷口 展郎/長田 孝彦（下段左から）中川 真一/ 岩嵜 雄大
本稿ではPaaSを用いたアプリケーション
開 発 の 利 点 とCloud Foundryを 活 用 し た
NTTのPaaS基盤を紹介しました．新規アプ
リ ケ ー シ ョ ン 開 発 の 際 に は， ぜ ひCloudFoundryの利用をご検討ください．

◆問い合わせ先NTTソフトウェアイノベーションセンタ
第三推進プロジェクト
TEL 0422-59-2207
FAX 0422-59-2072
E-mail sic lab.ntt.co.jp

NTT技術ジャーナル 2014.1219