Microsoft Azure RemoteApp

Recentemente a Microsoft anunciou o lançamento deste serviço, chamado de RemoteApp.

Introdução ao RemoteApp

O RemoteApp é um serviço para permitir a execução de aplicações instaladas no Azure sejam executadas em máquinas Windows, Mac, iPad, iPhone e Android.

É a mesma coisa que o Remote Desktop Services (RDS) do Windows Server 2012?

Basicamente sim na utilização pelo usuário final, mas difere no funcionamento comparado ao Remote Desktop Services disponivel no Windows Server 2012.

No RDS publicamos as aplicações nos servidores Windows e definimos os atalhos destas aplicações baseadas no farm de servidores RDS que foram criados. É baseado nas aplicações que rodam no servidor, criando instâncias das aplicações. Só é possivel publicar aplicações que estejam instaladas em todo o farm.

No Azure RemoteApp fazemos o upload de uma maquina virtual criada no Hyper-V para o Azure e o sistema apresenta as aplicações disponiveis nesta VM para serem oferecidas ao cliente. As instâncias que o usuário funcionam no modelo de auto-provisionamento, onde a VM é criada conforme a necessidade de novas execuções. Alem disso, cada VM pode conter diferentes aplicações e o Azure é o responsável por iniciar a VM correspondente aquela aplicação solicitada pelo usuário.

Criando Serviço RemoteApp

Como o RemoteApp ainda é Preview, é necessário solicitar acesso a ele pelo portal do Azure, que pode demorar até uma semana para ser concedido. Após receber o email liberando o uso, podemos ver o serviço no painel.

Importante lembrar que no periodo de Preview o uso é gratuito, mas após a disponibilização pública ou GA (Global Availability) passa a ter um custo utilizar este serviço.

No painel do Microsoft Azure será possivel ver o RemoteApp e criar serviços:

RemoteApp (1)

Para criar o serviço, basta utilizar o botão “New” do Azure e criar uma instância. No meu exemplo utilizei a VM já padronizada com Office 2013 que o Azure dispõe como padrão, mas veja que no menu do serviço acima temos a opção “Template Images” onde podemos colocar as nossas aplicações customizadas, bastando utilizar o Windows Server 2012 R2 com SysPrep.

Após criar a instância do serviço, o passo seguinte é definirmos os acessos. Se o seu ambiente possui o Azure AD poderá utilizar os usuários do Dominio, se não houver a integração podemos usar diretamente as Microsoft Accounts como o exemplo abaixo:

RemoteApp (2)

Após definir o acesso e criar o serviço definimos quais aplicações serão disponibilizadas. Esse processo pode ser feito apresentando as aplicações pelo caminho na VM ou pelo Menu Iniciar, como o exemplo abaixo:

RemoteApp (3)

RemoteApp (4)

Terminado isso, as aplicações estão publicadas e já é possivel abrir com o cliente RDP especifico do Azure RemoteApp.

Utilizando as Aplicações no Windows

Entre no site https://www.remoteapp.windowsazure.com e instalar o cliente RDP da Microsoft, como pode ser visto abaixo:

RemoteApp (5)

Ao instalar o cliente já podemos ver as aplicações publicadas e utilizá-las, o que é muito fácil e rápido uma vez que está vinculado ao seu usuário no RemoteApp:

RemoteApp (6)

RemoteApp (7)

Veja no exemplo acima que o Excel tem o ícone com o simbolo do RDS, indicando que se trata de uma aplicação remota. Mas para o usuário, nada muda e toda a execução é transparente.

Utilizando o Azure RemoteApp no iPad

O passo seguinte é abrir em um dispositivo não-Windows. Utilizei neste caso o iPad.

Para iniciar bastou entrar no site e pedir para instalar o cliente RDP que automaticamente abriu a Apple Store:

iPad (1)iPad (2)

Ao abrir o cliente Microsoft RDP no iPad utilize o “Add Microsoft RemoteApp” que já está disponivel nesta versão do cliente para incluir o Microsoft Account vinculado no RemoteApp, digitar os dados de acesso e aceitar o invite apresentado:

iPad (3)iPad (4)

Automaticamente as aplicações publicadas já estão disponiveis para uso, de forma muito prática:

iPad (5)

Ao clicar na aplicação desejada o cliente RDP irá fazer o login no Azure e instanciar a aplicação selecionada de forma dinâmica:

iPad (6)

E a mágica acontece! O Excel está aberto na tela do iPad com recursos completos e possibilitando trabalho remoto:

