OSC 2009 Tokyo/Sprint 1st Day

  • 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 で買えば安い
    • 販売代行しているらしい
ストレージの選定
  • OpenSolarisZFS が最近のトレンドらしい
    • お手軽らしい
  • 仮想化はネットワーク前提で考える
  • 無停止で容量追加
    • Linux ならできるが,何に追加するのか(DBに追加など)を考える
  • ストレージ側のスナップショット
    • バックアップに有効だが,費用対効果の見極めが肝心
  • レプリケーション
    • DRBD
    • 小さいファイルなら rsync など
ベンチマークなど
  • キャッシュが効いている
  • 検索主体のDB(MySQLのSlaveなど)であれば,性能劣化は少ない
  • NFSサーバが刺さると怖い
    • 負荷テストはしっかりやるべき
    • OSの信頼性も重要ではないかな

昼休憩

Web技術の現状と将来

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 とは
有償ユーザの付加価値
  • パフォーマンス監視ツール
    • Heap Dump をリアルタイムで取得して,解析できる
    • 通常のモニター機能もある
  • パフォーマンスアドバイザー
    • 管理画面に追加される機能
    • メモリ使用量やメモリリーク,CPU 使用率や GC 停止時間に関して,警告を出すことができる
      • 監視ツールの詳細設定版のような感じ
  • SNMP での監視機能
開発環境と実行環境
GlassFish ポートフォリオ
GlassFish ESB
  • SOA の実行基
  • OpenESB + GlassFish
  • Java CAPS との違い
  • JBI とは
    • SOAP に基づく Web サービスの使用をビジネス統合できるように改善
      • XMl で Web サービスを定義
      • Web サービスにおける非同期処理に対応
  • メッセージ交換で祖結合を実現
    • WSDL でメッセージ交換の操作を実現
  • NetBeans で統合開発
  • Web サービスの Mashup のような感じで,コネクターを通じて各種サービスに接続し,連携することができる
JavaEE 6
  • Right sizing
  • 仕様の削減
    • 古い・使われない仕様の削減
  • かんたん開発
GlassFish v3

MySQLをパワーアップ!MySQLサポートツールズを使ってみよう

アジェンダ
MySQL 紹介
  • MySQL 5.1 GA 登場
    • パーティショニング
MySQL を取り巻くツール
  • memcached
    • キャッシュを全体で共用することができる
  • DRBD
  • 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++

まとめなど

  • MySQL Proxy は使いどころありそうなので,検証してみる
  • 仮想化を本格的に導入してないといけないな