Agenda Tango Intro Architectural Overview / Unique Technical - - PowerPoint PPT Presentation
Agenda Tango Intro Architectural Overview / Unique Technical - - PowerPoint PPT Presentation
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
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
- 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
3
About Tango
TangoMe, Inc. Proprietary and Confidential
- 2. Engage through
social interactions
- Communications
- Picture posting
- Social networking
(games, discovery)
- 3. Monetize through
content distribution
- Games / Music / other
- Advertisement
- E-commerce
Social Communication Content
- 1. Grow by offering free
communications
- Calls
- Video calls
- Messaging
4
Mobile Strategy
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 types, hundreds of Tango versions
- 110K unique device
types
- Hundreds of Tango
versions
TangoMe, Inc. Proprietary and Confidential
Scale & Scope
1.6M events per second reported by clients
More? Moar??? More?? 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
Core cross platform library OS AddressBook A/V Playback/Capture Media Network
Auth HTTP HTTP P2P/NAT
Platform Specific Utilities X-P API Driver API Asset Services
Background up/down load Asset Manager
SWIG Protobuf messaging
Audio/Video (codecs, echo cancellation) QoS Adaptation (fec, bitrate, framerate, resolution) Café MOAI
Local Storage Contact Manager Invite Services Tango Services
Authentication Contact Filtering Configuration (A/B) Messaging Call establishment (SWIFT) Capabilities Auth HTTP
Social Services Portable Runtime
Connectivity
Connectivity Call Log
Logging Thread pool Strings
Native Call Log Mgr
Database (sqlite)
Technologies
Facebook Lua Aviary
- penssl
OpenGL Phone Formatter Wakeup Manager VoIP Socket Smart HTTP Spotify
Discovery Services Channel Services Platform Specific
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
It doesn't matter [if a] cat [is] black [or] white, [as long as it] can catch mice, it's a good cat
13
TangoMe, Inc. Proprietary and Confidential
Tango Test Automation System
14 Test Analytics Web Service Analytics
DB
FeatureTest ServerAPI Test Android/iOS UIAutomation Test
Deployed Environment
Test Analytics UI Dashboard
UI
Cross Platform Client
Server
Tango
Cross Platform Unit Tests Server Unit Tests
TangoMe, Inc. Proprietary and Confidential
Mobile UI Automation
15
188 193 12 monitors
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
The Tango UI is a-Changin’
16
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Using E2E UI Tests as Monitors
17
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Feature Tests
- 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
18
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Server Dependencies
19
- What dependencies do our back end server
components have on each other?
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Dependency Visualization Take 1
20
- Big Ball of Mud?
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Dependency Visualization Take 2
21
- Big Ball of Mud Mushroom?
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Dependency Visualization Take 3
22
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Dependency Visualization Take 3
23
UI
Cross Platform Client
Server
TangoMe, Inc. Proprietary and Confidential
Reliability / Performance
- Performance/Reliability
- Jmeter / Locust.io
- Failure testing
- Mosh (netem)
- Exploratory Testing for clients (*hit digging)
24
TangoMe, Inc. Proprietary and Confidential
Notable Escapes
- Verizon Voicemail
- DoS-ing ourselves
25
TangoMe, Inc. Proprietary and Confidential
Future Areas of Exploration
- 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
26
TangoMe, Inc. Proprietary and Confidential
We are Hiring!
27