Inside Zalo: Developing a mobile messenger for the
audience of millions
BY THANH DAO, VNG CORP.
About me
Career:
• VNG: Senior Manager - Head of Zalo & Zing
Mobile Product Group
• Past: Microsoft, Kofax
Contact:
•
• />• />
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.
Agenda
• Background of Zalo
• The user growth story
• Continuous development
Landscape before Zalo
Social Networks
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
Traditional Messengers
Strong network effect on PC,
but...
• No social features
• Not fun enough
• Not mobile friendly
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
5community
• Low barrier to entry
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
Target
18-25
26-30
Singles
Core segment
Core segment
Unmarried
couples
Potential to grow share
?
Married
couples
Potential to penetrate
X
X
Not target yet
Not target yet
Product
Platform
Product
1. Communication: Voice messaging & Call…
2. Social: Timeline, People Near By, Room…
3. Platform: Page, 3rd Apps, Games.
Proposition(Value)
“Fun & Connection & Private”
Anchored by basic: Fast, Quality, Cheap
P lace (Channel)
1. App Stores: Itunes, Google Play, Nokia Store
2. Factory Preload on Nokia Asha, WP…
3. Side-load at retail shop
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,…)
Agenda
• Background of Zalo
• The user growth story
• Continuous development
Agenda
• Background of Zalo
• The user growth story
• Continuous development
User Discovery Q3/2012: Born
Product
25000000
• Zing & Phonebook mobile messenger
• voice, sticker, draw and people near by
20000000
Users feedback and data told us
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
15000000
10000000
5000000
0
5/
1
4/ 2/2
2 0
4/ 8/2 13
1 0
3/ 4/2 13
3 0
3/ 1/2 13
17 01
3/ /20 3
2/ 3/2 13
17 01
2/ /20 3
1/ 3/2 13
20 01
1/ /20 3
12 6 / 1 3
/2 20
12 3/2 13
11 /9/ 012
/ 2
11 2 5 / 0 1 2
/ 2
10 1 1 / 0 1 2
/ 2
10 2 8 / 0 1 2
/1 20
9/ 4/2 12
3 0
9/ 0/2 12
16 0 1
9/ /20 2
8/ 2/2 12
1 9 01
/2 2
01
2
• 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
Registered User
Daily msg
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
15000000
10000000
5000000
So we
•
•
•
20000000
Improve notification services
Improve picture quality
Scale up advertising budget, Run 360 degree
marketing campaign
0
5/
1
4/ 2/2
2 0
4/ 8/2 13
1 0
3/ 4/2 13
3 0
3/ 1/2 13
17 01
3/ /20 3
2/ 3/2 13
17 01
2/ /20 3
1/ 3/2 13
20 01
1/ /20 3
12 6 / 1 3
/2 20
12 3/2 13
11 /9/ 012
/ 2
11 2 5 / 0 1 2
/ 2
10 1 1 / 0 1 2
/ 2
10 2 8 / 0 1 2
/1 20
9/ 4/2 12
3 0
9/ 0/2 12
16 0 1
9/ /20 2
8/ 2/2 12
1 9 01
/2 2
01
2
•
•
•
25000000
Registered User
Daily msg
User Discovery Q1/2013: Walk
Product
•
•
•
•
Friend Circle
Zalo Page (VIP)
Friend invitation
Support 18 countries
Users feedback and data told us
25000000
20000000
15000000
• Voice message is addictive
• Multi-picture upload is convenient
10000000
So we
5000000
0
5/
1
4/ 2/2
2 0
4/ 8/2 13
1 0
3/ 4/2 13
3 0
3/ 1/2 13
17 01
3/ /20 3
2/ 3/2 13
17 01
2/ /20 3
1/ 3/2 13
20 01
1/ /20 3
12 6 / 1 3
/2 20
12 3/2 13
11 /9/ 012
/ 2
11 2 5 / 0 1 2
/ 2
10 1 1 / 0 1 2
/ 2
10 2 8 / 0 1 2
/1 20
9/ 4/2 12
3 0
9/ 0/2 12
16 0 1
9/ /20 2
8/ 2/2 12
1 9 01
/2 2
01
2
• Run Friend Invite Campaign
• Developing Call.
• Work with 3RD party apps
Registered User
Daily msg
Agenda
• Background of Zalo
• The user growth story
• Continuous development
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.
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…
ZA Socket Protocol
Monitoring
ZAComm Router
ZAComm
ZAComm #1
#1
ZAComm
ZAComm #2
#2
ZAComm
ZAComm #N
#N
Conn
Conn Manager
Manager
Conn Manager
Conn
Conn Manager
Manager
Worker Pool
Worker
Worker Pool
Pool
Worker Pool
Worker
Worker
Worker
Worker
VIP
Msg
Avatar
Contact
LBS
LBS
Group
Group
Photo
Photo
Privacy
Privacy
Room
Room
Share
Cover
Cover
Friend
Friend
LBS
LBS
Message
Message Items
Items
Photo
Photo
Caching
Caching
Caching
Caching
Caching
Persistent
Persistent
Persistent
MemCache
Background Job
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
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…).