Microsoft Azure (Iaas) Cost Estimator Tool
Ontem a Microsoft liberou uma ferramenta interessante para calculo de custos de migração das maquinas virtuais (a partir do VMM ou ESX) ou fisicas.
A instalação da ferramenta pode ser feita pelo link http://www.microsoft.com/en-us/download/details.aspx?id=43376
Na tela inicial escolhemos se o inventário será pelo VMM, ESX, direto no Hyper-V ou com os IPs de maquinas fisicas. Para cada um dos tipos de inventário ele pedirá os dados do gerenciador (VMM, Hyper-V ou vCenter) ou os IPs de maquinas fisicas.
No meu exemplo utilizei maquinas fisicas e selecione pelo tipo (Windows/Linux), o IP, usuário e senha. Podemos incluir até 25 maquinas por ciclo:
O passo seguinte é escolher a frequencia com que deseja que a ferramenta faça a pesquisa. Como no meu caso a maquina está ligada não preciso definir recorrencias.
Na sequencia a ferramenta irá listar os recursos das maquinas que foram analisadas e indica os dados de inventário qeu são relevantes para a confecção do custo.
Finalmente, temos o relatório com os custos estimados para cada Azure VM, podendo escolher qual a região e o perfil de hardware para cada VM escolhida, alem do perfil de preço:
Essa ferramenta é muito útil para permitir que o cliente tenha ideia do investimento que será necessário na migração, utilizando dados reais!
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:
_thumb.png)
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:
_thumb.png)
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:
_thumb.png)
_thumb.png)
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:
_thumb.png)
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:
_thumb.png)
_thumb.png)
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:
_thumb.jpg)
_thumb.jpg)
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:
_thumb.jpg)
_thumb.jpg)
Automaticamente as aplicações publicadas já estão disponiveis para uso, de forma muito prática:
_thumb.jpg)
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:
_thumb.jpg)
E a mágica acontece! O Excel está aberto na tela do iPad com recursos completos e possibilitando trabalho remoto:
_thumb.jpg)
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:
_thumb.png)
É 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.

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:

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

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:

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:

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:

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:

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:

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

