クラウドを使う

クラウドを準備して使う
日本アイ・ビー・エム株式会社
ソフトウェア事業
テクノロジー・エバンジェリスト
PSU_temp_0522
IBM Corporation
8/3/05
米持 幸寿
この文書のデータの利用または公開には、
最終ページに記載されている制限事項が適用されます。
© 2010 IBM Corporation
内容
 SaaSを作る
 PaaSを作る
 IaaSを作る
 共通の話題
注
すべてを網羅しないと役にたたないわけではありませ
ん
PSU_temp_0522
2
必要な機能を選択して実現することが重要です
© 2010 IBM Corporation
クラウドに共通の機能
 たくさんの利用者で共有できること
– 複数のテナントをクラウドに共存させる(マルチテナント)
– 個人、企業、部門、プロジェクト・・・
– 複数の用途のアプリケーションの混在
 短時間で利用開始・終了ができること
– システム、インスタンス、データなどの準備が自動化
– クリーンナップ処理の自動化
 ハードウェアを容易に追加・取り外しできること
– プロセッサー
– ストレージ
 マルチテナントと従量課金
– 課金制度
– 利用量の計測
– ログ集計
PSU_temp_0522
3
© 2010 IBM Corporation
クラウドの運用
 クラウドの構築
 プロセッサー・ノード、ストレージ、ネットワークの追加(増強)
 壊れたノード、ストレージ、ネットワークの取り外し(交換)
 論理的なトラブルへの対応
– ユーザーIDの削除
– ハングアップしたシステムの手動切り離し
PSU_temp_0522
4
© 2010 IBM Corporation
クラウドを利用するサイクル
最大容量
要求
利用
解放
大量のコンピューターを
できるだけ余らせないように
使うようにする
PSU_temp_0522
5
© 2010 IBM Corporation
クラウドを使う
プロジェクト単位
 ユーザー・アカウントを登録する
 課金(請求)情報を登録する
という考え方も
できる
 機能を契約する(課金発生)
 利用する
 機能を解約する(課金終了)
 ユーザー・アカウントを抹消する
PSU_temp_0522
6
© 2010 IBM Corporation
「クラウドを作る」とは
 自分がITサービスを提供する相手にクラウドのサービスを提供すること
– ユーザー企業のIT部門なら「エンドユーザーに対して」
– または「プログラマに対して」「運用管理者に対して」
– ASP や SO事業者なら「お客様企業に対して」
– SI事業者なら「その構築を行う」
インターネットで
行うかどうかは
経済論です。
「クラウドを使う」とは
 クラウドの上で業務を行う
→ SaaS
 クラウドの上でプログラミングする → PaaS
 クラウドの上でシステムを運用する → IaaS
PSU_temp_0522
7
© 2010 IBM Corporation
サービス形態による効率の考慮
SaaSの場合
HV
OS
MW
AP
U
U
U
U
U
U
U
U
U
U
U
U
U
HV
OS
MW
AP
U
U
U
U
U
U
U
U
U
U
U
U
U
HV
OS
MW
AP
U
U
U
U
U
U
U
U
U
U
U
U
U
PaaSの場合
HV
OS
MW
AP
U
AP
U
AP
U
AP
U
HV
OS
MW
AP
U
AP
U
AP
U
AP
U
HV
OS
MW
AP
U
AP
U
AP
U
AP
U
用途ごとにコピーされる単位
IaaSの場合
HV
OS
MW
AP
U
OS
MW
AP
U
HV
OS
MW
AP
U
OS
MW
AP
U
HV
OS
MW
AP
U
OS
MW
AP
U
PSU_temp_0522
HV ハイパーバイザー
8
OS OS
MW ミドルウェア
AP アプリケーション
U ユーザー
© 2010 IBM Corporation
内容
 SaaSを作る・使う
 PaaSを作る・使う
 IaaSを作る
 共通の話題
PSU_temp_0522
9
© 2010 IBM Corporation
SaaSが持つ特徴
 サーバー中心
– データもアプリケーションもサーバーに置く
 RIA(リッチ・インターネット・アプリケーション)
