Hi folks,
Executive summary: it works!
- Iris works when run on the CoreOS host OS (not in a container)
- You have to run in a VPC. If you're not in a VPC, then assumptions Iris makes about seeds being in subnets aren't valid. I think this may be solvable, but I'd like to get Peter's opinion.
- Convergence time is awesome. I'm seeing around ~5 seconds.
- Docker containers can talk to the Iris relay and pass messages to processes on other CoreOS hosts in the same cluster (!!)
I will push a github repo with some scripts and notes if others want to try and repeat this test. I made a simple Go Iris client/server benchmark and packaged that as a docker image.
Some things that would be interesting to discuss:
(a) Do we want to support non-VPC EC2 deployments? The behavior I saw was pretty simple: the bootstrapper found the etcd nodes, but their IP addresses weren't in the host's subnet, so they were skipped.
Personally I don't think this is a huge deal. VPCs are free, and you should probably be using them anyhow.
(b) Do we want to support running Iris as a container?
This seems like a reasonable idea. I did write a user-data script that will install Iris as a binary on the host OS, and this works fine, but it would be nice to fully embrace the "container" concept if possible. The issue appears to be the random high ports that are used by the pastry code. I don't have a good understanding of why random ports are used.
(c) Do you need a wide open security group?
When I saw the random ports I just made the security group completely open between all nodes in the security group. This doesn't bother me that much, but I wonder if that's required.
But overall this is great stuff and I want to keep experimenting with it.
-- James