Inside Zalo: Developing a mobile messenger for the audience of millions - VN Mobile Day 2013
1. Inside Zalo: Developing a mobile messenger for the
audience of millions
BY THANH DAO, VNG CORP.
2. About me
Career:
⢠VNG: Senior Manager - Head of Zalo & Zing
Mobile Product Group
⢠Past: Microsoft, Kofax
Contact:
⢠thanhdn@vng.com.vn
⢠http://me.zing.vn/thanhngocdao
⢠http://facebook.com/thanhdao
3. My Goals
⢠Talk about how we started a mobile first
product, growing the user base and the
learned lessons that lead us here.
⢠Give you a blueprint for how to scale your
mobile server system to millions.
5. Landscape before Zalo
5
Sticky, but...
⢠Donât support mobile first
use-case and phonebook
graph.
⢠Not focus on enhance chat
and group chat
⢠My mom, sister donât
contact me via SNS
Social Networks Traditional Messengers OTT IM
Early movers & viral, butâŚ
⢠No profile, social features.
⢠Lack of fun features appeal
to the young users
⢠Canât customize a feature
for the Vietnamese
community
⢠Low barrier to entry
Strong network effect on PC,
but...
⢠No social features
⢠Not fun enough
⢠Not mobile friendly
6. Model of Zalo
Mobile social messaging:
⢠Based on Mobile First & Phonebook Graph
⢠Combine Context Messaging & Connecting &
Circle Socializing
⢠Viral (i.e SMS/Zing/FacebookâŚ)
⢠Sticky
⢠Mass market appeal
7. Target
18-25 26-30
Singles Core segment Core segment
Unmarried
couples
Potential to grow share ?
Potential to penetrate
Married
couples
X
Not target yet
X
Not target yet
8. Product
P
P
P
P
latform
roduct
1. Communication: Voice messaging & CallâŚ
2. Social: Timeline, People Near By, RoomâŚ
3. Platform: Page, 3rd Apps, Games.
âFun & Connection & Privateâ
Anchored by basic: Fast, Quality, Cheaproposition(Value)
lace (Channel)
1. App Stores: Itunes, Google Play, Nokia Store
2. Factory Preload on Nokia Asha, WPâŚ
3. Side-load at retail shop
9. Marketing
⢠Position as an Expression/Lifestyle.
⢠Focus on messaging the brand benefit
â âTalk more to your loved onesâ
⢠360 Campaign launch at Online, Social, PR, TVC, OOH (Cinema,
University,âŚ)
12. 0
5
10
15
20
25
Millions
Registered User Daily msg
User Discovery Q3/2012: Born
Product
⢠Zing & Phonebook mobile messenger
⢠voice, sticker, draw and people near by
Users feedback and data told us
⢠Good for dating purpose
⢠The draw & games, sticker are fun
⢠The concept of mixing up Zing &
phonebook graph is confusing, they want
a separated buddy list
⢠Sending speed is slow with 3G, drain the
battery lifecycle
⢠Nokia version is not available yet
So we
⢠Removed âChat with Zing friendsâ
feature and focused on the Mobile First
use-cases
⢠Rewrote our own socket chat servers
instead of relaying via Zing Me Web Chat
servers
13. User Discovery Q4/2012: Totter
Product
⢠New version Nokia/Droid/IOS
⢠Group, Room
⢠Social Timeline
Users feedback and data told us
⢠Voice/text is fast
⢠UX is much better than the prev one
⢠Spam and privacy concerns
⢠Not enough friends so both retention and
engagement are problems
So we
⢠Improve notification services
⢠Improve picture quality
⢠Scale up advertising budget, Run 360
degree marketing campaign 0
5
10
15
20
25
Millions
Registered User Daily msg
14. User Discovery Q1/2013: Walk
Product
⢠Friend Circle
⢠Zalo Page (VIP)
⢠Friend invitation
⢠Support 18 countries
Users feedback and data told us
⢠Voice message is addictive
⢠Multi-picture upload is convenient
So we
⢠Run Friend Invite Campaign
⢠Developing Call.
⢠Work with 3RD party apps
0
5
10
15
20
25
Millions
Registered User Daily msg
16. Stats
⢠2.3M registered users (40% Droid; 30% IOS;
30% Nokia).
⢠>500K new users join a month.
⢠800K DAU
⢠380K peak CCU
⢠20M messages sent a day.
⢠39 servers, 150M requests a day.
17. Server Platform
⢠CentOS
⢠Binary protocol, SSL, TCP/IP, UDP.
⢠C++ for core, java for other business services.
⢠Za-Router, long connection service map and load balancer.
⢠Za-DB: a key-value db storage similar to Amazon Dynamo/Google Big T.
⢠Za-Cache: memory caching system.
⢠Za-Session manager
⢠Za-CDN
⢠Za-Messaging/Signal Socket Server
⢠Za-Stream Download/Upload Server.
⢠Za-Voice/Video Media Proxy Server
⢠Za-Configuration center: synchronize config among services.
⢠Za-Monitor center + zabbix + nagios + cacti + dogslow: trend monitoring.
⢠Postgre SQL(PostGis): store lbs data, can handle >10k requests/sec with memory caching.
⢠Dynamic DNS
⢠HA Proxy: web load balancer(https login services).
⢠Squid: static content caching, small photoâŚ
⢠Hadoop: data analyzing and mining
⢠Elastic search
⢠Scribe for log, backupâŚ
19. Server Infrastructure
39 Servers:
⢠6 relay storage servers
⢠9 database servers
⢠6 business application servers
⢠3 proxy caching servers
⢠4 other caching servers
⢠4 backup servers
⢠3 log and monitor/configuration servers
Capacity:
⢠1M CCU
⢠I/O speed: 200K message/sec
20. Scalable Mobile Servers
⢠Scaling connection servers
â Each connection server handle a shard of users.
â Configuration center.
â Service map.
⢠Scaling database
â Distributed hash table design.
â Backup & recovery.
â No alter on large table, create new one.
â Soft deletion, Lazy write.
⢠N+1 design
â Build horizontally, never less than two of anything.
â No single point of failure.
⢠Think about monitor during design, not after.
⢠Identify where bottlenecks are in each tier
â Control Port(CPU).
â Data Port(Network/Memory/Cache/Storage IOâŚ).
21. High Performance Mobile Client
⢠Speed:
â Different network type, different connecting strategy
⢠Use wi-fi as much as possible.
⢠Maximize bandwidth in fewer calls and group multiple
requests concurrently into a single multi-get request.
⢠Use bigger buffers.
â Decouple user transitions from data interactions:
⢠I.e Apply tricky like, silently uploading the image in
background during the user inputting description.
â Avoid large thumb:
⢠Send high-resolution thumb to high resolution devices and
low-resolution thumb to low resolution devices
â Cache more often, flush cache regularly
⢠Battery:
â HTTP versus TCP/IP reuse.
â Avoid constant polling(but be tricky when using
poll/push)âŚ
â Download in bursts/chunks rather than continuously
streaming.
â Minimize aggressive behaviors
â Read/Write to cache then flushing a big mount of data
into device storage once.
â Use profiler tool to benchmark and measure your app
battery consume speed.
23. Team & Process
⢠27 developers: Server & Backend, Mobile Client, R&D framework.
⢠2 system engineers
⢠5 QA engineers
⢠3 graphic designers: 1 artist & 2 graphic design
⢠5 product managers, each person:
â Responsible for different group of features: acquisition, connection, communication, socialâŚetc
â Has key business metric: conversion, retention, engagement, chatâŚand combined metrics.
⢠Scrum & continuous deployment process:
â Build isolation, enable testing single build without deploy.
â Auto Unit Test -> Integrating-> Staging -> Experiment -> Launch.