Windows Azure Insider

Executando qualquer carga de trabalho em grande escala

Bruno Terkaly
Ricardo Villalobos

 

Eu nunca pensei que escreveria um artigo "Como fazer" sobre o Linux enquanto trabalhasse na Microsoft. Mas aquele provérbio “nunca diga nunca” provou-se verdadeiro, e aqui estou eu lhes dizendo que executar nuvem e cargas de trabalho baseadas em Linux oferece alguns recursos poderosos.

Terminologia

Antes de começar, vamos falar de terminologia. Uma máquina virtual no Windows Azure é um servidor na nuvem que você pode controlar e gerenciar. Depois de criar uma máquina virtual no Windows Azure, é possível excluí-la e recriá-la sempre que precisar, e você pode acessar a máquina virtual da mesma forma que faz com um servidor em seu escritório. Arquivos de disco rígido virtual (VHD) são usados para criar uma máquina virtual. Na coluna deste mês, o servidor que estou criando é um servidor Linux. A máquina virtual para o servidor Linux é normalmente abreviada como VM.

A proposição de valor: executar qualquer carga de trabalho

Entender a proposta de valor de poder implantar aplicativos baseados em Linux na nuvem é crítico. isso significa que agora você pode executar quase qualquer carga de trabalho do mundo em um de oito data centers globais da Microsoft. A Microsoft tem quatro data centers nos Estados Unidos, dois na Europa e dois na Ásia. Executar cargas de trabalho baseadas em Linux também fornece escala sob demanda, permitindo que você aumente (ou reduza) o número de instâncias implantadas de sua carga de trabalho. Simplesmente reutilize a VM criada anteriormente usando o portal para criar outra instância. É possível automatizar esse processo com o Windows PowerShell e outras ferramentas de script.

Oferecendo suporte à IaaS

Hospedar VMs persistentes na nuvem é a base do suporte à Infraestrutura como serviço (IaaS). Este “ramo” da computação em nuvem possibilita aos desenvolvedores implantar quase tudo. Essa flexibilidade é quase ilimitada, pois os desenvolvedores podem se conectar diretamente a uma VM baseada em Linux e configurar a máquina exatamente como o fariam em um cenário local.

Escolhendo uma versão de distribuição

A Microsoft oferece suporte ao Linux e ao Windows em sua oferta de IaaS. O Windows Azure oferece suporte diretamente a vários tipos de Linux, como CentOS, SUSE, openSUSE e Ubuntu, como pode ser visto na Figura 1. Também é possível criar suas próprias imagens personalizadas baseadas nessas distribuições e reutilizá-las quando precisar de escala adicional. Você também pode baixar essas VMs e executá-las localmente, se apropriado. Elas são portáteis e autossuficientes. Uma outra vantagem de se executar SUSE é que é possível atualizar automaticamente as VMs implantadas com patches de segurança, correções de bugs e novos recursos.

Linux distributions supported by Windows Azure
Figura 1 Distribuições de Linux suportadas pelo Windows Azure

VMs duráveis

Depois de implantadas, essas VMs são duráveis, significando que é possível adicionar software e recursos que permanecem depois de uma reinicialização. Esse recurso é crucial porque permite ajustar sua implantação do Linux e executá-la em escala, localmente ou na nuvem, ou talvez os dois. Você está livre para adicionar qualquer software livre. Por exemplo, você poderia usar o JBoss para seu middleware, ou poderia escolher o WordPress ou Drupal se precisar de um sistema de gerenciamento de contatos. Talvez no momento você ofereça suporte ao Tomcat (pense em servlets) ou MySQL para seu armazenamento de dados. Documentei o processo inteiro de configurar o Linux (openSUSE) no Azure, completo com Apache, MySQL e Drupal, no meu blog.

Fazendo logon

É possível fazer logon na VM depois de criá-la. Pacotes de software livre como o PuTTY permitem fazer um telnet para o servidor Linux de um dispositivo Windows ou Mac e executar qualquer tarefa necessária. É possível baixar o PuTTY para Windows aqui. Se estiver usando um computador com um sistema operacional Linux em execução, talvez queira usar um cliente SSH (Secure Shell) como o OpenSSH para que possa fazer um telnet para a máquina em um data center Microsoft.

Responsabilidades e limitações

Como desenvolvedor, você tem mais responsabilidade com o IaaS, pois deve instalar todos os componentes necessários, como servidores Web, bancos de dados, tempos de execução de programação (Java, .NET), etc. Embora configurar as VMs que constituem uma instalação IaaS (comparado com PaaS, ou Plataforma como serviço, e SaaS, ou Software como serviço) irá demorar mais, você tem mais flexibilidade em como a VM é configurada e implantada.

Há algumas limitações. Por exemplo, o número de pontos de extremidade expostos é restrito a 25 e o número de VMs por serviço de nuvem é restrito a 20. Ao criar a instalação Linux, você tem conectividade restrita a portas especificadas no Portal de Gerenciamento. Por padrão, a única porta permitida é SSH. É possível abrir o acesso a portas adicionais na VM Linux adicionando regras no Portal de Gerenciamento.

