- emobile の設定しわすれてネットつながらない・・・・
##仮想化環境の設計手法~プロのテクニック教えます~
- 仮想化で問われるのはセンス
- プロのテクニックとは
- 知ってるか知らないか
###設計のポイント
- 既存環境の移行が一番多い
- ちゃんと設計をするとコストは下がる
- 押し上げる要因は過大な見積り
- Hardwareの見積りをしっかりすれば,コストは下がる.
- コストの適正化
- 性能が足りなくなったら,スケールアウトする
- コスト削減のメリット・デメリットを「見える化」する
- システム寿命を2年増やす => 仮想化する・しないの場合での見積り
###設計フェーズ
- 論理的な機能(サーバ)を整理する
- 物理マシンじゃなくて,論理機能として抽象化して整理する
- いま2GHz/8GBだからといって,そのまま落としこまない
- 仮想化の設計をする
- まだ物理マシンは出てこない
- コンピュータリソースは無制限だと考える
- 注意点
- リソースプールは最低3台で構成するのが望ましい
- どのHardwareで動くかは考えない.考えてはいけない.
- 障害発生時はリソースプール内で相互にカバーする
- なのでStand-byサーバはない
###設計手順詳細
- サーバのリストアップ
- 重要度と負荷率で,ABCランクをつける
- マシングループ毎に仕分け
- マシン間の関連を書いておく
- グループ毎の要求リソースを算出
- I/O, Network が算出しづらいので,現行サーバのを調べておく
- CPU/メモリは搭載量 x 60% と考える
###ハードウェアの選定
- 1台あたり16GB積むのを指標とする
- 場合によっては32GB/64GBもありうる
- 高速なI/Oが必須
- CPU使用率
- CPU使用率30%の物理マシンを仮想マシンに
- CPU60%ルールなら,VM2台 とか
###ブレード or ラックマウント?
- 最低3台
- 4台以上なら,ブレード?
- 今後の増強計画を考えると,ラックマウントよりもブレードで用意しておいたほうがいい
- ブレードの弱点も克服されつつある
- HDDがなくなり,SSD/USB/Sun Bootになり,空き容量にメモリを搭載できるようになるようだ
###CPUの仮想化
- 1VM CPU を 1物理 CPU に割り付ける
- VM が idle でも Host はそれがわからないので,割り当ててしまう
###ネットワーク構成
- 4系統あるほうがいい
- 通常
- 管理用
- ストレージ用
- ライブマイグレーション用
- ブレードのパーツは ebay で買えば安い
- 販売代行しているらしい
###ストレージの選定
- OpenSolaris で ZFS が最近のトレンドらしい
- お手軽らしい
- 仮想化はネットワーク前提で考える
- 無停止で容量追加
- Linux ならできるが,何に追加するのか(DBに追加など)を考える
- ストレージ側のスナップショット
- バックアップに有効だが,費用対効果の見極めが肝心
- レプリケーション
- DRBD
- 小さいファイルなら rsync など
###ベンチマークなど
- キャッシュが効いている
- 検索主体のDB(MySQLのSlaveなど)であれば,性能劣化は少ない
- クックパッドはそういう構成だった気がする
- NFSサーバが刺さると怖い
- 負荷テストはしっかりやるべき
- OSの信頼性も重要ではないかな
##昼休憩
- 新宿駅側のルノアールでノートPCの昼ご飯
##Web技術の現状と将来
- SFCの人
###W3Cの紹介
- Im Berners-Lee により創設(Web = hypertest + internet を考え出した人)
- W3C が Web の標準仕様を策定している
- 啓蒙活動と将来についての提案もしているようだ
- 3つのホスト組織が運営
- MIT
- ERCIM
- 慶應義塾大学
- 日本の意向の取り入れや、アジア言語の取り扱いなど
- それ以外に W3C オフィスがある
- 主にプロモーション活動
- 標準化のプロセス
- Working Draft -> Last Call -> Candidate -> Proposed -> Recommendation(勧告)
- 「多くの人がどうこう言うより、一人の天才に決めてもらおう」という思想
- Validator を提供
###W3Cからのお願い
- 第2の「新しいWeb時代」が来る
###W3Cでの最新の活動紹介
- Video関係
- Video in the Web の活動
- Video の中に識別子を埋め込んで、それを URI で指定できるような
- JLTF
- 日本語レイアウトをブラウザでみられるようにしよう
- 日本語の半組を英語で定義する
- ルビをどう表示するかなど
- SVG
- 地図などをベクターフォーマットで表示するなど
- MMI
- Multi Modal Interface
- 機器のデータをどう書き,どう表示するか
- HTMLの標準化
- HTML 5.0 は XHTML 1.0 の後継ではない
- Flash などに対抗しうる Web 標準機能の提供
- これができればいいが
###HTML5 について
- <canvas> のデモ
- HTML+CSS+JavaScript のみ
- 2D/3D処理が可能
- わりとスムーズに動作する
- 標準機能だけで Video の再生・コントロールなどが可能になる
- native で drag & drop に対応する
- JavaScript との連携が必要になるが,native 対応しているのはいいんじゃないかな
- <input type=“date” /> がある
- 日付選択の <input />
- Shibuya.JS++
##進化し続けるオープンソースアプリケーションサーバ : GlassFish ###GlassFish とは
- アプリケーションサーバ
- JavaEE 5 完全準拠
- Web 2.0 対応
- Comet/Web サービス
- 性能が十分であるということらしい
- Comet/Web サービス
###有償ユーザの付加価値
- パフォーマンス監視ツール
- Heap Dump をリアルタイムで取得して,解析できる
- 通常のモニター機能もある
- パフォーマンスアドバイザー
- 管理画面に追加される機能
- メモリ使用量やメモリリーク,CPU 使用率や GC 停止時間に関して,警告を出すことができる
- 監視ツールの詳細設定版のような感じ
- SNMP での監視機能
###開発環境と実行環境
- NetBeans/Eclipse などに統合して開発可能
- 実行は Linux/Windows/Solaris など
###GlassFish ポートフォリオ
- Web Stack
- LAMP/SAMP スタック
- PHP/Ruby/…/MySQL/…/memcached/etc.
###GlassFish ESB
- SOA の実行基盤
- OpenESB + GlassFish
- OpenESB
- Sun のオープンソースの JBI(JSR-208) 実装
- Java CAPS との違い
- 各種サービス・コンポーネント・システムとの連携アダプタがあるかどうか
- JBI とは
- SOAP に基づく Web サービスの使用をビジネス統合できるように改善
- XMl で Web サービスを定義
- Web サービスにおける非同期処理に対応
- メッセージ交換で祖結合を実現
- WSDL でメッセージ交換の操作を実現
- NetBeans で統合開発
- Web サービスの Mashup のような感じで,コネクターを通じて各種サービスに接続し,連携することができる
###JavaEE 6
- Right sizing
- 拡張性
- ライブラリやフレームワークを有効活用する方向で
- プロファイル
- Java EE のサブセットを提供
- 仕様の削減
- 古い・使われない仕様の削減
- かんたん開発
- すべての Web API をアノテーションで使用
###GlassFish v3
- JRuby などのスクリプト言語のサポート
- GlassFish v3 prelude
- Ruby on Rails のネイティブサポート
- ここが気になるところ
- 計量・高速起動
##MySQLをパワーアップ!MySQLサポートツールズを使ってみよう ###アジェンダ
- MySQLをとりまくエコシステム
- Memcached/DRBD
- MySQL Enterprise Monitor
- MySQL Workbench
- MySQL Proxy
- Connector/C++
###MySQL 紹介
- MySQL 5.1 GA 登場
- パーティショニング
###MySQL を取り巻くツール
- memcached
- キャッシュを全体で共用することができる
- DRBD
- ネットワーク越しのミラーリング
- Heartbeat で Failover 構成がとれる
- MySQL Enterprise Monitor
- 問題のあるクエリの発見,そしてチューニングができる
- 「起こる前に」問題を特定できる
- Gold 以上で Query Analyzer が使える
- クエリチューニングの難しいところ
- ユーザやアプリの動作の把握が難しい
- サーバはパフォーマンスを収集するようにはできていない
- Slow Query Log ではわかりにくい
- 調査しづらい
- SHOW PROCESSLIST/EXPALIN ではどうなっているのか,どうすればいいのかがわかりにくい.
- SHOW PROFILES
- 5.1 からデフォルトで有効になっている
- クエリーの詳細な情報を表示できる
- MySQL クエリアナライザー
- MySQL Proxy 上で動作する
- パフォーマンスの劣化は 15%-20% 程度
- MySQL Workbench
- Linux/Mac OSX で alpha がでてる
- SQL IDE も統合予定
- MySQL Proxy
- 更新・参照のサーバ振り分けとかできる
- 最新版は launchpad で公開中
- Connector/C++
- CMake で
- Windows とソースコードを一本化する都合で導入されたもの
- build するときの Make ファイルを,C コンパイラに応じて作成する
- configure のようなもの?
- Windows なら Visual Studio のプロジェクトファイルを作成できるそうだ
##まとめなど
- MySQL Proxy は使いどころありそうなので,検証してみる
- 仮想化を本格的に導入してないといけないな