diff --git a/docs/index.html b/docs/index.html
index e4686b08..acff56ec 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -105,7 +105,7 @@ Docker
Orchestration
Workshop
AJ ([@s0ulshake](https://twitter.com/s0ulshake))
- Jerome ([@jpetazzo](https://twitter.com/jpetazzo))
+ Jérôme ([@jpetazzo](https://twitter.com/jpetazzo))
Shawn ([@drizzt51](https://twitter.com/drizzt51))
@@ -199,6 +199,8 @@ grep '^# ' index.html | grep -v '
(more on next slide)
- *Services* managed with a *declarative API*
(implementing *desired state* and *reconciliation loop*)
@@ -2390,7 +2393,10 @@ By default, SwarmKit does a rolling upgrade, one instance at a time.
]
-(Remove `-v` if you don't like verbose things!)
+Remove `-v` if you don't like verbose things.
+
+Shameless promo: for more Go and Docker love, check
+[this blog post](http://jpetazzo.github.io/2016/09/09/go-docker/)!
---
@@ -2554,7 +2560,7 @@ What we will do:
- We could author a custom image bundling this configuration
-- We can also pass the configuration on the command line
+- We can also pass the [configuration](https://github.com/jpetazzo/orchestration-workshop/blob/master/elk/logstash.conf) on the command line
.exercise[
@@ -2912,13 +2918,17 @@ class: title
redis get foo
```
-- Adding a constraint caused the service to be restarted, *even if it didn't have to move*:
+- Adding a constraint caused the service to be redeployed:
```bash
docker service ps stateful
```
]
+Note: even if the constraint ends up being a no-op (i.e. not
+moving the service), the service gets redeployed.
+This ensures consistent behavior.
+
---
## Setting the key again
@@ -2941,117 +2951,67 @@ class: title
---
-## Making sure that Redis correctly persists data
-
-- Before going further, we need to make sure that Redis correctly saves to disk
-
-.exercise[
-
-- Restart the container:
- ```bash
- CID=$(docker ps -q --filter label=com.docker.swarm.service.name=stateful)
- docker restart $CID
- ```
-
-- Check the `foo` key:
- ```bash
- redis get foo
- ```
-
-]
-
---
-
-(╯°□°)╯︵ ┻━┻)
-
----
-
-## Instructing Redis to save data on restarts
-
-- The default configuration that comes with the `redis` image doesn't save on shutdown
-
- (See [this issue](https://github.com/docker-library/redis/issues/4) for some hints about what's happening)
-
-- Let's add an extra flag to enable AOF persistence
-
-.exercise[
-
-- Add `--appendonly yes` to Redis starting flags:
- ```bash
- docker service update stateful --args "--appendonly yes"
- ```
-
-]
-
-Note: we can achieve the same result by enabling RDB snapshots instead.
-
-See http://redis.io/topics/persistence for more details about Redis persistence.
-
----
-
-## Checking persistence across container restarts
-
-.exercise[
-
-- Set the `foo` key once again:
- ```bash
- redis set foo bar
- ```
-
-- Restart the container:
- ```bash
- CID=$(docker ps -q --filter label=com.docker.swarm.service.name=stateful)
- docker restart $CID
- ```
-
-- Check that `foo` is still there:
- ```bash
- redis get foo
- ```
-
-]
-
----
-
## Service updates cause containers to be replaced
- Let's try to make a trivial update to the service and see what happens
.exercise[
+- Set a memory limit to our Redis service:
+ ```bash
+ docker service update stateful --limit-memory 100M
+ ```
+
+- Try to get the `foo` key one more time:
+ ```bash
+ redis get foo
+ ```
+
+]
+
+The key is blank again!
+
+---
+
+## Service volumes are ephemeral by default
+
+- Let's highlight what's going on with volumes!
+
+.exercise[
+
- Check the current list of volumes:
```bash
docker volume ls
```
-- Set a memory limit to our Redis service:
+- Carry a minor update to our Redis service:
```bash
- docker service update stateful --limit-memory 100M
+ docker service update stateful --limit-memory 200M
```
]
-Note: all changes trigger the creation of a new task, and therefore a replacement of the existing container;
+Again: all changes trigger the creation of a new task, and therefore a replacement of the existing container;
even when it is not strictly technically necessary.
---
-## Services volumes are ephemeral
+## The data is gone again
- What happened to our data?
.exercise[
-- The `foo` key is (once again) gone:
- ```bash
- redis get foo
- ```
-
-- The volume has been recycled, too:
+- The list of volumes is slightly different:
```bash
docker volume ls
```
+- And as you can expect, the `foo` key is gone:
+ ```bash
+ redis get foo
+ ```
+
]
---
@@ -3088,9 +3048,9 @@ Note: the `local` volume driver automatically creates volumes.
redis set foo barbar
```
-- Update the service with another trivial change:
+- Update the service with yet another trivial change:
```bash
- docker service update stateful --limit-memory 200M
+ docker service update stateful --limit-memory 300M
```
- Check that `foo` is still set:
@@ -3104,7 +3064,7 @@ Note: the `local` volume driver automatically creates volumes.
## Recap
-- The service must commit its state to disk when being shutdown
+- The service must commit its state to disk when being shutdown.red[*]
(Shutdown = being sent a `TERM` signal)
@@ -3116,6 +3076,9 @@ Note: the `local` volume driver automatically creates volumes.
(And losing that node means losing the data, unless there are other backups)
+.footnote[
.red[*]Until recently, the Redis image didn't automatically
+persist data. Beware!]
+
---
## Cleaning up
@@ -3505,7 +3468,15 @@ class: title
# Thanks!
Questions?
+
+
+## AJ ([@s0ulshake](https://twitter.com/s0ulshake)) — Jérôme ([@jpetazzo](https://twitter.com/jpetazzo))
Shawn ([@drizzt51](https://twitter.com/drizzt51)) — Tiffany ([@tiffanyfayj](https://twitter.com/tiffanyfayj))
+
+### Reminder 1: lunch will be in "Rhinelander", same floor as the tutorials.
+
+### Reminder 2: Shawn is doing a [4-hour version of this](http://sched.co/8Gfp) at #cdatx ([Container Days Austin](http://www.containerdaysaustin.com/2016/), October 14-15)