SEA Forum in February 2013
「オープンソースとクラウド」
— 最新動向と今後の展望 —
クラウドとオープンソース
〜イントロ〜
鈴木裕信事務所有限会社
鈴木裕信 <suzuki.hironobu@gmail.com>
概要
●クラウドとオープンソースがどう関わっている
のかをさらりと紹介
●クラウドとは何か
●クラウドを支えるオープンソース
–
SaaS
–
PaaS
–
IaaS
●まとめ
●おまけ
2006年8月
●Google CEO エリック・シュミット
●サーチエンジン戦略コンファレンス
まずデータサービスとアーキテクチャーがサーバ上に
置かれていることを前提とする。それは「雲(クラウ
ド)」の中のどこかにあるーそれをクラウドコン
ピューティングと呼ぶ
クラウドという言葉の出現以前
●Grid Computing
●広域にちらばるコンピュータ同士をネットワークで接続し分散処
理を行う
●Utility Computing
●計算やデータストレージなどのリソースを必要に応じて提供し、
使った分だけを請求する
●
Application service provider
–
アプリケーションの能力をネットワーク経由で提供する業者
●
Server-Client
●
クライアントはサーバーに接続し、処理要求をサーバに送り、処
アメリカ国立標準技術研究所
●
クラウドという意味をきちんと整理してドキュメントに
した
NIST
National Institute of Standards and Technology
U.S Department of Commerce
Special Publication 800-145
The NIST Definition of Cloud Computing
●
実質2ページ
●
基本的性質
●
サービスモデル
●利用モデル
基本的性質
Essential Characteristics
●
On-demand self-service
●
計算資源をセルフサービスで使える。
●
Broad network access
●
手元の機器からネットワークを経由して使える。
●Resource pooling
●計算資源をプールしておいて物理的あるいは仮想的に計算資源をわり与える
ことができる。
●Raid elasticity
●すぐに使え、スケールにあわせて変化させることが簡単にできる。
●Measured service
●サービスなど利用する計算資源に対して動的に制御・最適化がおこなうこと
ができ、また、それらの計算資源の状況を把握することができる。
サービスモデル
Service Models
●
Software as a Service (SaaS)
●
用意されているアプリケーションを利用できる
●
Platform as a Service (PaaS)
●
開発環境を含めたプラットホームを利用できる
●
Infrastructure as a Service (IaaS)
利用モデル
Deployment Models
●Private cloud
●個人・社内など限られた人たちが使う
●Community cloud
●(限られた)コミュニティの中で使う
●Public cloud
●利用に特に限定はなく公開されて使う
●Hybrid cloud
●上記3つのうち2つもしくは3つのハイブリッド
クラウドのパターン
Service models x Deploy models =
Service models x Deploy models =
3 x 4 = 12 patterns
IaaS
PaaS
Software as a Service
●
必要に応じてソフトウェアを利用するサービス
●
On-demand softwareと呼ばれることもある
●Application service provider
–
アプリケーションを(サーバとして)提供する業者
●
サービス例
●
Customer relationship management (CRM)
●Management information systems (MIS)
●Enterprise resource planning (ERP)
●Content Management (CM)
サービスを使う
●
サービスのアカウントを獲得
●
主にアプリケーションとして使うだけで
–
Google Mail, Facebook + apps, etc.
●
自分でカスタマイズすることができる
–
Wordpress
–
プラグインなどサードパーティのものを拡張できる場合もある
(プロバイダー側のポリシーに依存するが技術的には可能)
●表面的にはASPとの区別は不明瞭
●一応NISTのSaaSの定義はできないこともないがユーザに
取って、その議論は不毛のように思える
–
マーケティング用語としてのASPとSaaSでは違いがあるが…
SaaSのプラットホーム利用例
●Mediawiki
●Wikipedia
●Dupal
●ホワイトハウス公式ページ
●Wordpress
●イギリス首相官邸ページ
●
Xoops, Django, Plone
IaaS
PaaS
SaaS
Is this Platform as a Service?
Database
Database
langauge
langauge
Web server
Web server
PaaS
●必要な要素が入っているだけではPaaSとは呼べ
ない
●クラウドの基本的性質を思い出してみる
●「自分で」「ネットを介して」「プールしているリ
ソース」「すぐに使えて、スケーラブルに使えて変
化させることができる」「それらの状況を監視し、
また最適化を行える」なプラットホーム
By RedHat
By VMware
プラットホームにデプロイ
●
ユーザはプラットホームのAPIを使いアプリを
デベロップする
●
ex) amazon AWS Elastic Beanstalkはeclipseのプ
ラグインがある
●ビルドしたアプリをクラウドにデプロイする
●デプロイされたアプリに必要なリソースがアサ
インされる
●サービス・インを開始する
プログラマっぽい表現ではこんな感じです
翻訳すると
●
手元のパソコンでプログラムを組んで、クラウ
ド上で動かすときは、そのままクリックするだ
けで動作します。
PaaS上で開発&サービス・インする
近未来型開発モデル
●すべてがPaaS上で完結してしまうモデル
●開発からサービス・インまですべてがPaaS上で行われ
る
–
アプリ開発者はベースとなるアプリ素材を提供
–
アプリ市場で素材が流通
–
サービス提供予定者はアプリ素材をピックアップ
–
サービスにカスタマイズ(開発も含む)
–
サービス・インを行う
●ソフトウェア/サービスに関してゆりかごから墓場まで
のすべてをサポート
IaaS
PaaS
SaaS
Infrastructure as a Service
●CPU資源、ストレージ資源、ネットワーク資源
などが用意されており、それが提供される
●毎回提供される資源に対し物理的なハードウェアを
一台つづ割り当てることは不可能なので計算資源の
仮想化が必要となる
計算資源の仮想化
●ハードウェアの仮想化
●汎用機の時代からあった以外に古くて新しい技術
●いろいろなレベルで仮想化する
●仮想マシン
●仮想ネットワーク
●仮想ルータ
●仮想スイッチ
●仮想ストレージ
Xen
KVM
ネットワーク装置の仮想化
●Vyatta
●仮想ルータ
–
Openflow対応
●Open vSwitch
●仮想スイッチ
–
Openflow対応
●Openflow
●Switchやrouterの設定をネット
ワーク経由で制御できる共通化
したプロトコル
●ネットワーク機器の設置場所と
いった物理的制約がないのでス
イッチやルータは好きなだけ
(仮想的に)設置できる
●スイッチの制御を一括管理、あ
るいは自動管理したい
仮想的なネットワーク
●仮定
●1つのハードウェア上に複数の仮想マシン
●そのハードウェアが複数ありネットワークで相互に
接続されている
●複数のハードウェア、あるいは複数のネット
ワークを介しての仮想マシン同士のネットワー
ク
●グリッド・コンピューティングのようなクラウド環
境を提供するStratusLab(現在開発中)もある
IaaSプラットホーム
●柔軟に仮想的なハードウェア・ネットワークを構築
●仮想マシン上にオペレーティングシステムインストール
●まったく既存のハードウェアへのインストールと同じ
●仮想マシンの仮想アプライアンスを利用する
●利用に必要なものはすべて揃っており動かすだけになっているオール・
イン・ワンな環境のこと
–
Amazon EC2ではいろいろな種類のAmazon Machine Image (AMI)という仮想アプラ
イアンスを用意している
IaaS プラットホーム
(cloud stack)
●著名なオープンソー
スのクラウド・ス
タック
●Eucalyptus
●OpenNebula
●OpenStack
●CloudStack
●提供する管理機能
●インスタンス(サー
バ)
●ストレージ
●ネットワーク
●セキュリティ
●モニタリング
Eucalyptus
●
2008年に公開
●
商用版とGPL版の両方がある
●
特徴
●
Amazon EC2 及び S3とAPI互換
●
仮想マシン
●Vmware, KVM, Xen
●動作環境
●メジャーなGNU/Linuxディストリビューション
●補足
●スタートが早かったので広まっている
OpenNebula
●
2008年に公開
●
アパッチライセンスv2
●
特色
●
OpenNebulaをクラウドエンジンとして更なるクラウド環境(17)
に利用されている。(ex. StratusLab, D-Grid)
●
アカデミックや研究ユーザが多い
●
欧州諸共同体(EC)の研究開発サポートをうけている
●
補足
●
公開が早かったので広まっている
OpenStack
●2010年に公開
●アパッチライセンスv2
●特色
●Amazon EC2互換
●RackspaceとNASAが共同開発
●150を越える企業と、GNU/Linuxマーケットでの主力会社が参加
– Canonical(ubuntu), SUSE Linux, Red Hat ●
仮想マシン
●KVM, Vmware, Xen
●動作環境
●メジャーなGNU/Linuxに対応
●補足
●NASAのクラウドであるNebulaで利用されている
●急速にユーザ層が広くなっていっている
Cloudstack
●2010年5月に公開
●Cloud.com(旧VMOps社)→cloud.com + Citrix
●特徴
●GPLv3でリリース後、現在Apache License 2.0
●仮想マシン
●
Xen, Vmware (vSphere), KVM
●動作環境
●
メジャーなLinuxディストリビューション
●
補足
●
Xenを商用サポートしているCitrix社がCloudstackも商用サポートしてい
まとめ
●
クラウドの定義はNISTPub 800-145
●
それに従えば12パターンのクラウドのモデルがある
●
クラウドにおいてオープンソースが重要な役割
Helix Nebula, the Science Cloud
●2020年ぐらいに完成か?
●
ファンドはEC FP7からで第一期は2012年6月スタートで2014年まで
–
去年ぐらいからのドキュメントしかないので全容はよく調べられなかった
●関係する組織
●
ATOS, BT Global Services, CAP Gemini, CERN, CloudSigma, CNES, CNR,
DLR, the EC, EGI.eu, EMBL, ENEA, ESA, Logica, OpenNebula, Orange
Business Services, SAP, SIENA, StratusLab, Server Labs, Six2,
T-Systems International, Terradue srl, Thales, TrustIT.
●
Helix Nebulaの説明
●