As the router allows every service to communicate with each other, we want to optimise the procedure to minimise as much as possible the downtime.
Immutable artefact
Each router VM is deployed once, not upgraded. When we want to update:
- Spawn a new VM
- Validate it
- Move the IP and tunnels on it
- Destroy the previous one
Blue/green deployment
Maintain two VMs, one "blue", one "green".
We start with current router-001 as blue.
Active router is blue.
We create a new VM router-002 as green.
Active router is still blue.
Each machines is connected both to green and blue:
- if blue/green has a dedicated IP, each machine needs to have routes to both, and we update the route for 172.27.27.0/24
- we can also have a router virtual IP and the active server got it, the other release it
Maintenance occurs on green.
When maintenance is done, we promote green as active, ie we update the routes or green takes the IP.
Active router is green.
Next maintenance will occur on blue this time.