– ブラウザーだけど使いやすい、高機能
 コンポーネント化
– 使いたい機能だけ組み合わせて使える
 永遠にβ
– どんどん改変
 マルチテナント
– 用途ごとに立ち上げない
 セルフスタート
– 使いたいときに始められる
PSU_temp_0522
10
© 2010 IBM Corporation
様々なデバイスを端末化する
 アプリケーションは配布
 データはクラウド側に保存する
行動記録
メール
スケジュール
アプリ
アプリ
写真
アドレス帳
アプリ
ビデオ
アプリ
PSU_temp_0522
11
© 2010 IBM Corporation
マルチテナント
 ひとつのシステムを
 複数の企業で
A社データ
B社データ
 それぞれの事情で使う
 他の企業との分離度
C社データ
A社
B社
C社
 違う要件・要望への対応
 動かしっぱなし
 スケール
 品質維持
アプリケーションごとに実装せず、
クラウド基盤で用意すると
より効果的
PSU_temp_0522
12
© 2010 IBM Corporation
アプリケーションでのテナントの認識
テナントID
顧客ID
名称
ふりがな
顧客
住所
住所ふりがな
契約代表者
代表電話番号
注文
ID
名称
テナント
ふりがな
住所
ID
名称
住所ふりがな
契約代表者
代表電話番号
クレーム
PSU_temp_0522
13
© 2010 IBM Corporation
アプリケがテナントを識別するかしないか
PSU_temp_0522
14
© 2010 IBM Corporation
DBスペースで分ける
 既存アプリケーションの移行はこの方法か?
 個別バックアップなどに対応しやすい
 スペースがたくさんできてしまう
A社向けデータベース
契約テーブル
コード
種別
状態
・・・
注文テーブル
伝票ID
日付
件名
・・・
B社向けデータベース
顧客テーブル
顧客ID
名称
住所
契約テーブル
・・・・
コード
種別
状態
・・・
注文テーブル
伝票ID
日付
件名
・・・
顧客テーブル
顧客ID
名称
住所
・・・・
PSU_temp_0522
15
© 2010 IBM Corporation
スキーマで分ける
 そもそもRDBMS製品が持つ機能
 スペースが一つで済む
 個別バックアップ・リストアには工夫が必要
A社向けテーブル群
A.契約テーブル
コード
種別
状態
・・・
A.注文テーブル
伝票ID
日付
件名
・・・
B社向けテーブル群
A.顧客テーブル
顧客ID
名称
住所
・・・・
B.契約テーブル
コード
種別
状態
・・・
B.注文テーブル
伝票ID
日付
件名
・・・
B.顧客テーブル
顧客ID
名称
住所
・・・・
PSU_temp_0522
16
© 2010 IBM Corporation
セルフスタート
 アプリケーションは、一度作った始動作業はエンドユーザーができるようにし
ておくこと
上司
なにか業務に使
えそうなものは・・
承認
申請
見つけた!
セットアップして
スタート
アプリケーション
インスタンス開始
PSU_temp_0522
17
© 2010 IBM Corporation
セルフスタートで行わなければいけないこと
 ユーザーの登録(オプション)
 テナントの登録、メンバーシップの登録
 ACL(権限)の設定
 データベース(スペース)、テーブルの準備
 基礎データの初期化
 終了時にデータ・テーブル・スペースの削除
 ACL、メンバーシップ、テナントの削除
PSU_temp_0522
18
© 2010 IBM Corporation
プロジェクト管理クラウド
ダウンロード
ファイル共有
Home
ユーザー
テスト環境
ブログ フォーラム
バージョン管理
Wiki
ユーザー
バグ追跡
利用
プロジェクト
立ち上げ
この機能、
こんな風に
できませんか?
PSU_temp_0522
19
開発
修正
ビルド
スクリプト
プログラマー
専門プログラマー
© 2010 IBM Corporation
Rational Team Concert
PSU_temp_0522
20
© 2010 IBM Corporation
Lotus Connections ( My developerWorks )
PSU_temp_0522
21
© 2010 IBM Corporation
SaaS のスケール
 クラウドでサービスしはじめたら、止められない
 ユーザーが増えてきたら、スケールしなければ
 クラウドではスケールアウト
