From an infrastructure POV, this a classic problem that was faced by cloud developers in the early 2000.