This repository contains demo code for my talk on Istio.
To view the slides, run Go's present tool from the project folder and select istio-talk.slide
.
See the walk-through.
To use my demo tool, follow the setup instructions in the walk-through and then run startDemo.sh from the resiliency
folder.
See the walk-through.
To use my demo tool, follow the setup instructions in the walk-through and then run startDemo.sh from the trafficshifting
folder.
I've created a Vagrant version to make it easy to spin up an environment for running the demos. Pull this repository and then vagrant up
and vagrant ssh
. Then run the demo script from inside the box:
/vagrant/vagrant-demo.sh
This will start the present
tool on http://192.168.99.101:8080/ and the first demo (traffic shifting) on http://192.168.99.101:8081/. After showing the first demo, press return and the second demo (resiliency) will start on the same port. Press return again and the demo and present
should stop.
The Vagrant version also has the Istio tools available at:
- http://jaeger.192.168.99.101.xip.io/zipkin
- http://zipkin.192.168.99.101.xip.io/zipkin
- http://grafana.192.168.99.101.xip.io/
- http://servicegraph.192.168.99.101.xip.io/dotviz
And the demo pods can be reached directly at:
- http://topdog.192.168.99.101.xip.io/
- http://hurl.192.168.99.101.xip.io/
- http://webnull.192.168.99.101.xip.io/status
If you have Docker for Desktop, you can enable Kubernetes and then install Istio. You will also need to install Go, making sure it's on your path.
Install the Go tools as well:
go get golang.org/x/tools/cmd/present
git clone https://github.com/ancientlore/demon
cd demon && go install && cd -
rm -rf demon
The following script will set up the demos:
./docker/setup.sh
Then run demo.sh
to start the demo.
The Docker version also has the Istio tools available at:
- http://jaeger.127.0.0.1.xip.io/zipkin
- http://zipkin.127.0.0.1.xip.io/zipkin
- http://grafana.127.0.0.1.xip.io/
- http://servicegraph.127.0.0.1.xip.io/dotviz
And the demo pods can be reached directly at:
- http://topdog.127.0.0.1.xip.io/
- http://hurl.127.0.0.1.xip.io/
- http://webnull.127.0.0.1.xip.io/status
These demos use other utilities I've created:
- topdog, a demo application written in Go. Also see the topdog Docker image.
- webnull, a service that tosses away requests and graphs throughput. Also see the webnull Docker image.
- hurl, a cURL-like application designed to send many parallel HTTP requests to generate load. Also see the hURL Docker image.
- demon, a utility for showing the demos on one unified web page.