Agenda Tango Intro Architectural Overview / Unique Technical Challenges High Level Test Automation System Mobile Device Automation / Lessons Learned Visualizations Notable Escapes Future areas of Exploration Q & A TangoMe, Inc. Proprietary and Confidential
About Tango 3 Founded in 2009 and headquartered in Mountain View Tango has over 200 employees Tango is a messaging and entertainment platform We combine chat, video calling, games, social discovery, and other entertaining content 250M+ people use Tango to keep in touch with friends and family Tango has raised $370M to date with the most recent Series D funding D of $280M led by Alibaba TangoMe, Inc. Proprietary and Confidential
Mobile Strategy 4 1. Grow by offering free communications Calls Video calls Communication Messaging 2. Engage through social interactions Communications Picture posting Social Social networking (games, discovery) Content 3. Monetize through content distribution Games / Music / other Advertisement E-commerce TangoMe, Inc. Proprietary and Confidential
282 Countries >250M Registered users 73M MAU 2,000 Servers in a dozen locations TangoMe, Inc. Proprietary and Confidential
Scale & Scope 110K unique device 110K unique device types, types hundreds of Tango versions Hundreds of Tango versions TangoMe, Inc. Proprietary and Confidential
Scale & Scope 1.6M events per second reported by clients More?? More? Moar??? 1+Petabytes of data served 2+B requests/day TangoMe, Inc. Proprietary and Confidential
What’s Unique to Tango? 8 TangoMe, Inc. Proprietary and Confidential
Mobile First 9 We are not a port from a PC program No shoehorning to mobile No legacy code or designs to deal with Our DNA is mobile/embedded We push the envelope on available tech & tools We think mobile, i.e. limited resources: Connectivity/network Battery life CPU Storage TangoMe, Inc. Proprietary and Confidential
Cross Platform Architecture Platform Specific X-P API SWIG Protobuf messaging Social Invite Asset Services Tango Services Services Services Background Asset Authentication Contact Filtering Configuration (A/B) up/down load Manager Core cross platform library Discovery Channel Messaging Capabilities Call establishment (SWIFT) Auth Services Services HTTP Utilities Technologies Media Logging Strings Facebook Lua Audio/Video (codecs, echo cancellation) Café MOAI Thread pool Database Aviary openssl QoS Adaptation (fec, bitrate, framerate, resolution) (sqlite) Phone Wakeup Spotify VoIP Socket Network Formatter Manager Auth HTTP Smart HTTP OpenGL HTTP Contact Native Call Portable Local P2P/NAT Connectivity Manager Log Mgr Runtime Storage Platform Specific Driver API AddressBook Call Log OS Connectivity A/V Playback/Capture TangoMe, Inc. Proprietary and Confidential
Cross Platform Architecture 11 Our clients share the bulk of the code Lots of code reuse ( dev. efficiency) Easy to port to new platforms Feature parity Enables automated testing But… Complex build Tricky cross language boundary crossing code TangoMe, Inc. Proprietary and Confidential
Smart Client 12 Realizations There will always be more clients than servers We will scale better if clients can “pull their own weight” Need good UX even if servers aren’t reachable Build Sophisticated Client Offload as much as possible from servers Cache heavily for UX We are not just an HTML app (people tried & failed) Create custom protocols Downside: Complexity (versioning, c2c, c2s) TangoMe, Inc. Proprietary and Confidential
Tango View of Test Automation 13 It doesn't matter [if a] cat [is] black [or] white, [as long as it] can catch mice, it's a good cat TangoMe, Inc. Proprietary and Confidential
Tango Test Automation System 14 Test Analytics Test Analytics Web Service UI Dashboard Tango Android/iOS UI UIAutomation Test Cross Platform Cross Platform FeatureTest Analytics Unit Tests Client DB Deployed Server Unit Tests Server ServerAPI Test Environment TangoMe, Inc. Proprietary and Confidential
UI Mobile UI Automation Cross Platform Client Server 15 193 188 12 monitors 0 0 TangoMe, Inc. Proprietary and Confidential
UI The Tango UI is a-Changin ’ Cross Platform Client Server 16 TangoMe, Inc. Proprietary and Confidential
UI Using E2E UI Tests as Monitors Cross Platform Client Server 17 TangoMe, Inc. Proprietary and Confidential
UI Feature Tests Cross Platform Client Server 18 Hermetic (Sandboxed) so can write/run on a plane Exercises common client layer + server layer together Can be adapted to be used as production monitors Adding support for TangoMe, Inc. Proprietary and Confidential
UI Server Dependencies Cross Platform Client Server 19 What dependencies do our back end server components have on each other? TangoMe, Inc. Proprietary and Confidential
UI Dependency Visualization Take 1 Cross Platform Client Server 20 Big Ball of Mud? TangoMe, Inc. Proprietary and Confidential
UI Dependency Visualization Take 2 Cross Platform Client Server 21 Big Ball of Mud Mushroom? TangoMe, Inc. Proprietary and Confidential
UI Dependency Visualization Take 3 Cross Platform Client Server 22 TangoMe, Inc. Proprietary and Confidential
UI Dependency Visualization Take 3 Cross Platform Client Server 23 TangoMe, Inc. Proprietary and Confidential
Reliability / Performance 24 Performance/Reliability Jmeter / Locust.io Failure testing Mosh (netem) Exploratory Testing for clients (*hit digging) TangoMe, Inc. Proprietary and Confidential
Notable Escapes 25 Verizon Voicemail DoS-ing ourselves TangoMe, Inc. Proprietary and Confidential
Future Areas of Exploration 26 Reliability testing for ‘real world’ client to server craziness Clients pointing to servers that have simulated latency /failures Simulated clients that behave like real world TangoMe, Inc. Proprietary and Confidential
We are Hiring! 27 TangoMe, Inc. Proprietary and Confidential
Recommend
More recommend