Rede para o Engenheiro de Software: Descoberta de Serviço

Rosemary Wang Blocked Desbloquear Seguir Seguindo 9 de janeiro

Como operador de token entre desenvolvedores com um pouco de experiência em rede, recebo muitos pedidos de desenvolvedores que soam um pouco como:

Oi! Você sabe um pouco sobre networking, certo? O que significa? Você consegue ler isso e me ajudar a entender?

Networking é um campo intrigante com siglas fantásticas que rivalizam com o nosso moderno vocabulário de texto e funciona como mágica. No entanto, para o engenheiro de software, nem sempre é claro por que a rede é importante e como isso afeta um aplicativo. Assumimos que quando nosso aplicativo envia uma solicitação GET para outro aplicativo, apenas recebemos uma resposta. Mas sob o capô, por que isso importa? Quais termos simples devemos conhecer para nos comunicar sobre a rede de aplicativos?

Esta não é uma visão geral do modelo de referência OSI ou das camadas de rede. Não se destina a treinar ninguém para uma certificação de rede, ajudar a configurar um comutador ou descrever todos os detalhes sobre redes definidas por software ou contêineres. Não ajudará a responder à pergunta da entrevista onipresente: “ O que acontece quando você digita uma URL no navegador e pressiona enter? ”(Veja o link para a resposta).

O que vou tentar cobrir são:

  • Conceitos de rede em que nos deparamos quando implantamos um aplicativo
  • Como isso afeta nosso aplicativo
  • Os equivalentes de tecnologia física, definida por software e contêiner.

Quando comecei esta história, percebi que cada domínio de rede precisa ser dividido em si mesmo. O que eu considero os três domínios da rede são:

  1. Conectividade (clique no link para a primeira parte): Como conectamos aplicativos
  2. Política de Rede (clique no link para a segunda parte): Como podemos impedir que os aplicativos se comuniquem
  3. Descoberta de serviços: como permitimos que os aplicativos sejam resolvidos facilmente