Novo MVA: Automatizando Processos com System Center Orchestrator
Ontem foi publicado mais um curso sobre System Center 2012 no MVA, agora para o Orchestrator em complemento aos já produzidos sobre Patch Management e Proteção de dados (http://www.marcelosincic.com.br/blog/post/Novos-MVAe28099s-Disponiveis-Gerenciamento-de-Infraestrutura-de-Updates-e-Protecao-de-Dados-e-Servidores-para-Nuvem-Privada.aspx)
O foco neste treinamento não foi fornecer exemplos complexos de automação, mas sim ajudar nos primeiros passos, abordando:
- Ferramentas – Designer, Console e Deployment Manager
- Criação e organização de Runbooks
- Chamada e criação de variáveis
- Passagem de parametros e dados entre atividades
- Integração do Orchestrator com o Service Manager
- Publicação de Runbooks no Service Manager para automação de processos
- Configuração dos Integrations Pack no Orchestrator
Espero que gostem: www.microsoftvirtualacademy.com/training-courses/automatize-processos-com-system-center-orchestrator?mtag=MVP4029139
Na sequencia já estamos trabalhando em um MVA para automação de processos de Private Cloud com criação de VMs automáticas!

Utilizando o Hyper-V Replica Parte II - Boas Práticas para RTO e RPO
No primeiro post sobre Hyper-V Replica abordamos as vantagens sobre réplica de storage e como iniciar a configuração e réplica http://www.marcelosincic.com.br/blog/post/Utilizando-o-Hyper-V-Replica-Parte-1e28093Vantagens-e-Primeira-Replica.aspx
Neste segundo post vamos abordar como o RTO e RPO são importantes e como o Hyper-V Replica se encaixa nestes conceitos.
Recovery Time Objective e Recovery Point Objective
Basicamente os termos RTO e RPO indicam os objetivos que uma solução de desastre deve cumprir:
- RTO – Tempo máximo para se recolocar o serviço em produção
- RPO – Tempo máximo de dados que podem ser “perdidos” entre o evento de desastre e o ambiente restaurado
Um bom exemplo de como estes valores se relacionam e o que significam pode ser explicado no gráfico abaixo:

No exemplo acima conseguimos “enxergar” claramente o RTO e o RPO:
- RTO foi de 5 horas e 3 minutos, entre as 05:15 e as 10:18
- RPO foi de 3 horas e 15 minutos, entre as 02:00 e as 05:15, uma vez que o backup foi realizado as 2 da manhã
Como determinar o RTO e RPO
Estes valores são determinados por um plano que é chamado de DRP (Disaster Recovery Plan) que é orquestrado por consultorias especializadas neste tipo de processo. Geralmente é realizado quando uma organização está atualizando seu datacenter e, consequentemente revendo suas políticas de recuperação dos dados ou montagem do datacenter redundante.
O processo de levantamento destes dados se baseia em entrevistas e dados do ambiente de TI e, entre outras coisas, coleta:

Porque o Hyper-V Replica é uma ótima opção
O processo de backup é uma das formas que o RPO e RTO podem ser cumpridos, porem as práticas normais de restore muitas vezes são impeditivas levando em conta o tempo que é perdido entre o ultimo backup e a falha (RPO) e o tempo necessário para se restaurar um servidor a partir de backups (RTO).
Com o Hyper-V Replica o tempo de RTO é minimo, uma vez que as réplicas mantem a maquina virtual (VM) no ambiente de redundância integra.
E o RPO?
Em um ambiente de backup o RPO é facilmente calculado e mantido. Por exemplo, se o RPO da aplicação CRM tem perda máxima calculada em 30 minutos, podemos fazer o backup incremental a cada 15 ou 30 minutos.
No caso do Hyper-V Replica este tempo não é determinado de forma simples, uma vez que o tempo de replicação (Replication Frequency) de cada VM indica o intervalo e não o periodo desejado de proteção. Seria muito bom ter uma opção onde pudesse ser indicado qual o tempo máximo em que uma réplica pode estar desatualizada…
Um segundo item importante é levar em conta o grupo de uma aplicação, por exemplo mais de um servidor que forma a mesma aplicação e precisa estar com a réplica sincronizada por igual. Como o Hyper-V Replica não tem o conceito de grupo de serviço, não temos como garantir a integridade do conjunto da aplicação.
Outra dificuldade no Hyper-V Replica é o baixo número de opções de intervalo da réplica (Windows 2012 a cada 5 minutos, Windows 2012 R2 a cada 30 segundos, 5 minutos ou 15 minutos):

Imagine um cluster com 80 VMs, sendo que cada VM tem impacto diferente no negócio ou requisitos técnicos particulares. Destas 80 VMs algumas são servidores web que podem ser replicadas uma vez por dia, outras são servidores de aplicação que só precisam ser replicados quando sofrem algum tipo de atualização e, por fim temos os servidores que precisam ser replicados continuamente.
Como configurar diferentes RPO?
Uma prática que pode ser adotada de forma simples, é colocar as máquinas em grupos de criticidade e configurar utilizando as 3 janelas de réplica do Windows 2012 R2 (30 segundos, 5 minutos e 15 minutos).
O problema é que se a VM que será replicada a cada 30 segundos for, por exemplo um banco de dados e o ambiente de redundância for por WAN, o consumo do link será muito alto e as outras VMs entrarão em intervalo de réplica e com isso todas as réplicas ocorrerão simultaneamente. Com isso, o RPO ficará prejudicado para todas as VMs críticas e muito baixo para as maquinas não criticas.
Uma boa prática neste caso é configurar as VMs com RPO maior que 2 horas para serem replicadas manualmente por meio de PowerShell abaixo:
Resume-VMReplication MaquinaVirtual –Resynchronize –ResynchronizeStartTime “8/1/2012 05:00 AM”
Este comando pode ser executado pelo Task Scheduler ou utilizando o Orchestrator com schedule embutindo o comando.
No exemplo citado anteriormente, as VMs de banco de dados ou informações como File Server ficariam com a configuração do próprio Hyper-V a cada 5 ou 15 minutos. As VMs estáticas poderiam ser configuradas com replicação manual, e com tarefas ou runbook agendados e recorrentes replicar pontualmente conforme o grupo de criticidade.
Conclusão
Este segundo post abordamos como alcançar o RTO e RPO.
O próximo post irei abordar os comandos e a sequencia de comandos PowerShell que podem ser executados como script ou com Runbook no Orchestrator.