SPLASH 2023 (series) / CONFLANG 2023 (series) / CONFLANG23 /
Applying Large Scale Diffing to Declarative Configuration Code for Production Safety
At Google, we’ve noted the following problems with changing config code:
- Declarative code can lead to unintended consequences
- Leaky abstractions can reduce readability
- Testing is hard or non-existent
The solution we’ve arrived at is Configuration diffing.
How does it solve those problems?
- Doesn’t expose control flow
- Doesn’t require writing tests or any kind of opt in
- Bypasses abstractions and poorly written code
Caveat: Not a silver bullet for preventing outages.
What is Configuration Diffing?
- Configuration diffing is a model for verifying the output of our configuration code.
- It consists of
- Dependency management - what is affected by this change?
- Execution - how is it affected?
- Delivery - how do we present it?
Tue 24 OctDisplayed time zone: Lisbon change
Tue 24 Oct
Displayed time zone: Lisbon change
16:00 - 17:30 | |||
16:00 22mTalk | Applying Large Scale Diffing to Declarative Configuration Code for Production Safety CONFLANG | ||
16:22 22mTalk | Creed for Speed: Comprehensive Infrastructure as Code Testing CONFLANG Daniel Sokolowski University of St. Gallen, David Spielmann University of St. Gallen, Guido Salvaneschi University of St. Gallen Pre-print | ||
16:45 22mTalk | Configuration testing for Borg at Google CONFLANG Alex Ivanov Google | ||
17:07 22mLive Q&A | Configuration testing Q&A/Discussion CONFLANG |