1. Systems Thinking
Patterns for scaling unstable systems
@_siddharth_ram
Siddharth Ram
Chief Architect, Small Business Group
Intuit
2. Intuit Confidential and Proprietary2
Intuit’s Mission
To improve our customers’ financial lives so profoundly …
they can’t imagine going back to the old way
Consumers Small Businesses Accounting Professionals
3. Intuit Confidential and Proprietary6
Recognized as One of the World’s Leading Companies
FORTUNE 100 BEST COMPANIES TO WORK FOR
2013%
MOST ADMIRED: SOFTWARE INDUSTRY MOST INNOVATIVE COMPANIES
2014%2015
31
Ranked
#
12 Years in a Row
2004 2005 2006 2007 2008 2009 2010 2011 2012 2015
WORLD’S MOST ADMIRED COMPANIES
2013 2014
14 Years in a Row
2
Ranked
#
4. • #1 Business management solution for small businesses and
accountants worldwide
• More than 5M paid subscribers
• Available via Web, native tablets/mobile apps
• Available in 140 countries
• Translated into 12 languages
About QuickBooks
19. Everything
always works
I do my job.
Others need to do theirs
Everything is broken
My service works even
when my dependent
services are broken
Blind Faith
Trust but verify
Infrastructure
is broken
Software is broken
My service works
when there are
infrastructure
problems
My Service works even
when my hardware &
software dependencies are
broken
God’s country
Dunning-Kruger
Optimism bias
Circuit Breakers
Destructive Testing
20. Fallacies of Distributed
computing
The network is reliable
• Transport cost is zero
• It is easy to coordinate nodes in a network
• The network is homogenous
• There is one administrator
• Bandwidth is infinite
• Topology does not change
• The network is secure
• Latency is zero
Hofstradter’s law
26. The rule of least power
Atwoods Law
The less powerful the language, the
more you can do with the data stored
in that language
Occam’s Razor Simpler is better
Any application that can be written in
JavaScript, will eventually be written in
JavaScript.
27. 4 Tier Applications - add NodeJS
Clients
NodeJS
ClientsClients
Java
Data
Atwoods Law
UsefulComplexity
FullStack
28. FullStackDevOps - own it end to end
You built it, you run it - https://queue.acm.org/detail.cfm?id=1142065
Giving developers operational responsibilities has greatly enhanced the
quality of the services, both from a customer and a technology point of view.
The traditional model is that you take your software to the wall that separates
development and operations, and throw it over and then forget about it. Not
at Amazon. You build it, you run it. This brings developers into contact with
the day-to-day operation of their software. It also brings them into day-to-
day contact with the customer. This customer feedback loop is essential for
improving the quality of the service
– Werner Vogels
36. State kills. Kill State
Session and state destroy the ultimate value promised by
multi-tenancy within Internet (SaaS, commerce, and so on)
applications.
- 50 Principles for Scaling Web Sites
Don’t simplify by creating unnecessary complexity
KillState
45. Embrace failures
Embrace useful complexity
Understand Scaling patterns
Know how to measure
performance
Be full Stack
Destroy State
Use async and
event sourcing
Plan your edge architecture
culture
Technology