This project provides a useful example of how to deploy an Akka cluster into docker.
Akka provides sophisticated testing tools. It could be argued that the test environment is not the same as a real deployment, and hence do not necessarily reflect the true behavior. This would be particularly true for code that manages network failures.
blockade provides a simple mechanism to run several docker instances and control their
network connectivity. The above project can be run under blockade, using the following blockade.yml
file
containers:
c1:
image: clustering
ports: [10000]
c2:
image: clustering
links: {"c1":"seed"}
c3:
image: clustering
links: {"c1":"seed"}
A noisy network connection to c2 could then be simulated by blockade flaky c2
, or a partition by blockade partition c1,c2 c3
.