SAF 2008 - Dia 01 : Forum de Virtualização

Olá pessoal, tudo certo?

image Direto do SAF 2008, em San Francisco, as sessões do primeiro dia foram agrupadas entre Virtualização e Interoperabilidade. Acompanhei as discussões sobre os dois temas, mas dedico esse post sobre a Virtualização.

De fato, Virtualização tem se tornado um tema obrigatório sobre a organização da TI nas empresas que desejam reduzir custos e complexidade de operação, enquanto aumentam a eficiência. Existem ainda diversas abordagens que podem ser exploradas para a construção de arquiteturas que consideram a virtualização como componente. Do mesmo modo, ainda encontramos diversas questões em aberto na definição de nossas aplicações para uma arquitetura virtualizada.

Na plataforma Microsoft, por exemplo, podemos destacar algumas abordagens para a Virtualização, como:

  • Virtualização de Servidores (Server Virtualization)
  • Virtualização de Desktop (Desktop Virtualization)
  • Virtualização de Aplicações (Application Virtualization)
  • Virtualização de Apresentação (Presentation Virtualization)

image

Enquanto o mercado de Virtualização tem amadurecido ao longo dos últimos anos, a mesma evolução na construção de aplicações para esse tipo de infra-estrutura não tem sido observada. Ainda sofremos com aspectos como instrumentação, planejamento de capacidade, escalabilidade da aplicação e mesmo interação entre componentes da aplicação entre máquinas virtuais distribuídas.

Durante o Forum sobre Virtualização do SAF 2008, algumas recomendações foram apontadas como importantes para a construção de aplicações que terão um melhor comportamento e gerenciamento num ambiente virtualizado. Vejamos:

  1. Adote como uma boa prática a decomposição de sua aplicação ou sistema em WORKLOAD's, ou seja, volumes de trabalho ou cargas de execução que sejam mensuráveis. Esses WORKLOAD's permitirão uma melhor análise durante o processo de planejamento de capacidade ao longo da evolução do sistema, organizando a distribuição de carga ao longo do dia, da semana, do mês, etc.;
  2. Organize as relações de dependência entre SERVIÇOS bem definidos. Essa decomposição no nível de serviços também é parte do processo de organização de uma aplicação em termos de módulos funcionais. Devemos lembrar sempre que existem funcionalidades que não são necessárias todo momento, evitando o consumo de recursos críticos do ambiente;
  3. Trabalhe com o conceito de SCALE UNIT, unidade granular de escalabilidade, que permitirá uma redução no tamanho mínimo de uma aplicação virtualizada, assim como um melhor dimensionamento durante o aumento de capacidade da aplicação;
  4. O conceito de Synchonicity (que define a necessidade por scale-out de uma aplicação) não deve ser mais considerado em termos de servidores, mas sim de imagens de servidores virtuais. Essa definição é crítica para a organização que trabalha com virtualização e muitas vezes não é considerada no planejamento de capacidade da aplicação;
  5. Finalmente, como principal mecanismo de gerenciamento e monitoração de um ambiente virtualizado, o forum recomendou fortemente uma maior instrumentação de código durante a construção de nossas aplicações. Somente com aplicações muito melhor instrumentadas é possível uma maior visibilidade sobre o comportamento e tratamento de exceções em um ambiente virtualizado distribuído.

Uma última consideração feita durante o forum foi que a operação de sistemas em ambiente virtualizado não é uma questão apenas para o time de infra-estrutura. Antes, deve envolver grandemente o time de soluções e desenvolvimento, definindo melhores componentes de instrumentação, monitoração e pensando o dimensionamento em termos de volumes de trabalho (workloads). As discussões estão apenas começando e continuam durante a semana.

Por enquanto é só! Até o próximo post :)

Waldemir.