iPad (7)

Dúvidas Adicionais

É possivel usar o RemoteApp para abrir aplicações na minha estação local ou device (iOS e Android)?

Não, o RemoteApp não tem acesso aos recursos locais da maquina ou device. Porem, ele utliza como padrão para salvamento o OneDrive que permite a troca do arquivo com a sincronização padrão e possui cliente para os devices suportados.

Posso administrar remotamente as sessões como no RDS?

Sim, no console do Microsoft Azure é possivel enviar uma mensagem para o usuário, encerrar a sessão ou desconectar todos ou um unico usuário selecionado:

RemoteApp (8)

É complexo o processo para publicar as minhas próprias aplicações?

Não, é bem simples. Crie uma VM no Windows Server 2012 R2 (utilizando Gen1 com VHD, o Azure não suporte VHDX), instale as aplicações e execute o SysPrep. Depois disso na opção do console do RemoteApp utilize a opção “Template Images” para fazer o upload do VHD.

É possivel integrar o RemoteApp em um farm RDS ou no meu ambiente de rede local?

Sim, porem este processo é complexo e necessita que seja criado um gateway virtual que aponta o RemoteApp para o seu ambiente com IP Público. Para fazer este processo consulte a documentação disponivel no site do Microsoft Azure, que por se tratar de um Preview ainda não é extensa e simples de ser consultado passo-a-passo.

Utilizando IP Fixo em Maquinas Virtuais no Windows Azure

Um novo recurso que se tornou disponivel nas novas versões do PowerShell para o Windows Azure são os comandos “StaticVNetIP”. Você pode baixar a nova versão em http://www.windowsazure.com/pt-br/downloads/#cmd-line-tools

Estes comandos permitem que se fixe o IP dentro do range da rede virtual que você já tenha definido, permitindo assim que consiga garantir o IP de cada VM sem a necessidade de fazer o “Start” na ordem fixa todas as vezes.

Passo 1: Saiba os Riscos e Gerencie Seus IPs

Antes de iniciarmos, é importante ressaltar que não há suporte se houver problemas (http://msdn.microsoft.com/en-us/library/windowsazure/jj156090.aspx#BKMK_IPAddressDNS):

“Use DHCP-leased addresses (this is mandatory — static addresses are NOT supported)

Portanto, antes de começar a designar IPs fixos as suas VMs, lembre de manter uma lista dos IPs definidos!

Além disso, não utilize IPs que não estejam no range da sua rede virtual. Por exemplo, a minha rede tem o range 10.0.1.4 a 254 e se eu fixar o IP 10.0.2.4 a uma VM, ele ficará incomunicável e precisará ser excluida.

image

 

Passo 2: Registrar a Assinatura no PowerSell

Este passo é permanente, e basta executar o comando Add-AzureAccount que irá abrir uma janela de autenticação e importará os dados da sua assinatura:

Capture

Para verificar se importou com sucesso use o comando Get-AzureSubscription que retornará os dados da assinatura registrada:

image

Caso precise remover uma assinatura que tenha utilizado no passado para teste, o comando Remove-AzureSubscription é indicado. Se necessário, precisará redefinir sua assinatura padrão, o comando abaixo redefinirá o default:

image

 

Passo 3: Registre o IP de cada VM

Para registrar os IPs lembre-se do que foi comentado no início, é necessário que eles estejam no range da rede virtual que você tenha definido, senão a VM não poderá mais ser acessada e ficará incomunicável.

O comando que utilizaremos para fixar o IP não trabalha com strings, o primeiro passo é usar o comando Get-AzureVM para retornar em uma variável o PermanentID da VM desejada:

image

O comando acima procura a VM “W2012-Exch-3” no catálogo e retorna o ID, e o comando Set-AzureStaticVNetIP abaixo fixa o IP:

image

Obs: Pode-se usar o “pipe |” para executar os comandos na mesma linha se desejado

Porem, note que o comando acima não foi confirmado, apenas como que simulado. O correto é utilizar o Update-AzureVM na sequência para confirmar a alteração, como um commit.

Sendo assim, a sequencia de comandos para alterar as VMs seria como o exemplo abaixo:

image

Note que neste exemplo 3 diferentes VMs tiveram seus IPs fixados e é possivel com o comando Get-AzureStaticVNetIP consultar se a VM fixou o IP desejado:

image

Por fim, ao verificar o escopo de rede no Azure, pode-se ver que as maquinas reiniciadas receberam o IP que fixamos:

ListaIPs