Moot2013 moca ver0.3
Transcript of Moot2013 moca ver0.3
大規模、高可用性パブリッククラウド E-LEARNING システムの実現
Cloud Native moodle ソリューション – moca の紹介
セッションの内容と目的 セッションの内容• moca を支える Windows Azure のテクノロジー• moca の紹介
セッションの目的• オンプレミスでは実現できないクラウドの利便性を知って頂き、
BCP(事業継続計画) / DR (災害復旧)対策の一つとしてより多くの方に認識して頂く
Agenda クラウドで実現するサービスの要件 Windows Azure の概要 moodle をクラウド化するための技術と課題 moodle クラウドソリューション moca の紹介• moca とは• moca のコアアーキテクチャ• moca の周辺サービス• moca のサポート内容• moca のコスト• 導入後の期待効果
今後のロードマップ
クラウドで実現する サービスの要件
クラウドサービスの主な特徴
オンデマンドセルフサービス(On-Demand Self Service)
幅広いネットワークアクセス (Broad network access)
リソースの共有(Resource pooling)
スピーディーな拡張性(Rapid elasticity)
6
お客様の要望に基づいたmoca
1. moodle システムを管理する教員の負担を解放し、 本来の教育に集中させたい
2. 学内サーバーの導入運用管理コストを削減したい
3. moodle を 24 時間 365 日稼動させたい。
4. On-Premise と同様、若しくはそれ以上の パフォーマンスを期待していきたい
Windows Azure 概要
Windows Azure のサービス
3つのコンピュティング選択肢
Azure のコンピューティング
ハードウェア
仮想化
サーバー OS
ネットワーク
ファイアウォール
データ
アプリケーション
オンプレミス
ハードウェア
仮想化
サーバー OS
仮想ネットワーク
ファイアウォール
データ
アプリケーション
仮想マシン
ハードウェア
仮想化
サーバー OS
仮想ネットワーク
ファイアウォール
データ
アプリケーション
クラウドサービス
ハードウェア
仮想化
サーバー OS
仮想ネットワーク
ファイアウォール
データ
アプリケーション
Web サイト
クラウドサービスの特徴• スケーラブルな Windows
Server ベースのアプリケーションホスティング環境 (PaaS)Hyper-V 仮想マシン (VM) ベースWeb ロール、 Worker ロール、 VM ロール使用したい VM の数 ( = インスタンス数 )
を指定するだけでデータセンター側で自動的に VM を展開・実行
.Net, PHP, Java, Python 多種言語対応
• SLA :月間稼働率 = 99.95%
バックグラウンドサービスサーバー
ストレージ サービス
Block BlobPage Blob
Web サーバー( IIS )
moca を支える技術と課題Cloud Native moodle ソリューション
moodle をクラウド化するための技術と課題1. スケーブル、柔軟な Web インフラ環境の設定• 複数バージョン moodle サイト同時稼働及びマルチテナント
型運用の moodle サイト構築• 分散環境で moodle セッションの管理• クラウド課金を最低限収まるための自動スケーリング
2. moodle データ クラウド化の壁• ファイルデータの共有• SQL データベースの適用
3. moodle クラウド環境のソフトウェア自動更新4. バックアップ & リストア5. 監視 & 障害回復
スケーラブル、柔軟な Web 環境構築 ( 開発環境 )
Windows Azure は PHP がサポートされている ( 以下のツールを利用 )
SDK for PHP Azure-PowerShell
ビルドイン PHP バージョンが選択できる
手動で自ら PHP Runtime の設定も可能
Moodle 稼働用の各種ライブラリを自由に設定可能
必要な PHP ライブラリと php.ini の設定
追加ができる
スケーラブル、柔軟な Web 環境構築 ( アプリケーションの配置 ) • Azure SDK1.3 から Full IIS モー
ド利用可能になった
• 1 つ Web ロールで複数 Web サイト、仮想アプリケーション / ディレクトリーを構成可能
Web アプリケーションのプロジェクト分割が容易に
学年学部毎の moodle バージョンを分割、学部間のソース共有が容易に
2013
2012
2011
gakubu1
gakubu2
gakubu1
gakubu2
gakubu1
gakubu2
仮想ディレクトリー
仮想アプリケーションmoodle2.4 各学部共有
仮想アプリケーションmoodle2.3 各学部共有
仮想アプリケーションmoodle2.2 各学部共有
スケーラブル、柔軟な Web 環境構築 (コンピューティングのスペック)
極小: XSCPU : 1.0Hz×1メモリー: 758MBストレージ: 20GBI/O :低速料金: 1.75/H
小: SCPU : 1.6Hz×1メモリー: 1.75GBストレージ: 225GBI/O :中速料金: \10.49/H
中: MCPU : 1.6Hz×2メモリー: 3.5GBストレージ: 490GBI/O :高速料金: \20.98/H
大: LCPU : 1.6Hz×4メモリー: 7GBストレージ:1,000GBI/O :高速料金: \41.96/H
特大: XLCPU : 1.6Hz×8メモリー: 14GBストレージ:2,040GBI/O :高速料金: \83.92/H
インスタンス数 =
× 2 × 4 × 8
8:00 10:00 12:00 14:00 16:00 18:00 20:00 22:000
2
4
6
8
Instance Count
Instance Count
× 2
スケーラブル、柔軟な Web 環境構築
Auto
scalin
g
Serv
ice(o
n-p
re)
Service Management API
Read
Scale: Upgrade deployment
Write
制約ルール 利用 TimeTable と関連し、予測
可能なアクセス増加 / 減少のスケール対策
反応性ルール Perf カンターを利用して定義済
の KPI(CPU 利用率 ) でスケール対策
Windows Azure Integration Pack for Enterprise Library
制約要件を定
義
ルール指定
運用
分析結果を収
集
需要の変化に自動的に対応したい アプリケーションの実行に伴うコストを管理
したい追加のリソースを必要とする場合には、予測
可能な時間を持つ
自動スケーリング仕組み
分散環境でのセッション管理
分散環境では moodle の Web サーバーインスタンスは複数あるため、セッションを共有なデータストアで保存する必要がある
Windows Azure SDK for PHP が Session Handle を提供して Windows Azure Table Storage にセッション情報を保存する方法をおすすめです。
moodle/config.php にコー
ドを追加
Session Data
テーブル ストレージ
moodle データ クラウド化の壁
moodledata移行要求
moodledata をどこに保存するか?
1. Moodle 既存ソースの変更を最低限に
2. ファイル / フォルダ管理可能
3. 分散環境でデータ共有可能
ファイルストレージ• ファイル = ブロブ• フォルダ = コンテナ※コンテナは1階層のフォルダしか作れない!
画像 / 動画など最適 種類:
• ブロック ブロブ (4MB 分割 )• ページ ブロブ (512 バイトの
ページに分割 ) スナップショット、 CDN をサポー
ト
Moodle ロール
NTFSボリューム
moodle データ クラウド化の壁 ファイルサーバーとして Worker ロールを作成 Worker ロールの 1 つインスタンスから VHD ブロブを
マウンドする VHD ドライブを net work drive として各Web インス
タンスに公開するため、 SMB プロトコルをオープンする
Net work drive を共有するため、管理者権限が必要Azure SDK 1.3 から設定可能になった<ServiceDefinition.csdef>
net.exe + netsh.exe コマンドで共有を行う
ロールインスタンス間で通信用の Internal エンドポイントを構成する
高可用性のため、ファイルサーバー役の Worker ロールインスタンスを2台にし、1台がスタンドバイ
Internal エンドポイント
SMB Protocol 445
Inputエンドポイント
VHD を net work Drive
として共有し、 Webロールからマップする
ブロブ ストレージ
VHD
VHD ブロブを Azure Drive として Worker ロールにてマウンド
moodle データ クラウド化の壁
Windows Azure では RDB なら SQL データベース
moodle は SQL Server をサポートしている• わずかの修正で SQL データベースが利用できるようになる
物理マシン上に常に3重化されている
クラウド環境のソフトウェア自動更新
Windows Azure を使用したことがある方であればご存知の通り、 Windows Azure には展開したホストサービスに自動的に修正プログラムを適用する機能が用意されています。
インスタンス OS の自動アップグレード
複数のロール インスタンスを別々の障害ドメイン及び更新ドメインに展開した場合、インターネット用のロールの外部接続の稼働率が 99.95 以上になることをマイクロソフトでは保証してます。
FC のアルゴリズムで UD,FD を自動で処理される UD 数はデフォルト = 5, ServiceDefinition.csdef
の UpdateDomainCount属性で変更可能
障害ドメイン #0 障害ドメイン #1
更新ドメイン #0 インスタンス #0
更新ドメイン #1 インスタンス #1
更新ドメイン #2 インスタンス #2
更新ドメイン #3 インスタンス #3
クラウド環境のソフトウェア更新の仕組みmoodle のバージョン・アップ
Production Staging
マイナー更新: 1ヶ月
メジャー更新: 6ヶ月
運用都合より moodleバージョンを選考して更新を行う
バックアップ1. moodledata のバック・アップ
VHD ブロブの Snapshot を定期的に作成する
snapshot は読み取り専用であり、課金の対象となるのはユニーク ページのみです。
※ユニック 8 ページが課金対象
2. moodledb のバック・アップ クラウド上 SQL データベースのコピー
を行う(直近のバックアップ)
BACPAC 形式でデータベースの丸ごとインポート/エクスポート ( ストレージに保存 )
同一地区 or 同一データセンター
CREATE DATABASE db1clone AS COPY OF db1
CREATE DATABASE db1clone AS COPY OF sv01.db1
診断監視 & 障害回復データ・ソース 既定の構成 構成方法 ストレージ
トレース ログ 有効 診断 API Table
パフォーマンス カンター 無効 診断 API Table
Windows イベント ログ 無効 診断 API Table
インフラストラクチャ ログ 有効 診断 API Table
IIS ログ 有効 診断 API, Web.config Blob
IIS 失敗した要求ログ 無効 診断 API, Web.config Blob
アプリケーションのクラッシュ ダンプ
無効 診断 API, クラッシュAPI
Blob
任意のログとファイル 無効 診断 API Blob
1. 収集したログを監視、担当者へアラート配 信の仕組を作成すると自動監視機能ができる
2. 緊急事態の場合、リモートデスクトップにて回復作業など行うことができる
moca 紹介
moca とは
moca core
Auto-Scaling Service
Backup & Recovery Service
moca Management Console
Heath MonitoringService
moca は Windows Azure の上で構築されている moodleパブリッククラウドソリューションです。
moodle のクラウド環境のコア機能及び安定稼働、高可用性をサポートする周辺サービスで構成されている。
moca の Web ロールインスタンスを自動的にスケーリングための専用サービス
moca ファイルデータ & DB をバックアップための専用サービス
moca システム全体のヘルス状態を監視する専用サービス
moca のパッケージ作成 、デプロィなど管理するための PowerShell cmdlets
moca Management Console
moca コアの構成
Internal エンドポイント
SMB Protocol 445
Inputエンドポイント 80
VHD Blob SQL Database診断ログ
moodle ソース
moodle プラグイン
moca パッチ
PHP Runtime
PHP Extensions Lib
moca テーマ
moca パッケージ を Azure で展開した構造
デプロイ
Net work drive
①moodle Web RoleInstance Farm②SMB ファイル共有 Worker RoleInstance Farm
③ VHD Blob (moodledata)
④moodle DBVHD Snapshot DB Clone
1
2
3 4
moca コアのソフトウェア
No. 名称 説明 備考1 moodle ソース moodle オリジナルソース
最新更新は moodle2.3.2 を利用moodle2.0 からサポート
2 moodle プラグイン デフォルトで追加した moodle プラグイン Checklist数式表示
3 moca パッチ Azure で動作できるための変更点と日本語関連の文字化け、日本語ファイル名問題の変更
1. SQL Database 関連2. バルクユーザー日本語文字化け問題の修正3. 日本語ファイル名のアップロード &ダウンロード問題修正4. 統計図の日本語フォント追加
4 moca テーマ moodle公式テーマから厳選したテーマセットと当社カスタマイズしたテーマセット
1. Rocket
5 PHP Runtime PHP 5.2.8 以上必要デフォルトで PHP5.3.7
6 PHP Extensions Lib Sqlserv-drive3.0Windows Azure SDK for PHP
moca 最新版: moca_1.5_232_bulider1.4
Auto-Scaling Service
Internal エンドポイント
SMB Protocol 445
Inputエンドポイント 80
VHD Blob SQL Database診断ログ
moca パッケージ を Azure で展開した構造
Net work drive
VHD Snapshot DB Clone
1
2
3 4
On-premise 環境で moca 管理サーバーにて実行
サービス対象: moodle Web ロールのみ
TimeTable ベースでルール設定(複数可)
スケーリング操作のログ記録
Auto-Scaling Service
6:00~ 10:00 10:00~ 14:00 14:00~ 18:00
× 2 × 4 × 6
月~水 木、金 土、日
rule1 rule2 rule3
v
Backup & Recovery Service
Internal エンドポイント
SMB Protocol 445
Inputエンドポイント 80
VHD Blob SQL Database診断ログ
moca パッケージ を Azure で展開した構造
Net work drive
VHD Snapshot DB Clone
1
2
3 4
Backup & Recovery Service
On-premise 環境で moca 管理サーバーにて実行バック・アップの保存先は Azure ストレージサービス対象:ストレージ・ SQL データベース
1. moodledata 保存する VHD Blob2. moodledb コピー
いつでもフルバック・アップバック・アップ操作のログ記録
Base Data1世代前
2世代前
3世代前
ミラーデータ
4世代前
5世代前
6世代前
Backup
Recovery古い世代を自動削除
Heath Monitoring Service
Health Monitoring Service
Internal エンドポイント
SMB Protocol 445
Inputエンドポイント 80
VHD Blob SQL Database診断ログ
moca パッケージ を Azure で展開した構造
Net work drive
VHD Snapshot DB Clone
1
2
3 4
各ロールインスタンスの死活監視
VHD / DB 容量チェック
ロールパファーマンス情報収集
監視情報メールお知らせ
古いログの自動削除
IIS/Event 診断ログの監視
moca サポート内容No 内容 備考
1 Windows Azure / moca の技術サポート 電話、メール対応
2 障害が発生した時の回復作業 随時
3 運用クラウド環境の最適化 随時
3 ソフトウェアアップデート 随時
4 moca / moodle のバージョン・アップ 月次
5 moca クラウド環境の監視、負荷状態の確認 日々
6 データのバックアップ 日次
7 年次更新処理 毎年
年間サポート内容
moca サポート内容No 内容 備考1 認証環境の構築 (IdP, SSO 設定) 学認連携など
2 moodle拡張機能の開発 プラグインテーマ設定
3 コース登録代行
4 moodle のシステム移行 & データ移行 (On-Premise → クラウド )
5 学内システムと連携環境の構築
その他サービス (別途見積 )
導入後の期待効果
• バージョンアップ依頼• その他システム変更依頼
教員 TIM SE
依頼を受け作業実施 教員が直接にシステム
管理の必要なし
• 教員は今までと同様に moodle を利用
• 教員がコース登録、教材の作成などに集中できるようになる
• 学内 e-Learning 編集ツールを利用してコース登録も可能
TIM SE
教員
学生
システム構築・移行サービス システムのアップデート クラウド上のホスト管理 稼働状態監視 moca パッケージ作成・デプロイ moca 自体のメンテナンス moca のバージョンアップ
データバックアップサービス Auto-Scaling サービス ヘルス監視サービス
以下のようなことは、以後当社がお引き受けします。
学内情報システム
TIM SE
周辺サービスのメンテナンス
今後のロードマップ
ユーザー管理画面 システムの稼働状況を表示 各種利用レポートを表示 周辺サービスのパラメータ設定
現在
ストレージ利用するためのコンテンツ配信機能 (plugin) 大きなサイズのファイルを Blob Storage にアップロード Blob Storage 上のファイルをアクセスできるようにする
Auto-Deploy機能 ユーザーが独自の moodle コンポーネント、プラグインを自
動でクラウド環境に反映する機能
詳細は…http://www.timedia.co.jp/mocaデモサイトhttp://demomoca.cloudapp.net/