QuickBooks Online is the no. 1 small business cloud accounting solution worldwide. In this session we discussed how we built a highly scalable, global SaaS offering and the lessons learnt along the way.
Velocity Conference: Building a Scalable, Global SaaS Offering: Lessons from Intuit's QuickBooks Online Team
1. Building a Scalable,
Global SaaS Offering
Lessons from Intuit’s
QuickBooks Online Team
Nilendu Misra, Lead Architect, Intuit
Anshu Verma, Architect, Intuit
3. Monk
Mathematician
Professor
Private Tutor to Leonardo da Vinci
First book on chess
Father of double-entry accounting
First documented use of logarithm
Treatise on “juggle, eat fire & coins
dance”
Luca Pacioli
4. QuickBooks Online snapshot
Used by businesses from “cradle to grave” –
daycare for infants to undertaker
Over 400,000 small business subscribers
~100K transactions per minute; spike of “firsts” –
year, quarter, month, week
Available via Web, native mobile/tablet apps,
3rd-party apps built on exposed APIs
10. 2. The bigger they are, the harder they fall
"You can drop a mouse down a thousand-yard
mine shaft and, on arriving at the bottom, it gets
a slight shock and walks away.”
J. B. S. Haldane,"On Being the Right Size"
11. Fail small
5 swim lanes,
20% traffic each
20 swim lanes,
5% traffic each
100s of swim lanes,
~1% traffic each
13. Workload isolation
Transaction
load
Batch
load
Server
UI load API load
Server
pool1
Server
pool2
Workloads have a hidden dependency on each other.
If one triggers a bug or outage in service, all others
will be impacted.
5 types of workloads:
UI Service calls
API calls from apps
Batch
External sync
Administrative
Partial service in the face of failures …
Strategic server reserve
14. 4. Ensure performance
Requirement Measure
No major degradation Median response time for any workflow should not deviate >10% from
past
Minimal variability 2 standard deviations should span across the same % of executions for
each workflow
Correct sampling At least, 10% of overall production concurrency tested for a true RAS
measurement
Worst case projection Most expensive workflow to be tested at 2x concurrency than at
production
16. Piloting
Roll out a new feature/function or even system call to a limited sample of clients based on some
criteria – allows us to test out new features or interactions before fully rolling them out.
Piloting logic check should allow us to completely shut the new feature off, or gradually roll out to
more customers with preferably no required deployment events.
Pilot
configuration
Pilot
factory
Obj Request()
In pilot group?
Client
If pilot return newObj
If control return oldObj
If no return noObject
17. “The new set up sucks. Now I can't even open a
new window. You've changed way too much
from the desktop and took away features people
need. I can't wait to get away from your product
for good!”
Customer feedback (pre-piloting)
18. “THANK YOU THANK YOU THANK YOU for
adding the facility to attach files to emails. I will
use it, and even more important, you have
made my "billing guy" extremely happy! This
will save him several hours each
week. Whoever is reading this, please go
kiss the feet of whoever implemented this
feature!”
Customer feedback (post-piloting)
19. Access
Data APIs
Product data Business data 3rd-party data
Analytics Cloud
(Netezza, Hadoop, Splunk)
Log; transactions; tax forms &
codes; Web/mobile click-stream
Orders, subscriptions,
cancellations, care
Managers Ops/Engineers
Firmographic data,
social data, D&B data
Self-service tools
Products EmployeesIdentify
Capture
Act
Aggregate
Analyze
6. Data … measure … act
20. Data about Data
Executes Server-side tolerance threshold
1000 times/hr 250 ms
10,000 times/hr 120 ms
100,000 times/hr 50 ms
1,000,000 times/hr 15 ms
Bad gets worse faster than good gets better …
23. 2. Globalization is reality …
SB Purchasing
$3.8T in Spend
75% outside US
Used in 70 languages
Social engagement:
US : ranked #11
21% of global population
uses Twitter every day
English growing @ 301%
Spanish @ 807%
Chinese @ 1478%
Russian @ 1825%
24. 3. Small business spread
22M
(US)
500M
(rest of
the world)
20X!! … case rested?
25. 1 160 countries 1 46 languages 1 140 currencies
Leapfrog journey – the 4 leaps
27. Guiding Principle : Build a global platform
True global platform via a single
codebase; US is a locale
“FROM” state “TO” state
Worldwide hosting, multi-tenant, 24x7
ops, SLAs
Multi-byte, multi-language
Open APIs, integrations
Built via network effects: 3rd-party
developers & users
Worldwide-localized marketing/SEO,
care model
US-only hosting, ops & SLAs
English-only
US-only app
US-only marketing/SEO, care
Developed by Intuit
Non-globalized services, APIs
28. Built a global platform
True global platform via a single
codebase; US is a locale
“FROM” state “TO” state
Worldwide hosting, multi-tenant, 24x7
ops, SLAs
Multi-byte, multi-language
Open APIs, integrations
Built via network effects: 3rd-party
developers & users
Worldwide-localized marketing/SEO,
care model
US-only hosting, ops & SLAs
English-only
US-only app
US-only marketing/SEO, care
Developed by Intuit
Non-globalized services, APIs
48. Leap #3
46 languages (machine translated) in
4 weeks. User contribution
personalizes where we fall short!!
49. Personalize for me
Products are made to be relevant for a majority audience,
but they are largely irrelevant for the individual user
50. Personalization is the NEW localization
Tax rates Reports
Settings,
preferences
Forms
customization
Business terms Workflows, …
Who is the user ?
Where is s/he from ?
1
Crunching similar users’
data (non-anonymously)
2Personalized based
on similar profiles
3
1
54. Leap #4
Personalized QBO for every user
worldwide while we sleep!!
Cia
o
Priv
etHello
HiHola
Aloha Bon Jour
Hallo
Merhaba
Sayonara
55. 1
I18N Ready
2
4
Network effects via
users & 3rd-party
developers
Localized
Global expansion via rapid L10N
Network-advantaged
Value delivery via enabling others
L10Ns by Intuit developers
I18Nized
Ability to localize
Configurable
Supporting cultures w/o country
specific localizations
3
Users localize for
themselves
Technology evolution via building a blue print for
global maturity – use it !!
Test , validate
4 countries
Acceleration
150 countries
Personalized using
user’s interactions
150 countries
46 languages
143 currencies