Tell HN: Don't put your status page on the same domain as your app
If your status page returns a 502 at the same time that your app returns a 502, you might be in trouble. https://status.discord.com/ really should be on a different domain. Of course the naked 502 from CloudFlare is enough to tell me that there is an outage, but overall this is probably not the ideal way of doing things. Domains are cheap. Get a status page with a different one (or a hosted service).
59 comments
[ 6.2 ms ] story [ 132 ms ] threadIMHO it should be a static page using Hugo, Jekyll or roll your own if you really have to.
None of this precludes you from using the same domain, though you'd want to use a subdomain, for instance status.product.com
The thing being pointed out in the OP is that, while you can't avoid all dependencies, you can avoid having any shared dependencies (other than core internet infrastructure) between your status page and the service whose status it's reporting on. That way, outage risk will not be correlated between the two, which is generally good enough, since almost no one cares about your status page when your actual service is not experiencing an outage. One effective way to do this is with a service like status.io that specifically hosts status pages and specializes in having very high uptime for just that one kind of page.
If you use the same domain for your status page as for your main service, then that may mean that an outage in your application server, application database, etc., won't affect your status page, but the two will still share a dependency on your load balancer (i.e., whatever your A records are pointing directly at), so if anything goes wrong there then your status page will go down with your main service. If you use a subdomain then there won't necessarily be a shared dependency on the load balancer, but there will be one on the DNS nameservers. The only way to avoid all shared dependencies is to use an entirely separate domain.
I don't know if Discord's problem that the OP is talking about had anything to do with DNS, but I think that's been a source of outages for them in the past, in which case a separate domain is the solution.
https://blog.torproject.org/check-status-of-tor-services
(The SaaS could provide numerous different ways to push status to your branded `.status` domain page, plus optional watchdog/heartbeat. And the implementation could be be resilient against even a major cloud provider outage.)
Using dotStatus could be the no-brainer go-to for companies that know they should have an independent status page, or are required to have it, and don't want to spend a lot of engineering resources doing it right.
It'd be easier, and cheaper eventually, to have it on a properly sharded database, maybe with a few different DNS and server front ends.
not the "Right tool for the job"
Short version: The ICANN would need to do a new round of gTLD registrations. This is unannounced but rumored to begin some time this year.
Then, a corporation would need to apply for the gTLD string. This application cost $185,000, non-refundable, in 2012 [1]. Smart money is a steeper fee.
Next, they would actually need to be approved for the gTLD. This requires a company with enough funding to pass the ICANN's audit, and enough technical chops to maintain name servers with enough bandwidth and availability to serve the traffic generated by the new gTLD [2]. There is also a criminal background check and anti-cybersquatting check [3].
Finally, they would have to win in a contention process that involves any other registrar applying for the same string. This may be settled by an auction [4].
The buzz around the 2012 process is that it was generally a waste of time and money - many of the gTLDs far underperformed expectations by the registrars. Further, many of the corporate-owned gTLDs are unused (such as the 76! owned by Amazon)[5].
There were a few winners - the ICANN themselves made a hefty sum of money - some $212 million left over in 2020 [6]. Some other companies figured out the right way to "game" the contention process and intentionally lose the auction for the string [7]. Finally, a company named "Donuts, Inc", won some 270 gTLDs under various subsidiary companies. With such a massive portfolio, they were able to capture a few big winners (such as .guru) [8].
[1] https://newgtlds.icann.org/en/applicants/global-support/faqs... point 2.2
[2] https://www.icann.org/en/system/files/files/gtld-drd-ui-10se...
[3] https://newgtlds.icann.org/en/applicants/agb/guidebook-full-... module 2
[4] https://newgtlds.icann.org/en/applicants/agb/guidebook-full-... module 1.1.2.10
[5] https://domainnamewire.com/2019/02/28/new-tlds-five-years-in...
[6] https://www.icann.org/en/system/files/files/annual-report-20... page 33
[7] https://www.circleid.com/posts/20130603_icann_auctions_or_pr...
[8] https://en.wikipedia.org/wiki/Donuts_(company)
> In January 2021, Donuts announced that Ethos Capital would be acquiring a controlling interest in the company.[0]
That would be the same Ethos Capital that tried to take control of .org.[1][2]
[0] https://donuts.news/ethos-capital-to-acquire-controlling-int...
[1] https://www.nytimes.com/2020/01/07/technology/dot-org-privat...
[2] https://www.eff.org/deeplinks/2020/04/victory-icann-rejects-...
Given that the ICANN process is potentially long, the dotStatus software, infrastructure, and business-ing can be done in parallel.
And, have a backup/iterim plan of using a different domain name scheme. (Though `.status` would be awesome, and perhaps even -- dare I say it -- unicorn-scented?)
Whoever gets the funding for the dotStatus startup should bring on all the rest of us as advisors. :)
Disclosure: not a Discord user
And yes their status page was useless during this. Yes I have seen this happen elsewhere.
[1] - https://downdetector.com/status/discord/
Sorry, I didn't follow. How is a subdomain with an A record any different from a separate domain?
You should advertise in Yellow Pages!
There is a tradeoff, of course. Your automated configuration management system can dutifully push the misconfiguration to both domains. You might not ever configure the second domain correctly, because it's not like customers are visiting and reporting back "hey your status page is broken".
In my mind, I'm not sure how useful this is in practice, however. I would never think to look for status updates at anything other than status.myapp.com. I'm not sure I'd make the leap to myappstatus.com, and I'm not sure it's going to rank particularly high in search engines. I'd probably look at Twitter second. (I'm not even sure if people routinely check status pages. If you visited my personal website, jrock.us, and it didn't load, would you check status.jrock.us? That actually exists, but I bet that nobody has ever visited it.)
That happened to notion (notion.so) for example.
The Kubernetes community loves this saying because pairing something like nodejs (which doesn't do DNS caching) with a Docker image with no local DNS cache/resolver and a Kubernetes cluster that doesn't usually come with a highly scaled DNS server out of the box often leads to DNS failing more often than anticipated. Also kube-dns, the now deprecated default DNS, was extremely shit.
I have a pcap file captured on a kubernetes node with 60000 DNS packets in a 0.2s frame. They're all queries for s3.amazonaws.com.
What most companies need is a solid status page that's hosted in very different infrastructure... that is very static or can scale very fast. Often the do the first... but not the second. If something like discord is down and 10 million daily-active-users all try and check the status page... they'll just DDOS that out of existence as well. Again, if not well built
Subdomain can be hosted on a different server. You don't need another domain to do that.
You simple point it somewhere else, a completely different infrastructure.
https://statuspal.io/blog/2021-04-09-learning-from-facebook-...