Por que a Heroku alerta contra nomes de domínio "nus"?

65

Passei por esta página nos documentos do Heroku ...

Os domínios nus, também chamados de domínios bare ou apex, são configurados no DNS por meio de registros A e têm sérias implicações de disponibilidade quando usados ​​em ambientes altamente disponíveis, como grandes datacenters locais, serviços de infraestrutura em nuvem e plataformas como Heroku.

Para máxima escalabilidade e resiliência, os aplicativos devem evitar domínios simples e, em vez disso, confiar apenas em nomes de host baseados em subdomínios.

Alguém aqui fala Enterprise? Quais são as "implicações de disponibilidade" sobre as quais estão alertando?

(Percebo que http://stackoverflow.com não funciona, por isso, evidentemente, existem filosofias alternativas viáveis ​​sobre esse assunto.)

Agvorth
fonte
24
Eu corro www.yes-www.org e aprovo esta pergunta.
Michael Hampton
3
Também existe outra preocupação: ativos estáticos não podem ser exibidos sem cookies anexados (você não pode adicionar cookies APENAS para o domínio raiz; os cookies devem ser para um subdomínio ou para .domain.com(curinga, usado se o domínio raiz)). Você pode contornar isso servindo ativos de um domínio diferente (o SE usa sstatic.net ) para evitar o subdomínio hediondo www.
22612 Tom Tomhenhenal
2
@MichaelHampton, por que não podemos deixar comentários em www.yes-www.org? Por que você não menciona ALIAS(ou ANAMEregistra) na sua página?
Augustin Riedinger 27/02
Esta pergunta tem 6 anos e principalmente sobre limitações em software. Alguma atualização?
Michael Cole

Respostas:

57

O que eles estão falando é que, quando você usa a CNAMEpara apontar para os serviços deles (o que é possível apenas no subdomínio, não na raiz da zona - ele não pode coexistir com os registros SOAe NSnecessários na raiz da sua zona), eles podem alterar seus próprios registros DNS para solucionar algum tipo de problema de disponibilidade.

Com uma raiz de zona, você deve usar um Aregistro para apontar para um endereço IP específico para o serviço. Se eles tiverem um problema com o roteamento ou algum tipo de negação de serviço em relação a esse endereço específico, não poderão atualizar o A registro da sua zona para apontar para um IP diferente em tempo real; eles podem atualizar seus próprios, no entanto, e é isso que os CNAMEpermite fazer.

Isso não se aplica ao Stack Exchange porque eles não estão usando a plataforma de terceiros; eles responderão a um problema de disponibilidade; portanto, se é um CNAMEou Anão, não faz diferença para eles.

Shane Madden
fonte
11
E quanto a ALIAS(ou ANAME) registros?
Augustin Riedinger 27/02
11
@AugustinRiedinger Na verdade, esses não são um tipo de registro DNS - são uma configuração em que determinados provedores de DNS lidam com a abstração de verificar dinamicamente o Aregistro atual do destino e, em seguida, atendê-lo novamente em resposta a uma consulta para esse nome. Eles são projetados essencialmente para resolver esse problema exato, portanto são definitivamente apropriados para esse caso.
Shane Madden
11
Então, se os usarmos, o aviso de escalabilidade do heroku não será mais verdadeiro, certo? Ou existe alguma desvantagem técnica em usá-los?
Augustin Riedinger 27/02
2
@AugustinRiedinger Correto. A desvantagem técnica está na dificuldade de implementação, pois um servidor DNS "padrão" não pode realizar esse tipo de coisa sem personalização. Desde que a implementação do seu provedor seja estável, ela deve ser tão boa quanto uma CNAMEconfiguração em um subdomínio.
Shane Madden
13

Como complemento à resposta do @ ShaneMadden, uma solução alternativa é a plataforma de terceiros também gerenciar sua zona DNS. Por exemplo, se você usar o serviço Elastic Load Balancer da AWS e o serviço DNS do Route 53 , poderá apontar com segurança o ápice da zona em uma instância ELB usando seus registros de alias personalizados , o que lhes permitirá atualizar sua zona DNS em resposta a problemas de disponibilidade.

No entanto, este é um argumento contra o conceito no-www , pois www.example.compode ter um CNAMEregistro.

mgorven
fonte