Multiple DNS entries for the hostname (i.e. multiple A/AAAA records) - most clients should re-try if one fails to load at all, but its not guaranteed behaviour, particularly if its not a browser.
Each A/AAAA record points to a virtual IP that is used by e.g. keepalived as a 'floating' IP between 2+ servers in that specific DC. Each A/AAAA record should point to a set of servers in a different DC, and potentially different provider/host too.
Each server that has this floating IP is a HAProxy node, which forwards requests to the various backend instances - normally this would balance the load, in case of issues it would become failover.