Virtualização para Pequenas Empresas
No último ano ou dois, vimos a virtualização passar de um conceito mal compreendido para uma palavra da moda da indústria amplamente badalada, constantemente lançada em todas as conversas que envolvem tecnologia. Não há dúvida de que a virtualização está a desempenhar um papel importante no panorama de TI atual, mas a pergunta que estamos a fazer é se a virtualização se aplica aos mercados das pequenas e médias empresas neste momento.
A resposta rápida a esta pergunta é: absolutamente. Ao contrário de muitas tecnologias de valor questionável ou que proporcionam um elevado grau de complicação tecnológica, risco e despesa que podem não ser apropriados para uma pequena empresa, a virtualização é uma tecnologia madura (IBM CP/CMS por volta de 1968) que é bem compreendida e proporciona uma camada de abstração de hardware que pode beneficiar uma organização de TI de qualquer dimensão e que pode, possivelmente, aplicar-se ainda mais ao departamento de TI de uma pequena empresa do que se aplica no espaço empresarial.
Antes de analisar como a virtualização pode beneficiar o mercado das PME, gostaria de fornecer algumas definições para garantir que estamos a discutir o mesmo conjunto de tecnologias. No panorama de TI atual, tornou-se popular reetiquetar tecnologias comuns como “virtualização” por razões de marketing, e isto complicou desnecessariamente a questão.
A verdadeira virtualização refere-se à virtualização de sistemas operacionais inteiros. A Wikipédia utiliza o termo virtualização de plataforma e eu também o farei. Tecnicamente, poderíamos referir-nos a isto como “Virtualização de Sistema” ou “Virtualização de Sistema Operacional” para a distinguir de tecnologias vagamente relacionadas que podem, indiscutivelmente, ter o direito de utilizar também o mesmo termo geral.
O conceito básico da virtualização de plataforma envolve a execução de uma camada de abstração num computador que emula o próprio hardware. Através da combinação de abstração e emulação, obtemos o que é conhecido como uma máquina virtual. Esta máquina virtual é um “computador” completamente funcional sobre o qual podemos instalar um sistema operacional tal como se estivéssemos a instalar diretamente sobre o hardware de uma máquina dedicada. Em vez de estarmos limitados a instalar apenas uma imagem de sistema operacional por computador, podemos agora, com a virtualização de plataforma, instalar muitas cópias do mesmo sistema operacional ou de sistemas díspares sobre o mesmo equipamento de hardware. Um conceito poderoso, de facto.
A obviedade da utilidade desta tecnologia suscita a pergunta óbvia: “Se a virtualização de plataforma está disponível desde 1968, porque é que só agora está a tornar-se popular e importante?” Esta é uma excelente pergunta. A resposta é, na verdade, bastante simples.
As tecnologias tradicionais de virtualização de plataforma exigem muito suporte dentro do próprio hardware do computador. A IBM tem vindo a incorporar este tipo de suporte nos seus sistemas mainframe há décadas e grandes fornecedores de UNIX, como a Sun, têm vindo a fornecer isto nos seus servidores UNIX topo de gama há anos também. Estes sistemas são altamente especializados e normalmente executam o(s) seu(s) próprio(s) sistema(s) operacional(is) personalizado(s). Geralmente, apenas as grandes operações de TI podiam dar-se ao luxo de servidores desta magnitude e as pequenas operações não tinham acesso facilitado a estas tecnologias. Para aqueles profissionais de TI que trabalharam com este tipo de equipamento no passado, a ideia de virtualização estava frequentemente tão entranhada na plataforma que era muitas vezes muito pouco discutida, pois era vista simplesmente como um aspeto destes sistemas de servidores topo de gama e não necessariamente como um conceito por direito próprio.
O que mudou recentemente é a iniciativa de trazer a virtualização de plataforma para o espaço de hardware de uso comum (commodity) ocupado pelos processadores AMD e Intel (x86_64) utilizados pela maioria das pequenas e médias empresas, bem como pelas grandes empresas. A primeira iniciativa foi utilizar apenas software para tornar isto possível na família de processadores x86. Os primeiros intervenientes neste espaço foram a VMWare e a Microsoft, com produtos como VMWare Workstation, Virtual PC, VMWare GSX e MS Virtual Server. Estes produtos demonstraram que não era necessário qualquer hardware especial para virtualizar eficazmente sistemas operacionais inteiros e começaram a permitir que empresas de todas as dimensões experimentassem o conceito de virtualizar as suas plataformas de uso comum existentes. Esta forma de virtualização é conhecida como “virtualização baseada em host”, uma vez que requer um sistema operacional host sobre o qual o ambiente de virtualização será executado.
Na esteira destas soluções exclusivamente de software, os grandes fornecedores de processadores no espaço de uso comum, AMD e Intel, começaram a incorporar capacidades de virtualização no processador, permitindo mais flexibilidade, segurança e desempenho e alinhando muito mais o mercado de hardware x64 de uso comum com as ofertas tradicionais das outras famílias de processadores comuns nos grandes servidores. Ao fazê-lo, o mercado da virtualização realmente explodiu, tanto do lado dos fornecedores, à medida que cada vez mais fornecedores começam a oferecer produtos relacionados com virtualização, como do lado dos clientes, à medida que a virtualização começa a ser mais bem compreendida e a sua utilização se torna mais comum. Com as mais recentes rondas de aquisições, a maioria das pequenas operações de TI adquiriu servidores, e frequentemente computadores de secretária, que suportam virtualização ao nível do hardware mesmo sem a intenção de se prepararem para uma migração para a virtualização, fazendo com que a equação penda frequentemente nessa direção de forma natural. Este modelo de virtualização suportada por hardware é designado “virtualização baseada em hipervisor”, uma vez que todos os sistemas operacionais são executados sobre um pequeno kernel chamado hipervisor e nenhum sistema operacional tradicional é executado diretamente sobre o hardware.
Agora que temos uma boa ideia do que é a virtualização de plataforma e por que está agora disponível para nós como opção, vamos analisar por que a virtualização de plataforma pode ser benéfica para nós no espaço das pequenas e médias empresas.
Há duas coisas que podemos virtualizar prontamente (sem entrar no esotérico ou começar a virtualizar a nossa infraestrutura de encaminhamento e comutação) – servidores e computadores de secretária. De longe a escolha mais fácil e mais óbvia é a virtualização de servidores.
Virtualizar a infraestrutura de servidores, ou parte dela, é o primeiro lugar onde a maioria das operações de TI procura hoje como potencial para virtualização. A maioria das empresas constata que a maior parte dos seus servidores está extremamente subaproveitada, com excesso de CPU, memória e capacidade de disco parados e ociosos, enquanto cargas de trabalho adicionais não encontram um lar devido a restrições orçamentais, de espaço ou de tempo de implementação. A virtualização vem em socorro.
Através da virtualização, temos a oportunidade de executar vários servidores virtuais num único equipamento de hardware de servidor. Poderíamos virtualizar apenas um único sistema de servidor, mas isto não nos traria quaisquer vantagens de aproveitamento, ou poderíamos, em teoria, virtualizar centenas de servidores se o nosso hardware o conseguisse suportar. Normalmente, as pequenas empresas podem virtualizar vários papéis típicos de servidor num único servidor físico. A densidade de máquinas virtuais é, claro, determinada pelas características de carga, bem como pelo hardware disponível. A virtualização utiliza muita memória e armazenamento, obviamente, pelo que tem de ser feito um planeamento cuidadoso. A memória e o armazenamento são relativamente baratos hoje e são certamente muitíssimo menos dispendiosos do que adquirir hardware de servidor adicional e pagar para o suportar. Não é incomum uma pequena empresa virtualizar facilmente meia dúzia de servidores num único equipamento de hardware, no mínimo, e uma vintena ou mais não é um número irrazoável de almejar alcançar.
Muitas pequenas operações saltam de imediato para a conclusão de que a virtualização requer dispendioso armazenamento SAN. Não é de todo esse o caso. A virtualização proporciona uma série de benefícios mesmo sem utilizar uma infraestrutura de armazenamento SAN, dos quais as operações podem tirar partido de imediato. Existem, claro, algumas vantagens significativas disponíveis ao utilizar SAN em conjunto com a virtualização e tecnologias de alta disponibilidade ou de balanceamento de carga. Frequentemente, porém, estas capacidades de alta disponibilidade e de balanceamento de carga são funcionalidades adicionais que não existiam antes da virtualização e não são necessárias para que uma operação veja benefícios significativos da virtualização, mas apresentam uma oportunidade de melhoria futura quando e se os orçamentos o permitirem.
As pequenas empresas verão muitas vantagens da virtualização de imediato, mesmo fazendo-o em pequena escala. Alguns destes benefícios são óbvios e outros são-no menos.
A nossa primeira vantagem é a do custo de hardware, como mencionei acima. Ao eliminar a necessidade de adquirir e suportar hardware de servidor dispendioso numa base por sistema operacional, podemos agora implantar mais sistemas a um custo mais baixo por sistema. Em muitos casos, isto não é apenas uma economia de custos, mas também proporcionará maiores fundos necessários para passar de servidores mais espartanos para ofertas menos numerosas, mas de classe mais empresarial, com importantes funcionalidades de desempenho, estabilidade e suporte, como a gestão de energia integrada e o KVM over IP a partir de uma consola de gestão out-of-band.
A nossa segunda vantagem é a economia de custos resultante da redução do consumo de energia. É muito na moda, e por boas razões, as empresas preocuparem-se hoje com o quão “verdes” são, e a virtualização de TI desempenha um papel fundamental na ecologização do departamento. A adição de máquinas virtuais a um único servidor físico representa normalmente um aumento trivial, se é que mensurável, no consumo de energia. Acrescentar servidores físicos adicionais, claro, acrescenta uma quantidade significativa de consumo de energia, mesmo para sistemas que são pouco utilizados ou utilizados apenas ocasionalmente.
A nossa terceira vantagem está na redução da complexidade dos backups. Os servidores virtualizados podem ser objeto de backup utilizando métodos completamente tradicionais, como backups ao nível do sistema de ficheiros a partir do próprio sistema operacional, tal como tornado popular por sistemas de backup tradicionais como NetBackup, BackupExec, Amanda, Bacula e outros. Assim, se desejarmos manter as estratégias de backup atuais, podemos fazê-lo sem qualquer complexidade adicional, mas se quisermos passar para backups baseados em imagens, podemos fazê-lo com bastante facilidade. Utilizar imagens de sistema como backups não é necessariamente novo ou exclusivo da virtualização, mas a virtualização torna isto muito mais óbvio e acessível para muitos utilizadores. De facto, com a virtualização, as imagens de sistema (uma cópia de todo o sistema, e não apenas dos seus ficheiros individuais) podem ser obtidas utilizando nada mais do que o sistema de ficheiros normal – sem necessidade de qualquer software especial. Um backup completo do sistema pode ser obtido simplesmente desligando o servidor virtual, fazendo uma cópia do seu sistema de ficheiros virtual – frequentemente um único ficheiro grande – e voltando a ligar o sistema. Restaurar um sistema pode ser tão simples como copiar um ficheiro de imagem de um dispositivo de armazenamento de backup para o servidor virtual e voltar a ligá-lo. Restauro concluído. Sistema novamente online. Não há nada mais simples do que isto.
A nossa quarta vantagem está na facilidade de provisionamento. Construir um novo sistema operacional de servidor diretamente sobre hardware é um empreendimento moroso para a maioria das operações. Isto é especialmente verdade se houver surpresas com um novo tipo de hardware que não tenha sido utilizado anteriormente. Pode haver drivers em falta ou definições e parâmetros especiais do sistema operacional necessários para suportar o hardware. Com a virtualização, a plataforma de destino é sempre idêntica, eliminando muitas surpresas deste processo, tornando-o ao mesmo tempo mais rápido e mais fiável. Em muitos casos, a implantação é também mais rápida simplesmente porque o processo de preparar a máquina base é muitíssimo mais rápido. Para iniciar uma instalação manual de Linux num servidor físico tradicional, tenho de adquirir o referido servidor, instalá-lo no rack, ligar a energia e a rede, provisionar a rede, ligar o servidor, atualizar o firmware, configurar o sistema de gestão out-of-band, fazer o burn-in do hardware, inserir os meios de instalação e começar a instalar. Ou, a partir de alguns ambientes de virtualização, posso simplesmente iniciar todo o processo com um único comando na linha de comandos. Implantar um novo servidor poderia passar de horas ou dias para minutos. Isto nem sequer começa a abordar a simplicidade de clonar sistemas existentes dentro de um ambiente virtual.
Uma quinta vantagem “suave” da virtualização é que existe, muito frequentemente, uma economia significativa de custos de software ao virtualizar. Alguns fornecedores, como a Novell com o Suse Linux, permitem-lhe virtualizar tantos servidores quantos quiser numa única máquina física, pagando apenas por uma única licença de máquina. A Red Hat dá-lhe múltiplas instalações, mas não ilimitadas como a Novell. A Microsoft tem uma gama de opções de preços de virtualização consoante as suas necessidades, incluindo uma licença de implantação ilimitada por processador. Num cenário de pior caso, terá de pagar por licenças adicionais de sistema operacional e de outro software exatamente como se estivesse a executar as mesmas máquinas fisicamente, mas em quase todos os casos há mais flexibilidade de preços e, frequentemente, reduções de custos dramáticas para múltiplos hosts virtualizados.
Um sexto benefício está na capacidade de “reverter” (roll back) um sistema operacional inteiro. A maioria das plataformas de virtualização permite um conceito de obter um snapshot do sistema, fazer alterações no sistema ativo e depois restaurar o sistema de volta ao seu estado original quando terminado. Isto é excelente para testes de software e especialmente para o teste de patches do sistema operacional ou de qualquer processo crítico de atualização em que algo correr mal poderia fazer com que o seu sistema deixasse de responder e potencialmente ficasse irreparável. A capacidade de “voltar atrás no tempo” para o snapshot mais recente, obtido segundos antes da aplicação do patch ou de uma alteração de configuração arriscada, pode ser um salva-vidas. Claro que obter um backup de imagem poderia ser utilizado da mesma forma, mas os snapshots permitem uma recuperação ainda mais rápida devido à sua “proximidade” do sistema de ficheiros original.
Todos estes benefícios atrás mencionados acompanham uma migração para a virtualização e não exigem custo adicional de software ou hardware. Se o nosso orçamento o permitir e a necessidade existir, há também a opção de acrescentar um ou mais servidores de virtualização e fazer com que estes servidores partilhem um SAN para armazenamento de imagens de máquinas virtuais. No mínimo, isto irá aproximadamente triplicar o custo do hardware, mas proporciona o dobro da capacidade de processamento e algumas funcionalidades realmente espantosas. A principal funcionalidade que realmente torna esta solução impressionante é o conceito de migração ao vivo (live migration). A migração ao vivo é quando um sistema operacional virtual pode ser movido, enquanto está em execução, de um servidor de virtualização físico para outro. Isto pode ser feito para fins de balanceamento de carga, teste de desastres ou para sobreviver a um próprio desastre. Com algumas soluções de migração ao vivo, geralmente vendidas como alta disponibilidade, esta migração pode ocorrer tão rapidamente que proporciona, na prática, “zero tempo de inatividade” e até servidores web intensamente utilizados poderiam sobreviver à perda de um servidor físico sem que os clientes jamais soubessem que um servidor físico tinha falhado. A transição entre os nós host de máquina virtual é completamente transparente para os utilizadores finais.
Há uma grande ressalva. Depender de um SAN num cenário de recuperação de desastres cria, claro, outro ponto de falha – o sistema SAN. Por isso, ao planear utilizar um SAN para aumentar a fiabilidade das suas máquinas virtuais, certifique-se de não utilizar um SAN que não seja tão redundante, ou mais, do que os próprios servidores, ou poderá aumentar o custo enquanto acidentalmente reduz a fiabilidade e o desempenho.
Para a pequena empresa média, não é improvável que faça sentido não só virtualizar parte da infraestrutura de servidores, mas virtualizá-la toda ou quase toda. As vantagens da virtualização são tão muitas e as suas desvantagens tão poucas e menores que é uma rara carga de trabalho no espaço das pequenas empresas que justificaria servidores de hardware dedicados.
Agora que examinámos por que a virtualização de servidores faz sentido, podemos começar a olhar para a virtualização de computadores de secretária. Ao contrário dos computadores de secretária e servidores reais, os computadores de secretária virtualizados acrescentam frequentemente alguma complexidade devido a requisitos de licenciamento, especialmente com os computadores de secretária Microsoft Windows.
Virtualizar computadores de secretária é também algo complicado porque existem muitos modos de fornecer computadores de secretária fisicamente. Obviamente, uma vez que começamos a falar de virtualizar a infraestrutura de computadores de secretária, estamos na verdade a falar de uma gama de soluções, porque algum dispositivo tem de existir sempre “na secretária” fornecendo um teclado, rato e monitor que não podem ser virtualizados, e o próprio sistema operacional de secretária tem de estar a ser executado noutro local. Mesmo sem virtualização, isto é feito (e por vezes comercializado como virtualização quando, na verdade, é simplesmente acesso remoto) muito comummente através de blades de secretária, computadores de secretária em rack ou servidores de terminal. Todas estas soluções movem o computador de secretária para o datacenter e fornecem acesso a ele quer a partir de front-ends de cliente fino (thin client) quer simplesmente através de software para máquinas existentes de utilizadores remotos, como utilizadores em casa que iniciam sessão no escritório.
Vamos começar com o conceito do servidor de terminal, uma vez que este é o mais facilmente virtualizado e o mais direto. Quer estejamos a falar de virtualizar o servidor no qual executamos o Microsoft Terminal Server (agora conhecido como Remote Desktop Services), o Citrix XenApp ou simplesmente um servidor de terminal de ambiente de trabalho remoto Linux padrão, não precisamos de fazer nada mais do que instalar esse servidor num ambiente virtual em vez de num ambiente físico. É realmente uma questão de virtualização de servidores e não de virtualização de computadores de secretária – é apenas percecionada pelo utilizador final como estando relacionada com os seus computadores de secretária.
O outro método de virtualização de computadores de secretária, a “verdadeira virtualização de computadores de secretária” como lhe chamarei, é executar efetivamente imagens de sistema operacional de secretária num servidor virtual, tal como se fossem computadores de secretária normais dedicados a um utilizador. Isto significa virtualizar sistemas operacionais como Windows XP, Windows Vista ou Windows 7, com cada imagem dedicada a um único utilizador, tal como se fosse um computador de secretária físico. Poderíamos, teoricamente, fazer o mesmo com Linux ou outra variante de Unix, mas como esses sistemas não têm licenciamento por utilizador nem versões específicas de secretária, e uma vez que executam sempre os seus ambientes de trabalho em modo de servidor, só conseguiríamos distinguir entre um verdadeiro computador de secretária virtualizado e um servidor de terminal baseado em Unix pela sua utilização e não por quaisquer meios tecnológicos estritos, uma vez que são uma e a mesma coisa. Apenas o Windows oferece verdadeiramente um modelo de secretária dedicado que permite que isto aconteça desta forma particular, sem o conceito de acesso partilhado a uma única imagem em simultâneo.
Devido a restrições de licenciamento da Microsoft, os computadores de secretária Windows têm de ser instalados uma imagem por utilizador, mesmo que existam tecnologias que tornem isto tecnologicamente desnecessário, mas mesmo assim há benefícios neste modelo. Os grandes benefícios dos computadores de secretária virtualizados vão definitivamente para empresas que têm colaboradores que se deslocam quer internamente quer mesmo externamente.
Utilizar computadores de secretária virtualizados proporciona muito mais controlo à empresa do que fornecer portáteis. Os portáteis podem ser roubados, perdidos ou danificados. Os portáteis desgastam-se e precisam de ser substituídos regularmente. Um computador de secretária virtual que é tornado acessível a partir do exterior da empresa pode ser protegido e salvaguardado de formas que um portátil não pode. As atualizações são muito mais simples e não há a preocupação de o computador de secretária virtual ficar isolado da rede corporativa e impossibilitado de ser suportado pela equipa de TI.
Quase qualquer trabalhador que utilize um computador no escritório já tem um em casa para uso pessoal e frequentemente tem também um portátil, para além de acesso à Internet de alta velocidade. Fornecer acesso remoto a um computador de secretária virtual no escritório, portanto, potencialmente não incorre em qualquer despesa adicional de hardware para a empresa ou para o pessoal, ao mesmo tempo que alivia os encargos administrativos, reduz o consumo de energia e aumenta a segurança. Alguns trabalhadores exigirão sempre portáteis, mas muitos não.
Para os trabalhadores que continuam sentados a uma secretária tradicional dentro das instalações da empresa, há ainda a necessidade de algo fisicamente colocado na secretária que ligará o teclado, rato e monitor ao computador de secretária recém-virtualizado. Isto poderia ser um PC antigo que estava destinado à reforma, um cliente fino de hardware dedicado ou mesmo um portátil. O pessoal interno pode então deslocar-se pelo escritório ou entre escritórios e sentar-se a qualquer secretária disponível com um cliente fino e iniciar sessão no seu próprio computador de secretária virtual dedicado e trabalhar exatamente como se estivesse na sua própria secretária. Podem depois ir para casa e trabalhar a partir daí também, se isso for permitido.
Tal como os servidores virtualizados, os computadores de secretária, se a necessidade o justificar, podem ser facilmente objeto de backup utilizando quer meios tradicionais quer simplesmente obtendo imagens completas do sistema. A flexibilidade está lá para fazer o que fizer mais sentido no seu ambiente.
Com a complexidade e o custo surpresa do licenciamento, bem como a falta de capacidade de eliminar completamente o hardware na secretária exceto para utilizadores exclusivamente remotos, a virtualização de computadores de secretária dificilmente é a escolha evidente que a virtualização de servidores é. A virtualização de computadores de secretária exigirá uma análise cuidadosa caso a caso para determinar se irá satisfazer as necessidades de custo e usabilidade da organização individual. A maioria das organizações que escolhem seguir este caminho provavelmente optará por virtualizar apenas parcialmente – utilizando-a apenas nos casos em que faz mais sentido, como utilizadores itinerantes e trabalhadores remotos, mantendo computadores de secretária tradicionais para aqueles utilizadores que raramente estariam em posição de tirar partido desta tecnologia. Utilizar opções de servidor de terminal será frequentemente muito mais comum do que a “verdadeira virtualização de computadores de secretária”, que muitas vezes só faz sentido para utilizadores avançados, programadores ou para suportar certas aplicações que funcionam mal em modo de servidor de terminal.
Há uma utilização final da virtualização que merece discussão, ainda que apenas porque é importante compreender a sua utilização no ambiente empresarial. Este tipo final de virtualização não é utilizado para colocar sistemas operacionais no datacenter sobre hardware de servidor, mas em vez disso é utilizado para executar imagens adicionais de sistema operacional em computadores de secretária e portáteis tradicionais. Este é um cenário comum para pessoas que precisam de testar múltiplos sistemas operacionais para suporte ou desenvolvimento. Não é útil para sistemas de produção e está geralmente fora do âmbito desta discussão. É uma utilização altamente útil da tecnologia, mas é antes um cenário de nicho, principalmente útil para testes de compatibilidade.
Em toda esta discussão não houve, de forma algo conspícua, qualquer menção aos produtos Mac OSX da Apple. Há uma razão para isto. A Apple não licencia o Mac OSX de modo a que possa ser virtualizado em hardware não Apple e a Apple não tem um produto de virtualização pronto para empresas disponível para a sua própria plataforma. A única forma de virtualizar o Mac OSX é adquirir licenças completas e adicionais para cada instância do sistema operacional, eliminando assim a maioria dos benefícios de custo desta abordagem, e executá-lo sobre um produto de virtualização baseado em host, como o VMWare Fusion ou o Parallels, que são concebidos para utilização sobre um computador de secretária e não como um produto de classe servidor. Esta é uma grande lacuna no portefólio do Mac OSX e uma das formas pelas quais a Apple continua a ficar atrás do resto do mercado em capacidade e na sua compreensão das necessidades dos seus clientes empresariais. Se a Apple alterasse a sua estratégia de licenciamento em torno da virtualização, o Mac OSX revelar-se-ia um sistema operacional extremamente popular e útil para virtualizar, tanto da perspetiva de servidor como de computador de secretária.
A virtualização é uma excelente oportunidade para reduzir custos e aumentar a produtividade ao mesmo tempo que se reduz o risco para empresas de qualquer dimensão e com orçamentos tão baixos como zero. Muitas tecnologias prometem melhorias importantes para as empresas, mas a maioria cria valor questionável ao mesmo tempo que incorre em custo real. A virtualização traz valor real e mensurável, frequentemente não custando nada e muitas vezes reduzindo gastos de imediato. Para muitas empresas, a virtualização é a tecnologia com que sempre sonharam e está, de facto, disponível hoje.
