第3回「エンタープライズの現在」JJUG+クラウド研究会 にいってきた(2012-02-24)
CloudBees Platform
川口 耕介氏( CouldBees Inc.)
Hudson→Jenkinsな人
- CloudBees
- 2010/4 創業
- PaaS
- 元JBoss,Sunの人
- 8000+アカウント
- なぜPaaSなの?
- 自分のサーバ管理の問題
- 調達時の時間、コスト
- 負荷があったときの伸縮
- アプリ開発以外の開発環境構築、運用環境構築、運用などなどイロイロ手間がかかる
- 答え
- CloudBeesPlanformでは簡単に
- Run@Cloud
- DEV@Cloud
- Run@Cloud
- IaaSじゃなんでダメなの?
- 簡単になったのかな?
- OSの設定、パッケージのインストールAppServer,MiddleWare構築などなど
- SaaSではだめなの?
- パッケージで提供されているので、カスタマイズで済むならOKだがフィットアプリは作れない
- ECO System
- XAMLなど一発でサービスを追加する
- 適宜組み合わせてつかえる
- メール送信サービス
- スパム対策
- 再送、中継対策
- SaaSに任せるほうがいい
- その他
- Apache Solr
- Java開発者のためのプラットフォーム
Node.js on Windows Azure
さとうなおき氏(MS)
WindowsAzure
-
- usage based
- automated
- managed resource
- always up, always on
- elastic
- economics
-
- Azure=PaaS
- multi language platform
Node.js
- Node.jsとは
- サーバで動くJavascript
- イベント駆動IOのサーバサイドJS
- スレッドベースでなく、各接続が使うヒープはわずか
- 効率的で、スケーラブル
- JSサーバ
- @ryahが2009年に開始
- OSS(MITライセンス)
- Joyentがスポンサー
- 非同期モデル
- シングルスレッドのイベントループ
- Node.jsの適用領域
- 最適:
- リアルタイム通信(ソケット、ポーリング)
- カスタムネットワークサービス(メディアサービス、プロクシ)
- JSONWebサービス(データストア上での軽量なアプリそう)
- クライアント思考WebUI
- 適さないもの:
- フォームを使うWebUI
- 重い処理(シングルスレッドなので)
- 最適:
-
- メリット
- JS
- クリーンで一貫したAPI
- シンプルな同時実行性モデル
- アイドル接続のコストがほぼゼロ
- モジュール化
- メリット
- Node.js on Windows
- IISNode
- プロセス管理
- マルチコアプロセッサでのスケーラビリティ
- Node.jsの自動アップデート
- 他のコンテンツとの並列動作
- Node.jsアプリのコード変更は最小限(あるのか)
- 統合管理(IISのもの)
- Nodeパッケージマネージャ(NPM)
- アプリへのモジュールの追加が簡単に
- コマンドラインで利用
- Node.js on WindowsAzure
-
- Webロール
- IISNodeを利用(WebSocketは現在未対応。IIS8 on WindowsServer8 で利用可能)
- ワーカーロール
- RoleEntryPointとしてnode.exeを実行
- PowerShellコマンドレット
- WindowsAzureSDK for Node.js
- Webロール
- Visual Stadioは不要
- Visual Studioなしで、アプリの作成、実行、発行が可能
- コマンドラインと、このみのテキストエディタ/IDEなどを利用
- Cloud9IDE
- ブラウザ内で動くエディタ・実行環境付き
- herokuなどへのデプロイができる
- MSとパートナーシップを結び、Azureへのデプロイも可能となった
エンタープライズ・クラウドと 並列・分散・非同期処理
丸山先生
資料
http://dl.dropbox.com/u/19096475/20120224Data.pdf
要旨
- キャリアの相次ぐ不具合にもあるように、スマホの普及によりネットのトラフィック量が爆発的に増加し帯域を大きく消費している。そのためキャリアは数千億の投資をおこなって回線の増強を図っている。
- 爆発的に全世界に普及した携帯がスマホに置き換わったとき、次に起きるのはサーバリソース不足
- 解決策としてはサーバのスケールアウト(水平展開)がとられているが、スケールアップも考えられる
- CPUコアの増加により、サーバの能力アップがはかれる。PCやスマホはほぼデュアルコア化したし、100コアのCPUの発売も予告されている
- マルチコアの恩恵を受けるには、並列・分散処理がかかせない。
- アイデアのひとつがParallelArray。
- Javaでは対応(JSR166)が遅れている。ForkjoinがJavaSE7で導入されたが、ProjectLambdaはJavaSE8で検討がすすめられている。
- 一方.NETでは導入が進んでいる。IntelOpenCLは並列プログラミングのフレームワークである。
- 非同期処理も対策のひとつ。
- StatelessServerは、WebServerやAppServerでSessionを管理せずDBで管理するやり方。RESTFul APIやPlay2.0はこの戦略。
- HTTPは、ヘッダが大きくデータ転送時のオーバーヘッドが大きい。ドキュメント全体を転送するために開発されたが、Ajaxなどにより、構成文書の一部(DOMなど)を送信するのに使われている。またPolling/LongPollingは帯域の消費や、レイテンシ低下の要因のひとつである。
- WebSocketはHTML5の規格でひとつであるが、最初のハンドシェークのみ通常のHTTPを用い、以降はヘッダを省略する。
- Googleの提唱するSPDYは、HTTPを再定義しようというもの
- 言語では、JavaではFuture(JavaSE5.0から)、.NETではAsync、Scala/AkkaではFuture、Promise、またJMS2.0で対応が行われている。