Upload
atsushi-suzuki
View
432
Download
3
Embed Size (px)
Citation preview
Surface などモバイル端末から接続可能なAzure 仮想ネットワーク上でのIncrediBuild 高速並列ビルド
Vol. 1
株式会社ゾレアックスジャパン鈴木 篤志 <[email protected]>
IncrediBuild のはたらき①
2
• IncrediBuild がインストールされたあるノード上のビルド環境にて IncrediBuild 分散ビルドを実行する。
• ビルド環境上の IncrediBuild エージェントは接続しているコーディネーターに問い合わせ,利用可能なエージェントを得る。
• 接続先のコーディネーターは各ノード上のエージェント設定で設定可能。
開発者 PC
3
• コーディネーターは,自身にインストールされている IncrediBuilid のライセンス数にしたがってビルドプロセスを各ヘルパーノードに分散させる。
• ヘルパーノードは,各ノードの CPU 利用率や通信性能の状況により自動的に選択される。• 各ヘルパー上にはビルド起動ノードのファイルシステムがミラーされ,ローカルと違いなく動作する。
IncrediBuild のはたらき②
開発者 PC
4
• リモートヘルパーに分散されたプロセスが生成したファイルは,ビルド起動ノードに送り返される。• 並列的に生成されたオブジェクトを,ビルド起動ノードにてローカルでリンクし,ビルド処理は完結す
る。
IncrediBuild のはたらき③
開発者 PC
IncrediBuild の効果①
5
• Visual Studio 等から起動される一連のビルドプロセスを、ファイル間の依存関係に従って並列処理可能なものについてリモートの PC を用いて並列分散処理を行う。
• リモートの PC は LAN 上に既存のものが利用可能で、その上に IncrediBuild ヘルパー仮想マシンを設立し、ビルドマシンのファイルシステムをミラーしてプロセスを実行させる。
• リモートの PC には IncrediBuild 以外に何もインストールする必要はありません。
IncrediBuild の効果②
6
• リモートのヘルパーを用いずローカルの複数コアのみで IncrediBuild ビルドを行った例• I/O バスを非同期的に用いるため利用度が高くなりトータルの性能向上が可能。
各コアが非同期で個々のソースコードをコンパイルす
る
コアごとの動作を視覚的に確認でき
る
I/O バスなどのシステムリソース利用
が集中しにくくなる
LAN 環境でのIncrediBuild 分散ビルド
ヘルパー
ビルド・イニシエータ(開発者 Aの PC) コーディネータ
ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
LAN
開発者 B 開発者 C
8
LAN 環境に展開したIncrediBuild によるビルド時間
0
30
60
9090
4024
ビルド時間 [ 秒 ]
ビルド時間 [ 秒 ]
開発者 PC:HP Envy Corei7 機論理 8 コア
ヘルパー :Xeon 機 3 台
論理 16 コア 2 機論理 12 コア 1 機
9
据置 PC サーバサーバ 社内 PC 社内サーバ開発者 PC
Azure 仮想ネットワーク
VPN 空間
モバイル サブネット
Azure 仮想ネットワークのPoint to Site 接続が便利
VPN
LAN
VMVMVM
ゲートウェイ
VPN 接続した PC と VM からなる仮想 LAN を構築
11
ヘルパー ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
開発者 B
Azure 仮想ネットワーク
VPN 空間
開発者 Aの端末
サブネット
Azure 仮想ネットワーク上でのIncrediBuild 利用をテスト
VPN
LAN
コーディネータ
社内のヘルパーをモバイルから利用
12
モバイル機から VPN 接続した時の IncrediBuild によるビルド時間
0
150
300
450
188
476
216
ビルド時間 [ 秒 ]
ビルド時間 [ 秒 ]
開発者 PC:2 コア仮想マシンメモリ 2GB
ヘルパー :Xeon 機 3 台
論理 16 コア 2 機論理 12 コア 1 機
2 コアではむしろ
効率が低下
VPN 接続越しでは
性能が低い
13
ヘルパー
開発者 Aの端末
ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
LAN
開発者 B
RDC
サブネット
Azure 仮想ネットワーク
VPN 空間
32コアヘルパー
Azure 仮想ネットワーク上に展開した開発環境での IncrediBuild
VPN VPN VPNVPN VPNVPN
コーディネータ
2コア開発機
VPN
14
ヘルパー
開発者 Aの端末
ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
LAN
開発者 B
RDC
サブネット
Azure 仮想ネットワーク
VPN 空間 コア数に比例して高額に
コストを考慮して性能を自由に選択
VPN VPN VPNVPNVPNVPN
コーディネータ
端末の負荷軽減情報漏洩リスク低減
32コアヘルパー
2コア開発機
Azure 仮想ネットワーク上に展開した開発環境での IncrediBuild
15
020406080 68
80
3950
15
ビルド時間 [ 秒 ]
32 コアヘルパーが威力を発揮
メニーコア機単体性能を
引き出すにもIncrediBuild
が有効!
Azure 仮想ネットワーク上に展開した開発環境での IncrediBuild ビルド時間
16
ヘルパー
開発者 Aの端末
ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
LAN
開発者 B
サブネット
Azure 仮想ネットワーク
VPN 空間
32コアヘルパー
となれば… VPN 接続したモバイル機で32 コアヘルパーを利用したなら?
VPN VPN VPNVPN VPNVPN
コーディネータ
VPN
17
ヘルパー ヘルパー ヘルパーヘルパー ヘルパー ヘルパー
開発者 Aデスクトップ
Azure 仮想ネットワーク
VPN 空間
開発者 Aの端末
サブネット
必要に応じて起
動
Surface3+Azure での高速ビルド環境推奨例
VPN
LAN
コーディネータ
32コアヘルパー
2〜コア開発機
RDC
Surface3 などAzure VPN
接続が可能なWindows 機
あるいは…社内環境の
コンソールをそのまま利用
RDC
19
• 組織内 LAN で運用している IncrediBuild コーディネーターから、 VPN Point-to-Site 接続で接続するだけで、 Azure 仮想ネットワーク上にて IncrediBuild が利用可能になります。•コーディネーターからはライセンスの供給だけがされますので、 VPN接続を越えることによる性能上のオーバーヘッドはほとんどありません。•LAN 上の開発機は LAN 上のヘルパーだけを利用できます。•Azure 仮想ネットワーク上 (VPN 接続含む ) の開発機は同じくその上のヘルパーだけを利用できます。
• コーディネーターから IncrediBuild ライセンスの供給を受けるだけでも、 8 コア以上持つ開発機でのビルド性能は向上します。•Site-to-site で組織単位で接続することも可能で、複数のサテライトオフィスでライセンスを共有し、組織内の LAN 上のヘルパーを用いて分散ビルドを行うことができます。
20
まとめ – IncrediBuild を Azure に拡張するメリット
• Azure VM を開発機として用いれば、予算の範囲内で希望の性能を持った開発環境を利用できます。•32 コア VM を必要時に起動し IncrediBuild ヘルパーを動かすことで、必要な時だけビルド性能を向上させることができます。•Surface からは通常、 VPN 接続をして RDC を動かすだけとなるので、Surface3 Pro よりも電池駆動時間の長い Surface3 が優位となります。
• Surface スタンドアロンで Visual Studio を動かす場合は…•VPN 接続で IncrediBuild を利用してもビルド性能は向上しません。•組織内で LAN に接続している時はビルド性能向上が得られます。
21
まとめ – Surface3 などモバイル機での効率的開発