openSUSE

A distribuição openSUSE facilita a adição de uma variedade de recursos ao SO básico. Um utilitário interno chamado YAST (Yet Another Setup Tool) oferece uma interface de usuário baseada em texto que permite implantar o Apache, PHP (Hypertext Preprocessor), MySQL, Drupal e muitos mais. Há até mesmo uma versão de linha de comando do YAST se desejar criar um script do procedimento inteiro.

Hardware

Também é possível escolher entre vários tipos de configurações de hardware, de uma CPU de núcleo único de 1 GHz a uma CPU de oito vias de 1,6 GHz com 14 GB de RAM. Naturalmente, os preços variam de acordo com a quantidade de recursos de hardware necessários. Em geral, a escala horizontal é preferível à escala vertical, isto é, normalmente, é melhor hospedar várias VMs menores do que algumas VMs enormes. Seus aplicativos são muito mais tolerantes a falhas quando a escala horizontal é usada. O Windows Azure promete escala quase ilimitada considerando que ele permite hospedar até 20 VMs simultaneamente.

Suporte de IDEs baseados em Linux

Alguns dos IDEs baseados em Linux estão começando a oferecer suporte direto ao Windows Azure. É possível implantar no Windows Azure diretamente do IDE to SUSE Studio. Os desenvolvedores não precisam se preocupar com a imagem da máquina ou em trabalhar com o Portal do Windows Azure. Em vez disso, é possível inserir sua ID do Windows Azure no IDE do SUSE Studio antes de implantar o aplicativo na nuvem do Windows Azure e permitir que o IDE do SUSE Studio execute a implantação ou atualização.

Preenchendo a lacuna com o Hyper-V

Para empresas que precisam preencher a lacuna entre as implantações locais e as baseadas em nuvem, o Hyper-V, o hipervisor baseado em Windows, agora funciona muito bem com o Linux. O Hyper-V é um gerenciador de VMs (VMM) que permite que diversos sistemas operacionais sejam executados ao mesmo tempo no mesmo hardware localmente ou em um data center Microsoft.

O Hyper-V simplifica de forma significativa a capacidade de conectar todas essas plataformas e tecnologias diferentes, tornando o Windows Azure o melhor lugar para executar seus aplicativos, independentemente da plataforma ou tecnologia. À medida que a adoção empresarial do Windows Azure e a computação em nuvem cresce, a necessidade de se resolver problemas de interoperabilidade também cresce. O Hyper-V é uma vantagem para as empresas que executam ambientes de TI de fontes mistas.

Sabendo mais

Se desejar saber mais sobre o uso do Windows Azure com sistemas Linux, há muitos excelentes recursos. Como mencionei anteriormente, você pode consultar minha postagemdo blog, onde forneço orientações detalhadas sobre a instalação do openSUSE, Apache, PHP, MySQL e Drupal.

Também recomendo baixar o Kit de treinamento da Plataforma Windows Azure, que pode ser encontrado aqui. O kit de treinamento contém instruções detalhadas sobre o trabalho com o Windows Azure e o Linux. Por exemplo, um dos laboratórios do kit de treinamento o conduz na instalação e configuração de um servidor MongoDB em uma VM Linux em execução no Windows Azure. O MongoDB é um banco de dados NoSQL orientado a documento projetado para facilitar o desenvolvimento e a escalabilidade, com ênfase especial em aplicativos da Internet e infraestrutura. O laboratório também o orienta na criação de um aplicativo Web Node.js que se conecta ao servidor MongoDB em execução na VM Linux. É possível publicar o aplicativo Web Node.js na nuvem usando Git. Finalmente, GitHub, que pode ser encontrado aqui, tem muito conteúdo excelente que inclui o suporte crescente para desktops Linux e Mac.

Com o Windows Azure, a Microsoft tem a oferta de nuvem mais abrangente disponível. A plataforma está evoluindo para algo mais poderoso, flexível e fácil de usar.

Bruno Terkaly*  *trabalha como desenvolvedor e divulgador da Microsoft. Seu conhecimento profundo é o resultado de anos de experiência no campo, escrevendo código com uma grande quantidade de plataformas, linguagens, estruturas, SDKs, bibliotecas e APIs. Ele escreve código, participa de blogs e fornece apresentações ao vivo sobre como criar aplicativos baseados em nuvem, especificamente usando a plataforma Windows Azure.

Ricardo Villalobos é um arquiteto de software experiente com mais de 15 anos de experiência em projeto e criação de aplicativos para empresas na indústria de gerenciamento da cadeia de suprimentos. Ele possui inúmeras certificações técnicas além de um título de MBA em gerenciamento da cadeia de fornecedores da Universidade de Dallas. Ele trabalha como arquiteto divulgador do Windows Azure para a Microsoft.

Clique para classificar e enviar comentários">">">">">