Blockade 是用于测试分布式应用程序中的网络故障和分区的实用程序,使用 Docker 容器来运行应用程序进程,并从主机系统管理网络以创建各种故障场景。
Blockade 的常见用途是运行分布式应用程序(如数据库或集群)并创建网络分区,然后观察节点的行为。例如,在主节点选择系统中,可以将主节点与其他节点分开,确保该主节点关闭,并选择另一个节点成为新的主节点。
特点
- 一种灵活的 YAML 格式,用于描述应用程序中的容器
- 使用命名链接支持容器之间的依赖关系
- 用于管理和查询封锁状态的 CLI 工具
- 当作为守护程序运行时,可以使用简单的 REST API 配置
- 可在容器之间创建任意分区
- 为容器提供与其他容器的不稳定网络连接(丢弃数据包)
- 为容器提供与其他容器的慢速网络连接(延迟)
- 在分区或网络故障控制下,容器可以与主机系统自由通信——仍然可以获取日志并监控应用程序。
依赖
- docker (>= 1.4.0 :docker-py)
- iproute2 工具 (
ip
/tc
)
评论