# Surviving Chaos

{% hint style="info" %}
Psst! This guide is still in progress, you're welcome to help with improvements, or just enjoy!
{% endhint %}

This repository contains the guide and content for the "Surviving Chaos: A Field Guide" workshop hosted at Linux Foundation Open Source Summit 2018 in Vancouver, BC, Canada on August 29-31, 2018.

## Who is this for?

This workshop is targeted towards people who want to:

* Hunt the most obscure and unexpected bugs.
* Improve their testing.
* Build more robust services.
* Find things they overlooked.
* Deploy with more confidence.
* Develop a deeper understanding of the sinister ways computers can fail.
* Sleep soundly at night, without worrying about getting a page.

## What do I need to know?

In order to get the most from this workshop you should be:

* Comfortable navigating a machine via console.
* Able to understand and work with simple `bash` scripts.
* Proficient with editing text on the console.  (With `nvim`, `emacs`, or whatever).
* Familiar with some supervisor. (We'll use `systemd`)
* Able to write code in some language. (We'll be using some simple Rust for our demos)
* Not afraid to kill processes.

Not any of these things? **You can still try,** but you will need to access significant supplementary materials.

## What's Inside?

* This guide.
* A copy of the `reveal.js` slides.
* A `terraform` script to provision a laboratory for you.
* A provisioning `bash` script for Ubuntu 18.04 that sets up all required tools.
* Demo programs to use in your exploration.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pingcap.gitbook.io/chaos-workshop/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
