Presented in Moscow in December 2016 at the Heisenbug conference and in Yekaterinburg in April 2017. Video and slides are in Russian.
# Abstract
In our professional lives, we encounter distributed systems more and more often. Many modern popular websites and applications have a distributed system “under the hood” — such systems challenge developers with the fundamental complexity of their development and a huge range of possible design trade-offs. Andrey will talk about the part of these challenges related to testing, about existing limitations and their impact on functionality. The following questions will be covered:
- How are distributed systems different from centralized systems?
- What does it all mean for testing?
- What properties and characteristics must be checked in distributed systems, and how?
- What approaches to testing distributed systems exist, and what problems do they solve?
- What problems remain unresolved?
The talk is built around the example of a persistent distributed queue developed at Yandex. Attendees will learn what Andrey and the Yandex team tested, how they tested it, and what results they obtained.
# Materials
Download slides in Russian (PDF)
# References
- Testing Distributed Systems — curated list of resources on testing distributed systems
- “Simple Testing Can Prevent Most Critical Failures” — a great paper with an overview of different defect types in distributed systems and how to find them. If you have time to read only one paper, this is the one.
- Inside Yandex: Data Storage and Processing Infrastructure — several talks on data infrastructure at Yandex (in Russian)
- Talks by Kyle Kingsbury (Aphyr) — if you are testing distributed systems you must be familiar with Kyle’s work
Not exactly references, but you could check out interviews with me on testing distributed systems, one in November 2016 and another one in June 2017 (both in Russian).
# Other versions
A shorter version of this talk was presented at DUMP 2017 conference in Yekaterinburg in April 2017.