I have been using ZoneEdit to manage my DNS. This has been generally fine except I did have a half our outage where two of their DNS servers were down causing my site to be inaccessible. What is the best way to manage this? I have considered having an alternative domain, possibly with DNS managed by a different company, and some kind of failover that redirects.
There are a few considerations.
DNS is built to tolerate some level of failure for the primary name server. When a user makes a DNS query, a positive hit is usually cached by the provider for a set amount of time (usually specified in the zone configuration for a particular domain). Therefore, after the first hit, subsequent hits do not need to hit the authoritative name servers if the subsequent query is within the cached time frame. So, if the authoritative name servers become unavailable for a short period of time, users may not notice this IF the user DNS request hits a name server that has cached the entry. Fundamentally, if a name server is down for a few minutes (or perhaps an hour), the significance of impact may be low. However, this assumes that the dns entry is cached (i.e. generally for higher traffic sites).
However, most enterprises minimize the risk of DNS downtime by using multiple providers in different network segments. Run a SOA query for GS.com (Goldman Sachs) and you'll see they list four name servers, two hosted by ATT and two by UUnet. Each DNS server is in a separate network to minimize the risk of a network failure taking down DNS services.
ZoneEdit appears to provide Tertiary DNS service as an add-on to their managed DNS service. Looking at ZoneEdit's name servers, they list 5 name servers on different networks for zoneedit.com. I'd figure ZoneEdit operates a redundant DNS infrastructure for redundancy. This is probably the simplest approach to adding redundancy for name server resolution for your domain name.
You can use two providers. One provider will host the master (editable) copy while a second provider (dyndns, easydns, etc) offers backup services (i.e. records are replicated to their name servers). For this architecture to work, you have to make sure both vendors' systems talk to each other (not all dns service providers will let you do a zone transfer to an external party) and then update your domain record to reflect the new name server configuration. The last part is important because if you don't update the domain record, your using additional providers may not add any redundancy to your domain name.
If your provider is failing, find a new provider.
We use EasyDNS. While they are excellent, they are not foolproof. One of my future projects will be to set up our own DNS servers, then purchase secondary service from a couple of vendors (perhaps even ZoneEdit and EasyDNS) so that in case of failure, SOMEbody will at least be up.
If your main dns provider can be configured to allow zone transfers there are several providers that offer secondary dns, where it updates from the main provider automatically. All you have to do is setup the syncing and add them at your registrar.
But really dns is supposed to be setup for geographical diversity so it will withstand almost and disaster - even entire datacenters losing connectivity or cities being destroyed. If your provider has much downtime its probably time to look for a better provider.