From 04dec2e196b5abfff536e49e07b92e611b3313a6 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Sun, 18 Sep 2016 16:20:51 -0700 Subject: [PATCH] Round of updates for Velocity --- docs/index.html | 145 +++++++++++++++++++++++++++++++------------- docs/swarm-mode.png | Bin 0 -> 44021 bytes 2 files changed, 102 insertions(+), 43 deletions(-) create mode 100644 docs/swarm-mode.png diff --git a/docs/index.html b/docs/index.html index 3c64c28b..e4686b08 100644 --- a/docs/index.html +++ b/docs/index.html @@ -99,14 +99,18 @@ Docker
Orchestration
Workshop --- -## Logistics +## Intros -- Hello! We're `jerome at docker dot com` and `aj at soulshake dot net` +- Hello! We are: - + AJ ([@s0ulshake](https://twitter.com/s0ulshake)) + Jerome ([@jpetazzo](https://twitter.com/jpetazzo)) + + Shawn ([@drizzt51](https://twitter.com/drizzt51)) + + Tiffany ([@tiffanyfayj](https://twitter.com/tiffanyfayj)) + +--- + +## Agenda + + +- The tutorial will run from 9am to 12:30pm + +- This will be fast-paced, but DON'T PANIC! + +- There will be a break at 10:30am (stop us if we don't!) + + *Rumor says that caffeinated beverages might be served in "Sutton Complex Foyer"* + - All the content is publicly available (slides, code samples, scripts) +- Live feedback, questions, help on + [Gitter](http://container.training/chat) + +- 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) + -- Live feedback, questions, help on - [Gitter](http://container.training/chat) - --- @@ -199,6 +214,7 @@ grep '^# ' index.html | grep -v '(unless it was scheduled on the current node) - Look up the `NODE` on which the container is running - (in the output of the `docker service ps` command) +
(in the output of the `docker service ps` command) .exercise[ @@ -1450,7 +1469,7 @@ We just have to adapt this to our application, which has 4 services! ] ---- +??? ## Using Docker Hub @@ -1484,7 +1503,7 @@ We just have to adapt this to our application, which has 4 services! ] ---- +??? ## Using Docker Trusted Registry @@ -1508,14 +1527,18 @@ If we wanted to use DTR, we would: - It will store images and layers to the local filesystem
(but you can add a config file to use S3, Swift, etc.) + + - Our strategy: publish the registry container on port 5000, -
and connect to it through `localhost:5000` on each node +
so that it's available through `localhost:5000` on each node --- @@ -1700,7 +1723,7 @@ Moreover, it would significantly alter the code path for `docker run`, even in c ] ---- +??? ## Wait for our application to be up @@ -1770,6 +1793,10 @@ Note: to "de-publish" a port, you would have to specify the container port. ] +You might have to wait a bit for the container to be up and running. + +Check its status with `docker service ps webui`. + --- ## Scaling the application @@ -1857,10 +1884,16 @@ class: title --- +## Troubleshooting overlay networks + + + - We want to run tools like `ab` or `httping` on the internal network - .warning[This will be very hackish] @@ -2004,7 +2037,7 @@ Current behavior for VIPs is to ping when there is a backend available on the sa - You change this with `docker service create --endpoint-mode [VIP|DNSRR]` ---- +??? ## Testing and benchmarking our service @@ -2028,7 +2061,7 @@ Current behavior for VIPs is to ping when there is a backend available on the sa Wait until the workers are stopped (check with `docker service ls`) before continuing. ---- +??? ## Benchmarking `rng` @@ -2048,7 +2081,7 @@ We will send 50 requests, but with various levels of concurrency. ] ---- +??? ## Benchmark results for `rng` @@ -2058,7 +2091,7 @@ We will send 50 requests, but with various levels of concurrency. - What about `hasher`? ---- +??? ## Benchmarking `hasher` @@ -2077,7 +2110,7 @@ First, we need to put the POST payload in a temporary file. ] ---- +??? ## Benchmarking `hasher` @@ -2097,7 +2130,7 @@ Once again, we will send 50 requests, with different levels of concurrency. ] ---- +??? ## Benchmark results for `hasher` @@ -2111,29 +2144,29 @@ Once again, we will send 50 requests, with different levels of concurrency. - It looks like `hasher` is better equiped to deal with concurrency than `rng` ---- +??? class: title Why? ---- +??? ## Why does everything take (at least) 100ms? --- +?? `rng` code: ![RNG code screenshot](delay-rng.png) --- +?? `hasher` code: ![HASHER code screenshot](delay-hasher.png) ---- +??? class: title @@ -2141,18 +2174,18 @@ But ... WHY?!? ---- +??? ## Why did we sprinkle this sample app with sleeps? - Deterministic performance
(regardless of instance speed, CPUs, I/O...) --- +?? - Actual code sleeps all the time anyway --- +?? - When your code makes a remote API call: @@ -2162,13 +2195,13 @@ WHY?!? - it processes the response. ---- +??? ## Why do `rng` and `hasher` behave differently? ![Equations on a blackboard](equations.png) --- +?? (Synchronous vs. asynchronous event processing) @@ -2186,7 +2219,7 @@ WHY?!? - ... update our service to use the new image ---- +??? ## But first... @@ -2463,7 +2496,7 @@ What we will do: - The only component that we will configure is Logstash -- We will accept log entries using the syslog protocol +- We will accept log entries using the GELF protocol - Log entries will be stored in ElasticSearch,
and displayed on Logstash's stdout for debugging @@ -2722,6 +2755,32 @@ After ~15 seconds, you should see the log messages in Kibana. --- +## Important afterword + +**This is not a "production-grade" setup.** + +It is just an educational example. We did setup a single +ElasticSearch instance and a single Logstash instance. + +In a production setup, you need an ElasticSearch cluster +(both for capacity and availability reasons). You also +need multiple Logstash instances. + +And if you want to withstand +bursts of logs, you need some kind of message queue: +Redis if you're cheap, Kafka is you want to make sure +that you don't drop messages on the floor. Good luck. + +--- + +class: title + +# Additional content + +## (Just in case we got *really strong* coffee at the break) + +--- + # Dealing with stateful services - First of all, you need to make sure that the data files are on a *volume* diff --git a/docs/swarm-mode.png b/docs/swarm-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..939bb9aaae18b4dbd7fefbfb8474cc97b3caf79d GIT binary patch literal 44021 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 InML4#0c;4_LjV8( literal 0 HcmV?d00001