Agenda Tango Intro Architectural Overview / Unique Technical - - PowerPoint PPT Presentation

agenda
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1
slide-2
SLIDE 2

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
slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

TangoMe, Inc. Proprietary and Confidential

282 Countries >250M Registered users 73M MAU 2,000 Servers in a dozen locations

slide-6
SLIDE 6

TangoMe, Inc. Proprietary and Confidential

Scale & Scope

110K unique device types, hundreds of Tango versions

  • 110K unique device

types

  • Hundreds of Tango

versions

slide-7
SLIDE 7

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

slide-8
SLIDE 8

TangoMe, Inc. Proprietary and Confidential

What’s Unique to Tango?

8

slide-9
SLIDE 9

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
slide-10
SLIDE 10

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

slide-11
SLIDE 11

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
slide-12
SLIDE 12

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)
slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

TangoMe, Inc. Proprietary and Confidential

Mobile UI Automation

15

188 193 12 monitors

UI

Cross Platform Client

Server

slide-16
SLIDE 16

TangoMe, Inc. Proprietary and Confidential

The Tango UI is a-Changin’

16

UI

Cross Platform Client

Server

slide-17
SLIDE 17

TangoMe, Inc. Proprietary and Confidential

Using E2E UI Tests as Monitors

17

UI

Cross Platform Client

Server

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

TangoMe, Inc. Proprietary and Confidential

Dependency Visualization Take 1

20

  • Big Ball of Mud?

UI

Cross Platform Client

Server

slide-21
SLIDE 21

TangoMe, Inc. Proprietary and Confidential

Dependency Visualization Take 2

21

  • Big Ball of Mud Mushroom?

UI

Cross Platform Client

Server

slide-22
SLIDE 22

TangoMe, Inc. Proprietary and Confidential

Dependency Visualization Take 3

22

UI

Cross Platform Client

Server

slide-23
SLIDE 23

TangoMe, Inc. Proprietary and Confidential

Dependency Visualization Take 3

23

UI

Cross Platform Client

Server

slide-24
SLIDE 24

TangoMe, Inc. Proprietary and Confidential

Reliability / Performance

  • Performance/Reliability
  • Jmeter / Locust.io
  • Failure testing
  • Mosh (netem)
  • Exploratory Testing for clients (*hit digging)

24

slide-25
SLIDE 25

TangoMe, Inc. Proprietary and Confidential

Notable Escapes

  • Verizon Voicemail
  • DoS-ing ourselves

25

slide-26
SLIDE 26

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

slide-27
SLIDE 27

TangoMe, Inc. Proprietary and Confidential

We are Hiring!

27