User generated data is an old problem. Systems and network telemetry, page analytics and application state combine to form an ever growing mountain of data collected by today's tools. Collecting and storing this data requires more than just a single application, having no single point where the user touches the system and gets an answer makes debugging a nightmare and reproducing the error intractable. Distributed systems require a clear perspective on production systems and access to data in real time to have any hope of solving complex problems related to state, all while not impacting user experience.
We will explain the problem, the pains and how we solved them. Develop in production; push code to development.
1. Xtreme Deployment
/ develop in production; push to dev
Tuesday, October 2, 12
2. Who are we?
Brian Clapper
CTO of Circonus
Whipping boy of the modern SaaS stack.
Theo Schlossnagle
CEO of Circonus
Repeat denier of reality.
Tuesday, October 2, 12
3. How the world used to look (less xtreme)
Architectures driven by user interaction:
(e.g. web page load ➠ web page response)
Tuesday, October 2, 12
4. How the world used to look (less xtreme)
isolated
user A’s page load doesn’t effect user B.
latent
user A’s affect shows up “later” in user B’s view.
Tuesday, October 2, 12
5. How the world used to look (less xtreme)
Problem reproducibility is achievable
(even if sometimes painful)
Tuesday, October 2, 12
6. How the world looks now (more xtreme)
Architectures driven by
high volume data and users
Tuesday, October 2, 12
7. How the world looks now (more xtreme)
every piece of data entering the architecture
can effect a user’s subsequent experience.
Tuesday, October 2, 12
8. How the world looks now (more xtreme)
sometimes
the data must effect a user’s
subsequent experience.
Tuesday, October 2, 12
9. How the world looks now (more xtreme)
Social systems cause indirect impact
via user action eroding isolation.
Tuesday, October 2, 12
10. How the world looks now (more xtreme)
A more responsive web is eroding
users’ acceptance of latent state.
Tuesday, October 2, 12
11. How the world looks now (more xtreme)
Highly distributed systems
(due to complexity and scalability) means
no single world state
Tuesday, October 2, 12
12. How the world looks now (more xtreme)
Highly distributed systems
(due to complexity and scalability) means
difficult repeatability of state and failures
Tuesday, October 2, 12
13. How the world looks now (more xtreme)
Highly distributed systems
(due to complexity and scalability) means
treacherous debugability
Tuesday, October 2, 12
14. Despair all ye’ who debug here
I studied distributed systems long enough
to understand “the suck” you do not wish to
have in your lives.
Tuesday, October 2, 12
15. Despair all ye’ who debug here
Expedient debugging requires a quick
realization of a precipitating state of failure.
Tuesday, October 2, 12
16. Despair all ye’ who debug here
In distributed systems,
post-mortem techniques are less useful
because recreating possible global state is a
mind-bending (or brain-damaging) exercise.
Tuesday, October 2, 12
17. Despair all ye’ who debug here
Applying older techniques
to small controlled distributed systems
is still feasible,
but complex, asynchronous architectures
can be nearly impossible.
Tuesday, October 2, 12
18. Some context about us
Circonus ingests telemetry data
across an entire business
Tuesday, October 2, 12
19. Some context about us
alerting • correlation • visualization • analytics
Tuesday, October 2, 12
20. How we see the world today
High velocity non-user-generated data inflow.
Tuesday, October 2, 12
21. How we see the world today
Users expect sub-second reflection of
all input data and drawn-conclusions.
Tuesday, October 2, 12
22. How we see the world today
Users expect extremely high availability
(100%, you can only disappoint)
Tuesday, October 2, 12
23. How we see the world today
I was surprised how
impatient and demanding users are...
until I used the tool...
and felt exactly the same way.
Tuesday, October 2, 12