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.
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 & coinsdance”Luca Pacioli
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
Scale CubeSplit users(geography, size,type, SKU)Split data (read vs. write,active standby, shards)Split code(SOA, nouns/verbs)
2 DB Read-Slaves (X)Doing Search (Y)Australia/APAC Subscribers (Z)
Scale Out: Commodity Capacity where it’s needed
App Servers……..Databases….Swim Lane – Fault Tolerant & Self-Contained Domains
2. The bigger they are, the harder they fall"You can drop a mouse down a thousand-yardmine shaft and, on arriving at the bottom, it getsa slight shock and walks away.”J. B. S. Haldane,"On Being the Right Size"
Fail small5 swim lanes,20% traffic each20 swim lanes,5% traffic each100s of swim lanes,~1% traffic each
Workload isolationTransactionloadBatchloadServerUI load API loadServerpool1Serverpool2Workloads have a hidden dependency on each other.If one triggers a bug or outage in service, all otherswill be impacted.5 types of workloads: UI Service calls API calls from apps Batch External sync AdministrativePartial service in the face of failures …Strategic server reserve
4. Ensure performanceRequirement MeasureNo major degradation Median response time for any workflow should not deviate >10% frompastMinimal variability 2 standard deviations should span across the same % of executions foreach workflowCorrect sampling At least, 10% of overall production concurrency tested for a true RASmeasurementWorst case projection Most expensive workflow to be tested at 2x concurrency than atproduction
PilotingRoll out a new feature/function or even system call to a limited sample of clients based on somecriteria – 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 tomore customers with preferably no required deployment events.PilotconfigurationPilotfactoryObj Request()In pilot group?ClientIf pilot return newObjIf control return oldObjIf no return noObject
“The new set up sucks. Now I cant even open anew window. Youve changed way too muchfrom the desktop and took away features peopleneed. I cant wait to get away from your productfor good!”Customer feedback (pre-piloting)
“THANK YOU THANK YOU THANK YOU foradding the facility to attach files to emails. I willuse it, and even more important, you havemade my "billing guy" extremely happy! Thiswill save him several hours eachweek. Whoever is reading this, please gokiss the feet of whoever implemented thisfeature!”Customer feedback (post-piloting)
AccessData APIsProduct data Business data 3rd-party dataAnalytics Cloud(Netezza, Hadoop, Splunk)Log; transactions; tax forms &codes; Web/mobile click-streamOrders, subscriptions,cancellations, careManagers Ops/EngineersFirmographic data,social data, D&B dataSelf-service toolsProducts EmployeesIdentifyCaptureActAggregateAnalyze6. Data … measure … act
Data about DataExecutes Server-side tolerance threshold1000 times/hr 250 ms10,000 times/hr 120 ms100,000 times/hr 50 ms1,000,000 times/hr 15 msBad gets worse faster than good gets better …
Guiding Principle : Build a global platformTrue global platform via a singlecodebase; US is a locale“FROM” state “TO” stateWorldwide hosting, multi-tenant, 24x7ops, SLAsMulti-byte, multi-languageOpen APIs, integrationsBuilt via network effects: 3rd-partydevelopers & usersWorldwide-localized marketing/SEO,care modelUS-only hosting, ops & SLAsEnglish-onlyUS-only appUS-only marketing/SEO, careDeveloped by IntuitNon-globalized services, APIs
Built a global platformTrue global platform via a singlecodebase; US is a locale“FROM” state “TO” stateWorldwide hosting, multi-tenant, 24x7ops, SLAsMulti-byte, multi-languageOpen APIs, integrationsBuilt via network effects: 3rd-partydevelopers & usersWorldwide-localized marketing/SEO,care modelUS-only hosting, ops & SLAsEnglish-onlyUS-only appUS-only marketing/SEO, careDeveloped by IntuitNon-globalized services, APIs
While growing 40% YoY… and avoiding thisMid-air with passengers …
Leap #346 languages (machine translated) in4 weeks. User contributionpersonalizes where we fall short!!
Personalize for meProducts are made to be relevant for a majority audience,but they are largely irrelevant for the individual user
Personalization is the NEW localizationTax rates ReportsSettings,preferencesFormscustomizationBusiness terms Workflows, …Who is the user ?Where is s/he from ?1Crunching similar users’data (non-anonymously)2Personalized basedon similar profiles31
(another) Pet Store, Brazil – now personalized automagically
… enabling personalization for each individual …
1-800-ultra-personalizationCecilia, florist Alex, coffee house Liang, gardener Vijay, merchantCraig, landscape & furnishingOne offering, automagically configured into 1000s while we sleep!!
Leap #4Personalized QBO for every userworldwide while we sleep!!CiaoPrivetHelloHiHolaAloha Bon JourHalloMerhabaSayonara
1I18N Ready24Network effects viausers & 3rd-partydevelopersLocalizedGlobal expansion via rapid L10NNetwork-advantagedValue delivery via enabling othersL10Ns by Intuit developersI18NizedAbility to localizeConfigurableSupporting cultures w/o countryspecific localizations3Users localize forthemselvesTechnology evolution via building a blue print forglobal maturity – use it !!Test , validate4 countriesAcceleration150 countriesPersonalized usinguser’s interactions150 countries46 languages143 currencies