Criar uma ligação híbrida do Azure Relay

Concluído

O Azure Relay proporciona-lhe uma forma de ligar serviços através dos limites da rede e de firewalls, sem ter de reconfigurar a configuração de segurança.

Quer mover todos os sistemas da sua organização financeira para a cloud. No entanto, os regulamentos na sua jurisdição impedem-no de migrar o seu serviço de verificação de crédito. Este serviço tem de permanecer no local para efeitos de proteção de dados. Precisa de uma forma de ligar os serviços cloud ao serviço de verificação de crédito. Idealmente, prefere não abrir portas adicionais na firewall no local ou criar uma rede privada virtual.

Nesta unidade, irá aprender como o Azure Relay pode fornecer esta ligação.

O que é o Azure Relay?

Muitas organizações estão a migrar os sistemas para a cloud. Este processo é muitas vezes realizado componente a componente, como uma abordagem faseada. Esta abordagem limita o impacto dos problemas que podem surgir durante a migração, mas tem os seus próprios desafios. Por exemplo, um componente da cloud recém-migrado precisa de comunicar frequentemente com outro componente que permanece no local, mas está protegido por uma firewall ou outros sistemas de segurança.

Noutros casos, é possível que um serviço no local não possa ser migrado para a cloud. Por exemplo, a sua jurisdição pode impor requisitos de segurança adicionais aos sistemas financeiros, que não consegue cumprir num sistema de cloud.

Em situações como esta, é necessário que os serviços no local sejam endereçáveis a partir de clientes da Internet ou componentes da cloud. Pode abrir uma porta de firewall para permitir esta comunicação, mas essa abordagem pode ter consequências não intencionais. Por exemplo, pode expor acidentalmente serviços além dos que tinha em mente. Em organizações de grandes dimensões, pode não ser responsável pela firewall. Uma alteração ao regime de segurança pode exigir uma autorização de alto nível que demora tempo a obter.

O Azure Relay aborda este tipo de problemas ao fornecer um ponto na cloud onde é possível ligar os componentes no local e os baseados na Internet. Como o sistema no local inicia esta ligação, não precisa de abrir nenhuma porta de firewall nem reconfigurar a rede no local de qualquer forma.

Ligações híbridas e ligações Windows Communication Foundation

O Azure Relay estabelece uma ligação entre dois componentes, como uma função do Azure e um serviço no local. Quando a ligação é estabelecida, podem ser trocados pedidos e respostas através do reencaminhamento, como se existisse uma ligação direta. Pode fazer dois tipos de ligações no Azure Relay:

  • Ligações híbridas: as ligações híbridas são fluxos bidirecionais de dados binários que utilizam as normas WebSocket ou HTTP. Como estas ligações são baseadas em normas abertas, pode utilizá-las a partir de praticamente qualquer linguagem ou estrutura de codificação. Por exemplo, pode utilizá-las para ligar um servidor Node.js no local a uma tarefa Web do Azure escrita em C# e ao .NET Framework.
  • Ligações WCF: alguns programadores utilizam o Windows Communication Foundation (WCF) para ativar chamadas de procedimento remoto. O WCF era utilizado frequentemente para comunicações de rede com versões mais antigas do .NET Framework. O WCF é agora considerado um protocolo antigo, mas continua a ser comum em aplicações mais antigas. Como o Azure Relay suporta o WCF, pode utilizá-lo com componentes do .NET Framework existentes que utilizam esta norma, sem ter de os reescrever.

Utilize ligações híbridas a menos que suporte os componentes do .NET Framework existentes que utilizam o WCF.

Ligações WebSocket e HTTP

As ligações híbridas podem utilizar um destes protocolos:

  • HTTP: este protocolo sem estado é constituído por pedidos, como GET e POST, e é utilizado para transferir páginas Web entre servidores Web e browsers. Normalmente, o HTTP utiliza a porta TCP 80 ou 443 quando o pedido está protegido por SSL (Secure Sockets Layer). Este protocolo é amplamente suportado e fácil de codificar. No entanto, como não tem um estado, é menos eficiente para comunicações persistentes.
  • WebSocket: este protocolo cria um canal de comunicação duplex completo através da porta 80 ou 443, sendo mais eficiente do que o protocolo HTTP sem estado. Uma ligação WebSocket é eficiente sobretudo quando a comunicação consiste em muitas mensagens e não apenas num único pedido e resposta.

Neste módulo, como o processo é um pedido simples de verificação de crédito, seguido de uma única resposta, irá utilizar uma ligação híbrida e o protocolo HTTP.

Como funciona o Azure Relay

Como os componentes alojados na cloud e no local iniciam a ligação ao Azure Relay, as firewalls no local não intervêm. Quando a ligação é estabelecida, as comunicações podem ser enviadas em ambas as direções.

O seguinte diagrama mostra como é feita a ligação:

Como a Azure Relay troca mensagens.

  1. Um serviço de escuta pede uma ligação ao Azure Relay. O pedido é enviado para um gateway de reencaminhamento pelo Balanceador de Carga do Azure.
  2. O gateway cria um reencaminhamento do Azure no arquivo de gateways. Neste momento, o serviço de escuta está pronto para receber mensagens.
  3. Um remetente pede uma ligação, que pode ser recebida por um gateway diferente.
  4. O gateway obtém as informações de reencaminhamento no arquivo de gateways.
  5. O gateway do remetente envia o pedido de ligação para o gateway do serviço de escuta.
  6. O gateway do serviço de escuta reencaminha o pedido de ligação para o serviço de escuta. Este pedido inclui a identidade do gateway do remetente.
  7. O serviço de escuta faz uma ligação ao gateway do remetente. Neste momento, o remetente e o serviço de escuta podem trocar mensagens.
  8. O gateway do remetente reencaminha as mensagens do serviço de escuta para o remetente.
  9. O gateway do remetente também reencaminha as mensagens do remetente para o serviço de escuta.

Como criar um reencaminhamento

Para criar um reencaminhamento, precisa de um espaço de nomes exclusivo no domínio servicebus.windows.net. Também especifica uma subscrição, o grupo de recursos e a localização do reencaminhamento, que devem estar perto da maioria dos clientes.

Para controlar o que os clientes podem fazer quando se ligam, utilize políticas de acesso partilhado. Utiliza estas políticas para permitir se os clientes podem enviar ou ler mensagens a partir do reencaminhamento. Cada política de acesso partilhado tem chaves primárias e secundárias. Para ligar ao reencaminhamento, cada cliente tem de fornecer uma destas chaves.

Por fim, deve criar uma ligação no espaço de nomes. Pode ser uma ligação híbrida ou uma ligação WCF.