extreme testing of webrtc applications

23
"Extreme" Tes+ng of WebRTC Applica+ons 2015/11/4(Wed) @WebRTC Meetup Japan iwashi86(Yoshimasa Iwase) atakigawa(Akinori Takigawa)

Upload: yoshimasa-iwase

Post on 23-Jan-2018

2.347 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Extreme testing of WebRTC Applications

"Extreme"Tes+ngofWebRTCApplica+ons

2015/11/4(Wed)@WebRTCMeetupJapaniwashi86(YoshimasaIwase)atakigawa(AkinoriTakigawa)

Page 2: Extreme testing of WebRTC Applications

■NameYoshimasa Iwase / @iwashi86

■WorkNTT Communications,DevOps Engineer of SkyWay

■NameAkinori Takigawa / @kenkenkenken8

■WorkCTO of Nefrock Inc.

Page 3: Extreme testing of WebRTC Applications

Copyright©NTTCommunica+onsCorpora+on.Allrightsreserved.3

SkyWay=WebRTCplaUorm(CPaaS)

Page 4: Extreme testing of WebRTC Applications

TL;DR•  Tes+ngWebRTCplaUorm/appissuperhard

WebRTCプラットフォーム/アプリのテストは超大変•  Let’sautomateit!andwedidit!

そこで自動化したく、やってみた!

Page 5: Extreme testing of WebRTC Applications

TL;DR•  Tes+ngWebRTCplaUorm/appissuperhard

WebRTCプラットフォーム/アプリのテストは超大変•  Let’sautomateit!andwedidit!

そこで自動化したく、やってみた!

Page 6: Extreme testing of WebRTC Applications

Whysotough?なぜ大変?

Page 7: Extreme testing of WebRTC Applications

Reason1:Manualopera+on(手動)

Video1 Video2

① ② ③

Page 8: Extreme testing of WebRTC Applications

Reason1+α:Tes+ngsignalingisnotenough

Video1 Video2

  SignalingSucceeded  Videos+llblack

シグナリング単体じゃ不十分

Page 9: Extreme testing of WebRTC Applications

Reason2:Variouscondi+ons(Clients)

+iOS,Android,Na+ve…

条件多すぎ(クライアントだけで)

Page 10: Extreme testing of WebRTC Applications

Reason2+α:Aggressiveupdateofclients

like,gUMonHTTPjustdoesn’twork

アップデート早すぎ(クライアントだけで)

gUMはHTTPで動かなくなったり

6-8weeksupdate!

Page 11: Extreme testing of WebRTC Applications

Reason3:Variouscondi+ons(Network)

NAT-X

①EndpointIndependentFilteringXEndpointIndependentMapping…over80cases(NATタイプだけで発着を考えると80種類超)

条件多すぎ(ネットワークの種類も)

Page 12: Extreme testing of WebRTC Applications

Reason3:Variouscondi+ons(Network)

NAT-X

NAT-Y

UDPblocked!

①EndpointIndependentFilteringXEndpointIndependentMapping…over80cases(NATタイプだけで発着を考えると80種類超)

条件多すぎ(ネットワークの種類も)

Page 13: Extreme testing of WebRTC Applications

Reason3:Variouscondi+ons(Network)

NAT-X

NAT-Y

UDPblocked!

①EndpointIndependentFilteringXEndpointIndependentMapping…over80cases(NATタイプだけで発着を考えると80種類超)

条件多すぎ(ネットワークの種類も)

Justtes+nginthesamemachineisn’tenough

Page 14: Extreme testing of WebRTC Applications

TL;DR•  Tes+ngWebRTCplaUorm/appissuperhard

WebRTCプラットフォーム/アプリのテストは超大変•  Let’sautomateit!andwedidit!

そこで自動化したく、やってみた!

Page 15: Extreme testing of WebRTC Applications

UbuntuwithXvn

ArchitectureOverview

UbuntuwithXvn

NATinstance

NATinstance

Intranet1 Intranet2

WebServer(hoststestapppage)

VirtualInternet

VPCNetworkSegment

TURNserver

Page 16: Extreme testing of WebRTC Applications

Browser1

DataChannelTes+ng

Browser2

Page 17: Extreme testing of WebRTC Applications

MediaChannelTes+ng

Browser1 Browser2

video(gUM)

video(gUM)

Page 18: Extreme testing of WebRTC Applications

BrowserxBrowserxNATtypexNATtype

・Browsers・ChromeStable,ChromeBeta,ChromeUnstable・FirefoxStable(,FirefoxUnstable)

・NATtypes・Theore+cally9types(RFC4787)・sometypesnotconfigurablewithiptables ->wroteitfromscratch

・4*4*9*9=1296uh…

Page 19: Extreme testing of WebRTC Applications

NATtypes

hup://www.netmanias.com/en/?m=view&id=techdocs&no=6065

Page 20: Extreme testing of WebRTC Applications

UbuntuwithXvn

ArchitectureOverview

UbuntuwithXvn

NATinstance

NATinstance

Intranet1 Intranet2

WebServer(hoststestapppage)

VirtualInternet

VPCNetworkSegment

TURNserver

Page 21: Extreme testing of WebRTC Applications

UbuntuwithXvn

ArchitectureOverview(Detailedver.)

Intranet1 Intranet2

WebServer(hoststestapppage)

VirtualInternet

VPCNetworkSegment

UbuntuwithXvn

UbuntuwithXvnUbuntuwithXvnUbuntuwithXvn

16clients

NATType9

NATType8

NATType7

NATType6

NATType5

NATType4

NATType3

NATType2

NATType1

UbuntuwithXvn

UbuntuwithXvn

UbuntuwithXvnUbuntuwithXvnUbuntuwithXvn

16clients

NATType9

NATType8

NATType7

NATType6

NATType5

NATType4

NATType3

NATType2

NATType1

TURNserver

Page 22: Extreme testing of WebRTC Applications

TestresultandPacketvisualiza+onsee->hup://status.skyway.io

Page 23: Extreme testing of WebRTC Applications

Thanks!!