Introdução
Máquinas virtuais são uma das principais opções de computação para implantar cargas de trabalho (WorkLoads) no Microsoft Azure.
As máquinas virtuais podem fornecer um nível de acesso para a migração de cargas de trabalho do nosso ambiente On-Primise (ou outros provedores de cloud computing) para o Azure, porque eles são geralmente os mais compatíveis com as soluções já existentes. A flexibilidade das máquinas virtuais torna o cenário favorável para muitas cargas de trabalho. Por exemplo, você tem a possibilidade de escolha de uma gama de sistemas operacionais para o seu servidor com várias versões do Windows e de distribuições Linux suportadas.
Máquinas virtuais no Azure fornece controle total sobre o sistema operacional, juntamente com configuração avançada, opções de rede e armazenamento.
Microsoft Azure Virtual Machines é uma opção poderosa e flexível para implantar cargas de trabalho (Workloads) dentro da nuvem Azure. O suporte de sistemas operacionais baseados em Linux Windows permite a implantação de uma ampla variedade de cargas de trabalho.
Este artigo tem como objetivo:
- Identificar as cargas de trabalho Microsoft suportadas.
- Criar máquinas virtuais.
- Gerenciar o ciclo de vida de uma máquina virtual.
- Conectar-se a máquinas virtuais.
Identificar as cargas de trabalho suportadas
Máquinas virtuais Azure são baseadas em Windows Server Hyper-V, mas nem todos os recursos dentro Hyper-V são diretamente suportados. Com isso em mente, não será nenhuma surpresa se nem todas as cargas de trabalho Microsoft (incluindo funções e recursos do próprio Windows Server) não ser suportadas quando rodadas dentro das maquinas virtuais no Azure.
A melhor maneira de manter o controle do que é e não suportado dentro das VMs no Azure é através desse artigo da Microsoft (em inglês): http://support.microsoft.com/kb/2721672.
Este artigo detalha quais cargas de trabalho (Workloads) Microsoft são suportadas dentro Azure. Além disso, o artigo será atualizado conforme novas cargas de trabalho são colocados online, ou quando as políticas de suporte mudam de acordo com as novas capacidades dentro Azure melhoraram.
Criar máquinas virtuais
Você pode criar máquinas virtuais usando o portal de gerenciamento de Azure, Azure PowerShell cmdlets, ferramentas de linha de comando do Azure, ou a API REST. Cada método traz consigo suas próprias capacidades e particularidades e é importante entender qual ferramenta deve ser usada de acordo com a sua necessidade.
Usando o portal de gerenciamento do Azure
O portal de gerenciamento de Azure permite que você use uma grande variedade de imagens de máquinas virtuais, modelos pré-definidos para soluções inteiras como o SQL Server AlwaysOn, ou mesmo uma completa estrutura do SharePoint.
Para máquinas virtuais individuais você pode especificar algumas, mas não todas configurações durante a criação.
Algumas opções, como configurar o balanceador de carga (LoadBalance) e especificar a configuração de disco de dados não estão disponíveis no momento da criação através do portal de gerenciamento do Azure, mas isso pode ser definido após a máquina virtual estiver criada.
Usando o portal de gerenciamento, você deve criar máquinas virtuais no mesmo serviço de nuvem (Service Cloud), e importante lembrar que você so pode criar uma VM de cada vez. Isto pode ser complicado para grandes implantações com muitas máquinas virtuais a automação do processo pode fazer mais sentido nesses cenários.
O portal de gerenciamento é multi-plataforma, isso quer dizer que é suportado em vários navegadores disponíveis hoje em dia.
Usando as ferramentas de linha de comando em diferentes Plataformas
Os multi-plataforma ou (Cross- Platform como e mais conhecido) as ferramentas de linha de comando do Azure permitem você provisionar e gerenciar as máquinas virtuais e muitos outros recursos no Azure.
Os comandos dessas ferramentas podem ser scripts para fornecer implantações automatizadas, ou seja, você pode desenvolver um script para automatizar a implantação de dezenas ou centenas de maquinas virtuais ao mesmo tempo.
As ferramentas de linha de comando de multi-plataforma (Cross-Platform) são construídas usando
Node.js, e como o nome indica vai funcionar em múltiplas plataformas.
As ferramentas são suportadas em Windows, Mac e Linux.
Usando os cmdlets Azure PowerShell
Usando os cmdlets do Azure PowerShell, você pode definir toda a configuração de uma máquina virtual, incluindo opções avançadas de configuração, tais como: Pontos de extremidade (EndPoints), discos de dados e Domínio do Active Directory.
Você tem o controle total sobre os nomes e localizações dos VHDs (disco rígido virtual) para as máquinas virtuais.
As ferramentas de linha de comando Multi-Plataforma do Azure, os cmdlets do Azure PowerShell apoiam mais os recursos para automação dentro do Azure.
Vale lembrar que os cmdlets Azure PowerShell só funcionam em clientes Windows.
Existem dois métodos de criação de uma máquina virtual usando os cmdlets Azure PowerShell.
O primeiro método é usar o cmdlet New-AzureQuickVM. Este cmdlet permite que você configure
uma única máquina virtual com uma configuração simples com base numa única imagem.
Como dito, esse comando e para configuração simples de uma máquina virtual ou seja, não permite definir configurações avançadas como Endpoints ou criar discos de dados durante a criação da máquina virtual.
Citarei um exemplo a seguir de comando no Windows PowerShell cmdlet New-AzureQuickVM para criar uma máquina virtual.
Ela é criada no serviço de nuvem contoso-vms na região oeste dos Estados Unidos. O nome da imagem sera recuperada usando Get-AzureVMImage. Veja abaixo:
$adminUser = “[admin user name]”
$password = “[admin password]”
$serviceName = “contoso-vms”
$location = “West US”
$size = “Small”
$vmName = “vm1”
$imageFamily = “Windows Server 2012 R2 Datacenter”
$imageName = Get-AzureVMImage |
where { $_.ImageFamily -eq $imageFamily } |
sort PublishedDate -Descending |
select -ExpandProperty ImageName -First 1
New-AzureQuickVM -Windows `
-ServiceName $serviceName `
-Name $vmName `
-ImageName $imageName `
-AdminUsername $adminUser `
-Password $password ` -Location $location `
-InstanceSize $size
O segundo método usa uma combinação de cmdlets para construir um objeto de configuração
para uma máquina virtual. Com esta técnica você pode adicionar opções adicionais para a máquina virtual no momento da criação, como discos de dados, pontos de extremidade (Endpoints) e já adicionar a VM ao domínio do Active Directory.
O primeiro cmdlet é New-AzureVMConfig, o que cria um objeto de configuração local que pode ser passado para outros cmdlets do Azure que suportam o parâmetro VM que você definir.
Com este método você pode configurar o sistema operacional e configuração de disco de dados (caminhos personalizados e nomes de arquivos), configurar endpoints (incluindo balanceamento de carga – LoadBalance), bem como recursos de rede avançada
como IP reservados ou endereços IP estáticos.
O exemplo a seguir Windows PowerShell cria uma máquina virtual de tamanho pequeno nomeada como VM2 sobre o serviço de nuvem contoso-vms. Também configura a nova máquina virtual para ter um ponto de extremidade (EndPoint) com a porta TCP 1433 aberta, usando o cmdlet Add-AzureEndpoint, e um disco de 10 GB de dados anexada a ela, para isso uso o cmdlet Add-AzureData Disk. Veja abaixo:
$adminUser = “[admin user name]”
$password = “[admin password]”
$serviceName = “contoso-vms”
$location = “West US”
$size = “Small”
$vmName = “vm2”
$imageFamily = “Windows Server 2012 R2 Datacenter”
$imageName = Get-AzureVMImage |
where { $_.ImageFamily -eq $imageFamily } |
sort PublishedDate -Descending |
select -ExpandProperty ImageName -First 1
New-AzureVMConfig -Name $vmName `
-InstanceSize $size `
-ImageName $imageName |
Add-AzureProvisioningConfig -Windows `
-AdminUsername $adminUser `
-Password $password |
Add-AzureDataDisk -CreateNew `
-DiskSizeInGB 10 `
-LUN 0 `
-DiskLabel “data” |
Add-AzureEndpoint -Name “SQL” `
-Protocol tcp `
-LocalPort 1433 `
-PublicPort 1433 |
New-AzureVM -ServiceName $serviceName `
-Location $location
Existem vários cmdlets adicionais utilizados neste exemplo que não estão disponíveis com New-AzureQuickVM. O cmdlet Add-AzureProvisioningConfig é usado para especificar a informação da configuração necessária ao provisionar a partir de uma imagem, como nome da máquina, e o nome de usuário e a senha do administrador. Como você verá mais adiante neste capítulo, este cmdlet pode modificar o comportamento de uma máquina virtual de várias outras maneiras.
O cmdlet Add-AzureDataDisk é usado para anexar novos discos vazios, ou anexar dados existentes em outros discos a uma máquina virtual. O cmdlet Add-AzureEndpoint é usado para criar um ponto de extremidade de entrada na máquina virtual.
Endpoints de entrada permitem o tráfego de rede para a máquina virtual em uma porta específica. Este cmdlet também pode ser usado para adicionar pontos de extremidade (EndPoints) com balanceamento de carga (LoadBalance) e pode anexar listas de controle de acesso.
Para criar a máquina virtual usando esta técnica você deve utilizar o objeto de configuração cmdlet New-AzureVM. O cmdlet New-AzureVM faz a maior parte do trabalho de criação a máquina virtual. A imagem abaixo mostra as diferenças entre as duas abordagens para a criação de máquinas virtuais.
Capacidades para a criação de máquina virtual com os cmdlets Azure PowerShell:
New-AzureQuickVM |
New-AzureVMConfig and New-AzureVM |
Windows and Linux supported |
Windows and Linux supported |
Create only from image |
Create from image or operating system disk |
Specify availability set name |
Specify availability set name |
Specify subnet and virtual network |
Specify subnet and virtual network |
Deploy to location or affinity group |
Deploy to location or affinity group |
Deploy X509 certificates |
Deploy X509 certificates |
Deploy SSH certificates on Linux virtual machines |
Deploy SSH certificates on Linux virtual machines |
Specify Active Directory domain join information |
Require admin password reset on first login |
Create new or attach existing data disks |
Configure endpoints (including internal and external load balancing) |
Disable Windows Update |
Specify the time zone |
Specify static IP addresses |
Specify reserved IP address of the cloud service/domain |
Grande abraço a todos.
Grande abraço a todos!
Rogerio Dias.