37
大大大 大大大大大大大大大大大大大 E-LEARNING 大大大大大大 Cloud Native moodle 大大大大大大大 – moca 大大大

Moot2013 moca ver0.3

  • Upload
    -

  • View
    509

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Moot2013 moca ver0.3

大規模、高可用性パブリッククラウド E-LEARNING システムの実現

Cloud Native moodle ソリューション – moca の紹介

Page 2: Moot2013 moca ver0.3

セッションの内容と目的 セッションの内容• moca を支える Windows Azure のテクノロジー• moca の紹介

セッションの目的• オンプレミスでは実現できないクラウドの利便性を知って頂き、

BCP(事業継続計画) / DR (災害復旧)対策の一つとしてより多くの方に認識して頂く

Page 3: Moot2013 moca ver0.3

Agenda クラウドで実現するサービスの要件 Windows Azure の概要 moodle をクラウド化するための技術と課題 moodle クラウドソリューション moca の紹介• moca とは• moca のコアアーキテクチャ• moca の周辺サービス• moca のサポート内容• moca のコスト• 導入後の期待効果

今後のロードマップ

Page 4: Moot2013 moca ver0.3

クラウドで実現する   サービスの要件

Page 5: Moot2013 moca ver0.3

クラウドサービスの主な特徴

オンデマンドセルフサービス(On-Demand   Self Service)

幅広いネットワークアクセス (Broad network access)

リソースの共有(Resource pooling)

スピーディーな拡張性(Rapid elasticity)

Page 6: Moot2013 moca ver0.3

6

お客様の要望に基づいたmoca

1. moodle システムを管理する教員の負担を解放し、 本来の教育に集中させたい

2. 学内サーバーの導入運用管理コストを削減したい

3. moodle を 24 時間 365 日稼動させたい。

4. On-Premise と同様、若しくはそれ以上の パフォーマンスを期待していきたい

Page 7: Moot2013 moca ver0.3

Windows Azure 概要

Page 8: Moot2013 moca ver0.3

Windows Azure のサービス

3つのコンピュティング選択肢

Page 9: Moot2013 moca ver0.3

Azure のコンピューティング

ハードウェア

仮想化

サーバー OS

ネットワーク

ファイアウォール

データ

アプリケーション

オンプレミス

ハードウェア

仮想化

サーバー OS

仮想ネットワーク

ファイアウォール

データ

アプリケーション

仮想マシン

ハードウェア

仮想化

サーバー OS

仮想ネットワーク

ファイアウォール

データ

アプリケーション

クラウドサービス

ハードウェア

仮想化

サーバー OS

仮想ネットワーク

ファイアウォール

データ

アプリケーション

Web サイト

Page 10: Moot2013 moca ver0.3

クラウドサービスの特徴• スケーラブルな Windows

Server ベースのアプリケーションホスティング環境 (PaaS)Hyper-V 仮想マシン (VM) ベースWeb ロール、 Worker ロール、 VM ロール使用したい VM の数 ( = インスタンス数 )

を指定するだけでデータセンター側で自動的に VM を展開・実行

.Net, PHP, Java, Python 多種言語対応

• SLA :月間稼働率 = 99.95%

バックグラウンドサービスサーバー

ストレージ サービス

Block BlobPage Blob

Web サーバー( IIS )

Page 11: Moot2013 moca ver0.3

  moca を支える技術と課題Cloud Native moodle ソリューション

Page 12: Moot2013 moca ver0.3

moodle をクラウド化するための技術と課題1. スケーブル、柔軟な Web インフラ環境の設定• 複数バージョン moodle サイト同時稼働及びマルチテナント

型運用の moodle サイト構築• 分散環境で moodle セッションの管理• クラウド課金を最低限収まるための自動スケーリング

2. moodle データ クラウド化の壁• ファイルデータの共有• SQL データベースの適用

3. moodle クラウド環境のソフトウェア自動更新4. バックアップ & リストア5. 監視 & 障害回復

Page 13: Moot2013 moca ver0.3

スケーラブル、柔軟な Web 環境構築                ( 開発環境 )

Windows Azure は PHP がサポートされている ( 以下のツールを利用 )

SDK for PHP Azure-PowerShell

ビルドイン PHP バージョンが選択できる

手動で自ら PHP Runtime の設定も可能

Moodle 稼働用の各種ライブラリを自由に設定可能

必要な PHP ライブラリと php.ini の設定

追加ができる

Page 14: Moot2013 moca ver0.3

スケーラブル、柔軟な 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 各学部共有

Page 15: Moot2013 moca ver0.3

スケーラブル、柔軟な 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

Page 16: Moot2013 moca ver0.3

スケーラブル、柔軟な 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

制約要件を定

ルール指定

運用

分析結果を収

需要の変化に自動的に対応したい アプリケーションの実行に伴うコストを管理

したい追加のリソースを必要とする場合には、予測

可能な時間を持つ

