Netflix/asgard — pull request #517 by joesondow (2014-03-24 19:55:15+00:00)
Title: ASGARD-1188 - In-memory task interactions across clustered Asgard instances

To make it possible to deploy a new Asgard machine without waiting for the running task count to drop to zero, Asgard's running task list and task detail screen (with Ajax updating of fields) need to pull from a combination of the local Asgard instance and all other Asgard instances in the same cluster.

For local testing, it would also be helpful to be able to specify a configured list of port numbers for the multiple Asgard instances that could be running on the local workstation.

This change is part of the solution to enable us to deploy Asgard whenever we want whether it's in use or not. If we don't do this, then instead we would need a very complicated deployment script that reimplements some of the unfortunate concepts in the old data center deployment script.

We have data center oriented deploy scripts and traffic switching functionality for safely deploying Asgard while it's still stateful, and while people are still using it, without any downtime. Because Asgard is still stateful but still needs to be available during deployment time, we need to create new functionality to create new ASGs and switch traffic intelligently in the cloud using ASGs and ELBs at the right moment (when in-memory task count reaches zero) rather than sending SSH messages to the data center Citrix load balancer to switch traffic.