Merge pull request #222 from basecamp/deploy-groups

Allow booting containers in groups for rolling restarts
This commit is contained in:
David Heinemeier Hansson
2023-05-02 13:14:32 +02:00
committed by GitHub
9 changed files with 121 additions and 6 deletions

View File

@@ -855,6 +855,24 @@ mrsk lock acquire -m "Doing maintanence"
mrsk lock release
```
## Rolling deployments
When deploying to large numbers of hosts, you might prefer not to restart your services on every host at the same time.
MRSK's default is to boot new containers on all hosts in parallel. But you can control this by configuring `boot/limit` and `boot/wait` as options:
```yaml
service: myservice
boot:
limit: 10 # Can also specify as a percentage of total hosts, such as "25%"
wait: 2
```
When `limit` is specified, containers will be booted on, at most, `limit` hosts at once. MRSK will pause for `wait` seconds between batches.
These settings only apply when booting containers (using `mrsk deploy`, or `mrsk app boot`). For other commands, MRSK continues to run commands in parallel across all hosts.
## Stage of development
This is beta software. Commands may still move around. But we're live in production at [37signals](https://37signals.com).