自動スケーリング仕組み

Page 17: Moot2013 moca ver0.3

分散環境でのセッション管理

分散環境では moodle の Web サーバーインスタンスは複数あるため、セッションを共有なデータストアで保存する必要がある

Windows Azure SDK for PHP が Session Handle を提供して Windows Azure Table Storage にセッション情報を保存する方法をおすすめです。

moodle/config.php にコー

ドを追加

Session Data

テーブル ストレージ

Page 18: Moot2013 moca ver0.3

moodle データ クラウド化の壁

moodledata移行要求

moodledata をどこに保存するか?

1. Moodle 既存ソースの変更を最低限に

2. ファイル / フォルダ管理可能

3. 分散環境でデータ共有可能

ファイルストレージ• ファイル = ブロブ• フォルダ = コンテナ※コンテナは1階層のフォルダしか作れない!

画像 / 動画など最適 種類:

• ブロック ブロブ (4MB 分割 )• ページ ブロブ (512 バイトの

ページに分割 ) スナップショット、 CDN をサポー

Moodle ロール

NTFSボリューム

Page 19: Moot2013 moca ver0.3

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 ロールにてマウンド

Page 20: Moot2013 moca ver0.3

moodle データ クラウド化の壁

Windows Azure では RDB なら SQL データベース

moodle は SQL Server をサポートしている• わずかの修正で SQL データベースが利用できるようになる

物理マシン上に常に3重化されている

Page 21: Moot2013 moca ver0.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

Page 22: Moot2013 moca ver0.3

クラウド環境のソフトウェア更新の仕組みmoodle のバージョン・アップ

Production Staging

マイナー更新: 1ヶ月

メジャー更新: 6ヶ月

運用都合より moodleバージョンを選考して更新を行う

Page 23: Moot2013 moca ver0.3

バックアップ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

Page 24: Moot2013 moca ver0.3

診断監視 & 障害回復データ・ソース 既定の構成 構成方法 ストレージ

トレース ログ 有効 診断 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. 緊急事態の場合、リモートデスクトップにて回復作業など行うことができる

Page 25: Moot2013 moca ver0.3

moca 紹介

Page 26: Moot2013 moca ver0.3

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

Page 27: Moot2013 moca ver0.3

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

Page 28: Moot2013 moca ver0.3

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

Page 29: Moot2013 moca ver0.3

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

Page 30: Moot2013 moca ver0.3

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古い世代を自動削除

Page 31: Moot2013 moca ver0.3

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 診断ログの監視

Page 32: Moot2013 moca ver0.3

moca サポート内容No 内容 備考

1 Windows Azure / moca の技術サポート 電話、メール対応

2 障害が発生した時の回復作業 随時

3 運用クラウド環境の最適化 随時

3 ソフトウェアアップデート 随時

4 moca / moodle のバージョン・アップ 月次

5 moca クラウド環境の監視、負荷状態の確認 日々

6 データのバックアップ 日次

7 年次更新処理 毎年

年間サポート内容

Page 33: Moot2013 moca ver0.3

moca サポート内容No 内容 備考1 認証環境の構築 (IdP, SSO 設定) 学認連携など

2 moodle拡張機能の開発 プラグインテーマ設定

3 コース登録代行

4 moodle のシステム移行 & データ移行 (On-Premise → クラウド )

5 学内システムと連携環境の構築

その他サービス  (別途見積 )

Page 34: Moot2013 moca ver0.3

導入後の期待効果

• バージョンアップ依頼• その他システム変更依頼

教員 TIM SE

依頼を受け作業実施 教員が直接にシステム

管理の必要なし

• 教員は今までと同様に moodle を利用

• 教員がコース登録、教材の作成などに集中できるようになる

• 学内 e-Learning 編集ツールを利用してコース登録も可能

TIM SE

教員

学生

システム構築・移行サービス システムのアップデート クラウド上のホスト管理 稼働状態監視 moca パッケージ作成・デプロイ moca 自体のメンテナンス moca のバージョンアップ

データバックアップサービス Auto-Scaling サービス ヘルス監視サービス

以下のようなことは、以後当社がお引き受けします。

学内情報システム

TIM SE

周辺サービスのメンテナンス

Page 35: Moot2013 moca ver0.3

今後のロードマップ

ユーザー管理画面 システムの稼働状況を表示 各種利用レポートを表示 周辺サービスのパラメータ設定

現在

ストレージ利用するためのコンテンツ配信機能 (plugin) 大きなサイズのファイルを Blob Storage にアップロード Blob Storage 上のファイルをアクセスできるようにする

Auto-Deploy機能 ユーザーが独自の moodle コンポーネント、プラグインを自

動でクラウド環境に反映する機能

Page 36: Moot2013 moca ver0.3

詳細は…http://www.timedia.co.jp/mocaデモサイトhttp://demomoca.cloudapp.net/

Page 37: Moot2013 moca ver0.3