–自動クラスタリング
• WebSphere XS
–そもそもスケールアウト型のシステムを使う
• MapReduce
PSU_temp_0522
22
© 2010 IBM Corporation
内容
 SaaSを作る・使う
 PaaSを作る・使う
 IaaSを作る・使う
 共通の話題
PSU_temp_0522
23
© 2010 IBM Corporation
プログラミングするクラウド
 サイト上でプログラムすればいい
– パブリック
• Force.com
• Google App Engine(Python)
– プライベート
• WebSphere sMash
• IBM Mashup Center
 作ったアプリケーションを動かすクラウド
– パブリック
• Google App Engine(Java)
– プライベート
• WebSphere XS(エクストリーム・スケール)
• WebSphere Cloudburst アプライアンス
PSU_temp_0522
24
© 2010 IBM Corporation
ProjectZero:Wiki のような開発環境
使う
セットアップ
ブラウザー
ユーザー
書き込む
保存する
PSU_temp_0522
25
管理者
インフラ担当
スクリプト
プログラマー
アプリケーション
ビルダー
© 2010 IBM Corporation
東京工科大学「Lcloud」
 WebSphere sMash – appbuilder を大量の稼働させるクラウド
 クラウドで作る-クラウドで公開-クラウドで使う を実現
 サーバーは簡単に増強可能 ←外部クラウドにスケール予定
Blade
browser
Console
appbuilder
appbuilder
appbuilder
appbuilder
appbuilder
OS
controller
sMash
Blade
appbuilder
appbuilder
appbuilder
appbuilder
appbuilder
OS
工科大クラウド
Blade
appbuilder
appbuilder
appbuilder
appbuilder
appbuilder
OS
Shared
storage
PSU_temp_0522
26
© 2010 IBM Corporation
WebSphere sMash
PSU_temp_0522
27
© 2010 IBM Corporation
IBM Mashup Center
PSU_temp_0522
28
© 2010 IBM Corporation
スクリプト・プログラミング
 言語の知識
– たくさんの言語:Perl、TCL、Python、PHP、Groovy
 動的型づけ
 クロージャー
 コンパイルしない
– つまらないスペルミスによるエラー
– 改変時に影響うける箇所を探しにくい
 変数型がない
– コードアシストがうまく働かない
PSU_temp_0522
29
© 2010 IBM Corporation
スクリプト・プログラミングでの効率と品質
 Dojoツールキットなどによるコンポーネント化
 コードパターンと切り貼り
 テスト駆動型開発
 ECMAに期待
PSU_temp_0522
30
© 2010 IBM Corporation
ECMAScript の状況
Adobe、
Mozilla、
Opera、
Google
ECMAScript 5
ECMAScript 3.1
ECMAScript 6?
ECMAScript Harmony
ECMAScript 4
Microsoft
Yahoo!
PSU_temp_0522
31
中止?
JSONオブジェクト
Objectオブジェクト
Functionオブジェクト
Arrayオブジェクト
String, Number, Boolean, Date
などなど
http://markcaudill.com/index.php/2009/04/javascript-new-features-ecma5/
© 2010 IBM Corporation
内容
 SaaSを作る・使う
 PaaSを作る・使う
 IaaSを作る・使う
 共通の話題
PSU_temp_0522
32
© 2010 IBM Corporation
IaaS
PSU_temp_0522
33
© 2010 IBM Corporation
IaaSの特徴
 マシン(CPU、メモリー、ストレージ)を
 1時間など、短時間単位で貸す
 使いたいときすぐ使える
– あまらせておかないといけない
– たくさん置いておく
– 無駄にしない(仮想化)
 OS、M/W、APPLをVMごとに起動するのでオーバーヘッドは最も大きい
 リアルプロセッサーとの差が最も少ない
PSU_temp_0522
34
© 2010 IBM Corporation
IaaSの機能
 プロセッサーを自動で準備する
– CPU、メモリー、ハードディスク(ストレージ)
 OS環境を自動で準備する
