クラウドを準備して使う 日本アイ・ビー・エム株式会社 ソフトウェア事業 テクノロジー・エバンジェリスト 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
© Copyright 2024 ExpyDoc