1 / 29

Is it hard to build a service for 100M user?

Is it hard to build a service for 100M user?. Short answer – yes . What would you do if you had 1,000,000 users after 3 days?. 1. Run away 2. Get drunk 3. Pray 4. All of the above. Some numbers…. 100M registered users 2.5B text, 1.7B voice minutes monthly

garan
Télécharger la présentation

Is it hard to build a service for 100M user?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Is it hard to build a service for 100M user? Short answer – yes 

  2. What would you do if you had 1,000,000 users after 3 days? 1. Run away 2. Get drunk3. Pray4. All of the above

  3. Some numbers… • 100M registered users • 2.5B text, 1.7B voice minutes monthly • 50 employees in Belarus, about 120 worldwide

  4. What do we do? • Free calls, messages and group messages (more coming!) • Your number is your “user id” • Always On…

  5. Why Viber became popular • People love to get something for free • First one to do it “right” • It’s purple:)

  6. Reception • 1M after 3 days • Very high growth ratio • Give us more (platforms, features) • “Where is the Blackberry version?”

  7. What we saw as a result? PROBLEMS!!!

  8. Building a service that can handle 100M users in 1.5 years is difficult. Really.

  9. Why problems? • More usage - more load on backend • More platforms: • More development • Can’t deliver all features on all platforms at the same time.

  10. Scaling “Scaling is replacing all components of a car while driving it at 100MPH” [Mike Krieger, Instagram]

  11. When developers say “fully scalable” they don’t really mean it…

  12. Backend • Got to 1M connected users in less than 2 weeks • Used Amazon EC2, but still you have to design for scalability • Started from 30 servers (and we thought it was a LOT) • So we started to rewrite

  13. Why is it so hard? • Address books (100M) • Reverse address entries (3B) • 300,000 data requests per second • Active dataset 1.5TB • 15-20M concurrent connected users (TCP) • Over 100,000 concurrent phone calls

  14. How to handle all the data • NoSQL (MongoDB, Redis)! • Sharding • MongoDB uses auto-sharding but it’s slow • Simple in-memory solutions require lot of work

  15. We are our biggest enemy • A small mistake on a mobile client can lead to a massive DDOS • One bug in Android client = 100 times load on backend

  16. Say goodbye to life • You are always in the office • Sometime the office is at home • Sometime at the beach • Sometime...

  17. Shit happens • Stuff will break • Stay cool and fix • Communicate with your users

  18. Monitoring • Collect tons of stats • Look at them • Look at them again • Trending matters. Things don’t just happen.

  19. Backend now • Constantly rewriting and optimizing • Runs on 300 servers (and we think it's not too much) • Using and improving open source software

  20. Backend - technologies • Proprietary front-end servers (C++, really fast) • Redis – in memory NoSQL, fast • MongoDB – persistent NoSQL, not so fast • MySQL – registrations, pretty slow • Always looking for alternatives (CouchBase, DynamoDB, etc)

  21. Platforms • Users wants to communicate with their friends, but they keep buying different phones • Started from iOS and had Android community bashing us for a year • Now: iOS, Android, Blackberry, WindowsPhone7 • More coming…

  22. Client challenges - iOS • Support numerous iOS versions (we’re finally dropping support for iOS 3) • Support several device type (3G, 3GS, 4, 4S) • Need to react very fast (iOS upgrade)! • Hard to test on large scale (no beta testing, although there is a one-time solution)

  23. iOS Device Breakdown 6 users registered with iPhone 5

  24. iOS versions breakdown

  25. Mobile upgrade speed Desktop application upgrade Mobile application upgrade

  26. Client challenges - Android • Devices/platform fragmentation (we saw more then ??? devices) • Lot of sound-related bugs caused by it • Different screens and device caps • APIs not always work as documented and not always documented

  27. Client challenges - voice & video infrastructure • Have to choose/write a proper engine • Now we are using and modifying WebRTC • Has to work smoothly on mobile devices • 3G is a pain • Has to optimize for several platforms

  28. Lessons learned • Always plan for success • Monitor your system • Hire best people • It’s VERY REWARDING! hr.blr@viber.com

  29. Questions?

More Related