– Windows、Linux、AIX・・・・
 使っていない分をリサイクルする
必要なもの
 たくさんのサーバーマシン
 プロセッサー仮想化技術(ハイパーバイザー)
 プロビジョニングシステム
 ストレージ仮想化技術(SAN、NAS)
PSU_temp_0522
35
© 2010 IBM Corporation
VM、ハイパーバイザー
 IA仮想化技術は、この数年でやっと他のプラットフォームに追いついた
– 例:インテル® VT、AMD-V
– Xen
• GNU(GPL)、XenSource社、Citrix社
– KVM
• GNU(GPL、LGPL)
• IA-32、s390、PowerPC、IA-64
– vSphere
• VMware社のESX、ESXiを基盤とした仮想化ソリューション
– Hiper-V
• Microsoft社のWindowsベースの仮想化
 PowerVM、zVM、LPAR
– IBM社 POWERアーキテクチャー、システムzの仮想化
PSU_temp_0522
36
© 2010 IBM Corporation
VMとハイパーバイザー
 CPUを「分ける」技術(足すことはできない)
VMWare Playerなど
一台のコンピューター
複数のコンピューター
OS
OS
OS
OS
OS
VM
VM
VM
VM
VM
OS
OS
VMWare ESX、MS Hiper-V など
一台のコンピューター
複数のコンピューター
新しめのCPUでないと
実行できない
OS
PSU_temp_0522
37
OS
OS
OS
OS
OS
ハイパーバイザー
© 2010 IBM Corporation
PSU_temp_0522
38
© 2010 IBM Corporation
IBM Director、VMControl
 複数のハードウェア・プラットフォーム全体で物理システムと仮想システムの
管理を簡素化するプラットフォーム管理ソフトウェア
PSU_temp_0522
39
http://www.ibm.com/systems/jp/x/sysmanage/director.shtml
© 2010 IBM Corporation
PSU_temp_0522
40
© 2010 IBM Corporation
OVF (Open Virtualization Format)
 仮想アプライアンスのパッケージング標準
 DMTFで策定
– Distributed Management Task Force
アプライアンス
アプリケーション
APサーバー
自動配布
データベース
OS
PSU_temp_0522
41
© 2010 IBM Corporation
なぜ標準化が必要か?
 クラウドが不足したら、別のクラウドを借りる
パブリック・クラウド
共同クラウド
足りなくなったら一時的に借りる
企業
プライベートクラウド
PSU_temp_0522
42
© 2010 IBM Corporation
内容
 SaaSを作る・使う
 PaaSを作る・使う
 IaaSを作る
 共通の話題
PSU_temp_0522
43
© 2010 IBM Corporation
案外必要になる知識
 Webサービス
– XML、JSON
– RSS、Atomシンジケーション
– SOAP・WSDL、RESTful、Atomパブリッシング・プロトコル
 遠隔操作
– SSH
– リモートデスクトップ
 ネットワーク・セキュリティー
– PKI
– VPN
PSU_temp_0522
44
© 2010 IBM Corporation
XML、JSON
 XML:W3Cで標準化
 JSON:ECMA?http://json.org/?
 要素名、属性名が必ず必要
 配列が書ける
 配列が書けない
 一つのオブジェクト内に同じ名称が持て
ない
 スキーマの考え方、言語
 名前空間
<product>
<part id="a001">
<name >DISK</name>
<price>19800</price>
</part>
<part id="a002">
<name >CPU</name>
<price>64700</price>
</part>
</product>
{product:parts[
{id="a001",name:"DISK",price:19800},
{id="a002",name:"CPU",price:64700}
]}
その他
エスケープのルール、
改行の取り扱いなどに違い
PSU_temp_0522
45
© 2010 IBM Corporation
RSS、Atomシンジケーション
 Webサイトのサマリー配信用XML
 ニュースの配信、サイトの更新情報の配信
 RSSはディファクト、AtomはIETF
SOAP/WSDL、RESTful、Atomパブリッシング
 SOAP/WSDL:W3C
