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

Slides:



Advertisements
Similar presentations
Fast Data at Massive Scale Lessons Learned at Facebook Bobby Johnson.
Advertisements

Cloud Computing PRESENTED BY- Rajat Dixit (rd2392)
CSE 4939 Alex Riordan Brian Pruitt-Goddard Remote Unit Testing.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Push to ALL the iPhones with Azure Chris Risner Senior Technical Microsoft Azure.
1 © Skype Confidential. 1 Skype for Business Save time. Save money. Stay ahead. Matthew Jordan Enterprise Business Development Manager, Skype for.
One App for All Coding for different iOS variants Mike Oliver iOS Team Lead
Multi-criteria infrastructure for location-based applications Shortly known as: Localization Platform Ronen Abraham Ido Cohen Yuval Efrati Tomer Sole'
TC2-Computer Literacy Mr. Sencer February 4, 2010.
Brandeis University Network Registration Joshua West 03/15/2011 LTS Staff Meeting.
Fast is a Feature. 11 mentions of speed in Apple iPhone 6 keynote.
NoSQL and NewSQL Justin DeBrabant CIS Advanced Systems - Fall 2013.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
SM3121 Software Technology Mark Green School of Creative Media.
RESOURCE MANAGEMENT System Resources. What resources are managed in a computer system?
The Internet & The World Wide Web Notes
Effectively Explaining the Cloud to Your Colleagues.
CAEL 5012 Rich Internet Applications. What you need For this part of the course you will need access to a server with PHP and MYSQL which will be supplied.
Information Systems Today: Managing in the Digital World TB4-1 4 Technology Briefing Networking.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
David Overton Head of Small Business Technology – Head of Small Business Technology – Microsoft solutions for.
Programming and Application Packages
GIS and Cloud Computing. Flickr  Upload and manage your photos online  Share your photos with your family and friends  Post your photos everywhere.
Informatics 43 – May 21, A quote from Piazza “This course is trying to teach you how to be a PM (product manager).”
Operating Systems  A collection of programs that  Coordinates computer usage among users  Manages computer resources  Handle Common Tasks.
NCTC IT Professionals' Forum October Webmail.us' Open Source Software Strategy Bill Boebel Chief Technology Officer.
:: Conférence :: NoSQL / Scalabilite Etat de l’art Samuel BERTHE10 Mars 2014Epitech Nantes.
“A Project Managers Perspective” Presented by: Brian Fischer Houston Engineering, Inc. WLIA Conference, 02/14/2013 A JOURNEY THRU MOBILE APP DEVELOPMENT.
Multi-core Programming Introduction Topics. Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism.
MagicCarpet MOBILE Mobile Directory Publishing Yellow Magic Incorporated Industry Gold Award-Winning Software, YPA, 2008 “Any Sufficient Advanced Technology.
1 Computer and Network Bottlenecks Author: Rodger Burgess 27th October 2008 © Copyright reserved.
Large dataset processing in the Cloud Kevin Glenny and GridwiseTech team.
Chapter 3.5 Memory and I/O Systems. 2 Memory Management Memory problems are one of the leading causes of bugs in programs (60-80%) MUCH worse in languages.
Features of mobile apps. Introduction of mobile apps  FACEBOOK  Facebook is an online social networking service. Its name comes from a colloquialism.
* Register as a developer * free for students, $99 per year for everyone else * Read the certification guidelines * Develop your app/game * Test your.
CITRIX INTERNET VIRTUALIZATION AND VIRTUAL MOBILE - Abhishek Singh Twitter uk.linkedin.com/pub/abhishek-singh/7/275/562/
Conferencing & Enterprise ROI Randy Knaub Director of Marketing.
How to Build a Platform that can Process 60 Terabytes of Data a Day PRESENTED BY Basil Shikin VP of Engineering, AppLovin October, 2015.
Cozi Home Organizer A complete family organizer app By: Joey Feigley.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
Booked Web-based calendar and schedule -ISOM 424 Professor Thomas -Pengqia Chen.
FCM Workflow using GCM.
Real-Time Performance at Massive Scale
Mobile Applications: Unit - I
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
Web Technologies Lecture 13 Introduction to cloud computing.
Scalable Data Scale #2 site on the Internet (time on site) >200 billion monthly page views Over 1 million developers in 180 countries.
ADVANCED COMPUTER TO, Kanishka Sir's. Introduction to Whatsapp Whatsapp Inc. Was Founded In 2009 By Brian Acton And Jan Koum (Also The Current CEO) Whatsapp.
SharePoint ShortUrl and SharePoint Document Merge SharePoint and Office 365 Add-ins to Increase Productivity and Improve User Adoption! OFFICE 365 APP.
What you need to know.  Each TDI vessel is equipped with satellite communications that supplies a LOW BANDWIDTH internet connection. Even though the.
COMP1321 Digital Infrastructure Richard Henson March 2016.
Sukha Payana Carpooling gamified! Play with your friends!
The types of computers and their functionalities.
Technical Sales Specialist Software - OS and Applications John R. Moegling Sr. Systems Engineer.
A Checklist of Testing Tips for Developing a Mobile App Presented By: Konstant Infosolutions.
Office 365 is cloud- based productivity, hosted by Microsoft. Business-class Gain large, 50GB mailboxes that can send messages up to 25MB in size,
System Software Chapter Handles technical details Works with end users, application software, and computer hardware Four types of programs –Operating.
| Mobile Accessibility Development Making an Accessible App Usable Scott McCormack.
Home Phone Service February, CONFIDENTIAL AND PROPRIETARY | What is Ooma? The smartest home phone is the one that gives you exactly what you want.
System Software Chapter Handles technical details Works with end users, application software, and computer hardware Four types of programs –Operating.
Features to look for in a Work Management Software before choosing one.
David Watson: University of Keep this frequency clear Staff and student communication – looking for a way forward.
Cleveland SQL Saturday Catch-All or Sometimes Queries
Mobile Application Test Case Automation
Brian sends to John a fax from his smartphone
Upgrading to Microsoft SQL Server 2014
Researching social media
CLOUD COMPUTING.
Year 10 Computer Science Hardware - CPU and RAM.
Sessions about to start – Get your rig on!
Presentation transcript:

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

/dev/viber 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

/dev/viber Some numbers… 100M registered users 2.5B text, 1.7B voice minutes monthly 50 employees in Belarus, about 120 worldwide

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

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

/dev/viber Reception 1M after 3 days Very high growth ratio Give us more (platforms, features) – “Where is the Blackberry version?”

/dev/viber What we saw as a result? PROBLEMS!!!

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

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

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

/dev/viber When developers say “fully scalable” they don’t really mean it…

/dev/viber 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

/dev/viber 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

/dev/viber 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

/dev/viber 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

/dev/viber Say goodbye to life You are always in the office Sometime the office is at home Sometime at the beach Sometime...

/dev/viber Shit happens Stuff will break Stay cool and fix Communicate with your users

/dev/viber Monitoring Collect tons of stats Look at them Look at them again Trending matters. Things don’t just happen.

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

/dev/viber 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)

/dev/viber 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, WindowsPhone 7 More coming…

/dev/viber 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)

/dev/viber iOS Device Breakdown 6 users registered with iPhone 5

/dev/viber iOS versions breakdown

/dev/viber Mobile upgrade speed Desktop application upgradeMobile application upgrade

/dev/viber 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

/dev/viber 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

/dev/viber Lessons learned Always plan for success Monitor your system Hire best people It’s VERY REWARDING!

/dev/viber Questions?