surface3 などから利用する azure 仮想ネットワーク上での incredibuild...

22
Surface ななななななななななななななな Azure ななななななななななな IncrediBuild ななななななな Vol. 1 なななななななななななななな なな なな <[email protected]>

Upload: atsushi-suzuki

Post on 06-Aug-2015

430 views

Category:

Engineering


3 download

TRANSCRIPT

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 バスなどのシステムリソース利用

が集中しにくくなる

IncrediBuild の効果③

7

• 合計 100 コアのヘルパーを用いて分散させた例• 100 以上のヘルパー、数百コアを用いることでビルド時間を 30 分の 1 にも短縮可能。

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

10

開発者 PC として Surface3などモバイル機を用いる場合…

据置 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

0100200300400

188 216

347 ビルド時間 [ 秒 ]

VPN 接続したモバイル機で32 コアヘルパーを利用したビルド時間

やはりVPN 越しで

は性能が低い

18

ヘルパー ヘルパー ヘルパーヘルパー ヘルパー ヘルパー

開発者 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 などモバイル機での効率的開発

22

Xoreax Japan Inc.

お問い合わせ:ゾレアックスジャパン 営業部電話: 03-6436-2789

メール: [email protected]