– スキーマ、IDL、という伝統的な分散技術の伝承
– ミドルウェアを前提にした技術
– SOA、エンタープライズでの利用
 RESTful
– Web 2.0的利用、インターネットで普及
 Atom Publishing Protocol
– コンテンツ系システムの今後の標準か?
PSU_temp_0522
46
© 2010 IBM Corporation
使うときに必要な知識
 SSH
– Linuxの場合、コマンドプロンプトをリモートlからアクセスする
 リモート・デスクトップ
– Windowsの場合、デスクトップをリモートからアクセスする
 PKI
– ネットワーク経由で使うので、暗号化は必須
 VPN
– 手元のサーバーと連携する必要があるとき
PSU_temp_0522
47
© 2010 IBM Corporation
SSH、リモートデスクトップ
 インターネット経由で使うのだから、より安全に
 PKI を多用することになる
遠隔から
操作
ウィンドウシステムが
稼働しているサーバー
PSU_temp_0522
48
© 2010 IBM Corporation
PKI、VPN
 Webを多用します
– 暗号化技術の知識は必須
• 対象鍵、非対称鍵、ダイジェスト、デジタル署名
– PKI を多用します
• 証明書、秘密鍵の管理、SSHなど
 クラウドから自社のシステムへアクセス
– 既存システムとクラウドの間を接続
– 遠隔からクラウドの操作
– データの交換
– バックアップ・リストア、システムのコピー
PSU_temp_0522
49
© 2010 IBM Corporation
おまけ
 最近のスケールアウト技術
– 分散ファイルシステム
– キー・バリュー・ストア
– MapReduce
– 分散・連邦データベース
 お金の話
– アカウント情報の管理
– パブリック・クラウド利用の注意点
PSU_temp_0522
50
© 2010 IBM Corporation
HDFS(Hadoop Distributed File System)
 複数のノードをネットワークで繋ぎ
 ファイルをブロックにわけて分散保存
 いくつかのコピーを作る
 ノードが壊れたら、生きているコピーから修復
RAID
HDFS
PSU_temp_0522
51
© 2010 IBM Corporation
HDFSの構造
ネームノード
ファイルA
A1
A2
A3
三つのレプリカ
ファイルB
B1
B2
B3
二つのレプリカ
A1
A3
PSU_temp_0522
52
A1
B1
A3
もし、このマシンが
ダウンしたら・・・
A1
B1
A2
B2
A2
A2
A2
A1
B3
B3
B1
A3
データノード群
B2
A3
別の正常なマシンから
レプリカが再実行される
© 2010 IBM Corporation
キー・バリュー・ストア
 データにキーを付けて管理する入れ物
– map.put(key, currentObject);
 複数のサーバーで大規模管理するもの
 メモリーで管理するので高速
000000~099999
100000~199999
200000~299999
300000~399999
400000~499999
500000~599999
600000~699999
PSU_temp_0522
53
CouchDB, WebSphere XS, Oracle Coherence etc…
© 2010 IBM Corporation
MapReduce
 たくさんのサーバーに分散しているデータセットを
 それぞれのサーバーである程度処理してから
 最終的に集計する分散処理技術
エージェントのようにプログラムを配布
map
map
reduce
reduce
プログラム呼び出し
map
reduce
map
map
reduce
reduce
PSU_temp_0522
54
© 2010 IBM Corporation
MapReduceの概念
各ノードで実行
キー
バリュー
キー
バリュー
最終的に集計
reduce
map
なんらかの
結果オブジェクト
減らしたリストMap
あるいは
別の視点で
作成したMap
各ノードにある
キーとバリューの
リストのMap
PSU_temp_0522
55
© 2010 IBM Corporation
まとめ
 目標をしっかり持つ
– 自分たちがやりたいことが、どれ(SaaS、PaaS、IaaS)に最も近いか
– ユーザーが必要なのはSaaS
– システム屋が必要なのはPaaS
– スケール(アウト・イン)や短時間利用するには、IaaS
 必要最低限の機能を実装することでスタート
 あとで拡張可能な設計
 購入したほうが安いことも
PSU_temp_0522
56
© 2010 IBM Corporation