Archive for novembro \16\+00:00 2011

Mitos e “verdades” sobre Cloud Computing

novembro 16, 2011

Fazendo um balanço das inumeras palestras e eventos sobre Cloud Computing que participei este ano, coletei algumas das principais duvidas e questões, muitas vezes recorrentes, que surgiram. São questionamentos perfeitamente válidos, uma vez que por ser um conceito ainda não dominado muitos mitos e “verdades” pululam por aí.

É indiscutivel que Cloud está se disseminando e recentemente foi o tema de redação do vestibular para a Unicamp (http://computerworld.uol.com.br/tecnologia/2011/11/13/vestibular-da-unicamp-traz-computacao-em-nuvem-como-tema-de-redacao/). Portanto, nada mais natural que os executivos de TI e de negócios queiram esclarecer suas dúvidas e mitigar seus receios.

Não vou abordar a questão da segurança. Já falamos bastante disso aqui e vou me concentrar em outras duvidas que sempre surgem nestes debates. A primeira questão é relativa a custos. Cloud Computing realmente diminui os custos de TI?

Para responder vamos analisar as diferenças entre cloud e a infraestrutura de TI tradicional. No modelo atual, os recursos fisicos (servidores, storage, etc) são de propriedade ou gerenciados pelas áreas de TI das empresas. De maneira geral os níveis de utilização são baixos e uma parcela significativa da capacidade computacional fica ociosa. Como resultado temos máquinas e data centers que não são plenamente usados, com consequente altos custos por unidade de trabalho. Já um ambiente virtualizado, embora os recursos fisicos ainda sejam de propriedade da empresa, são virtualizados em multiplos recursos lógicos, aumentando o nivel de utilização e baixando os cutos unitários de trabalho.

O ambiente de cloud é basicamente um ambiente virtualizado + padronizado + automatizado e em consequencia não apenas os recursos fisicos são melhor utilizados (virtualização), como os processos de gestão (provisionamento, alocação e gerenciamento) são automatizados, reduzindo-se os custos mais ainda. Claro que existe uma diferença entre nuvens privadas, onde a empresa ainda é proprietária dos recursos “cloudificados” e as nuvens publicas, onde o custo da infra é do provedor. Um nuvem pública, por seu potencial de larga escala opera, de maneira geral, com custos unitarios bem menores que os dedicados a uma unica empresa. Uma nuvem publica é a que melhor explora a economia de escala, conseguindo custos unitários por unidade de trabalho bem mais baixa que as demais alternativas.

Mas, o resultado é que, de maneira geral, o modelo de cloud, privada ou publica, tende a oferecer custos menores que o modelo tradicional.

Outro ponto interessante é uma pergunta que volta e meia surge: “Cloud privada pode ser considerada uma cloud verdadeira?”. Uma empresa, para construir uma nuvem privada precisa investir em ativos computacionais e nos softwares que compõem a camada de inteligência da nuvem, que são os componentes que permitem implementar a virtualização, padronização e automação. Também é uma nuvem finita, pois os seus limites são a capacidade instalada de seu data center. Mas, na minha opinião, um nuvem privada tem inumeras vantagens em relação ao modelo on-premise atual (um exemplo é a elasticidade e maior flexibilidade para alocação de recursos) e embora não ofereça os beneficios de escala que um grande provedor de nuvem publica pode oferecer, ainda é vantajoso. Além disso, reduz os receios da entrada na nuvem, pois opera sob as políticas e controles de segurança da própria empresa.

Outra questão é por onde começar? Não existe respostas prontas, mas para qualquer iniciativa de cloud é pré-requisito obter suporte executivo e budget alocado. Depois selecionar um projeto proof-of-concept ou mesmo uma implementação real. Muitas vezes um POC pode custar tanto quanto um projeto real e porque não começar mostrando o que cloud pode gerar de benefícios com um projeto real? O resultado de um projeto piloto de cloud bem sucedido é a comprovação do dito popular “ver-para-crer”. É incrivel observar como um executivo cético se entusiasma quando vê em um portal a solicitação e a alocação de recursos computacionais em minutos e não mais nos vários dias aos quais ele está acostumado. Uma sugestão é o ambiente de desenvolvimento e teste. Muitas vezes cerca de 50% dos esforços de TI são dispendidos nestas atividades, e geralmente os ambientes reservados para testar os aplicativos são subutilizados e o ciclo de resposta para as solicitações dos desenvolvedores é lenta e burocrática. Transfomar isso em um processo automático, self-service, atendido em poucos minutos gera um efeito positivo que acelera as demais inciativas em cloud. Mas a receita é “start small, grow fast”. Não esqueça que existe todo um processo de migração para cloud, que demanda esforço extra para manter a interoperabilidade entre sistemas em ambiente em cloud (publica e/ou privada) e os sistema ainda on-premise. A mudança é gradual e esta convivência pode durar muitos e muitos anos.

Uma outra duvida que volta e meia surge é que mudanças devem acontecer em TI para suportr cloud. Cloud não é apenas tecnologia. É um novo modelo computacional que muda as regras de uso de TI, afetando tanto os provedores de serviços e produtos de TI como seus consumidores. Portanto, claro que muitos processos serão afetados, desde o relacionamento produtor-consumidor (novos modelos de negócio e contratos) até os modelos e processos de governança já estabelecidos na área de TI. Obter skills em cloud é absolutamente essencial e muitas vezes será necessário recorrer a consultorias externas.

No fim do dia cloud já está aí. As áreas de TI não podem ignorar esta tendência e devem liderar o processo. O modelo de cloud permite a proliferação do “shadow IT”, aquelas iniciativas disparadas pelos próprios usuarios sem participação de TI. A disseminação descontrolada desta TI invisivel pode acarretar problemas futuros em termos de segurança e interoperabilidade. Assim, TI pode e deve aproveitar o modelo de cloud para ser um ator importante e liderar a transfomação da propria TI na organização.

Debatendo o uso de TCO em Cloud

novembro 3, 2011

Venho observando que os questionamentos sobre cloud computing se concentram em questões de segurança e perda de dados. Mas existe um outro aspecto que devemos considerar e que quero chamar atenção neste post. O fato de sairmos do modelo concentrado em capex (capital expenses) para opex (operating expenses) tem diversas implicações que, as vezes, passsam desapercebidas. Na prática, na maioria das médias e grandes empresas veremos ambientes mixtos, ou nuvens híbridas, com uso tanto de nuvens privadas como públicas. Pode ser que os investimentos upfront, em ativos diminua, mas os custos operacionais continuarão existindo e provavelmente sendo mais significantes.

Para evitar surpresas desagradáveis é sempre bom entender os fatores de custos de um ambiente em nuvem. O nosso velho e bem conhecido TCO pode e deve ser aplicado, com as adequações necessárias. Provavelmente, o O pode, no caso de uso de nuvens publicas, ser chamado de Operations e não de Ownership. Em uma nuvem publica o investimento em capex é do provedor. O TCO tradicional olha o custo de propriedade do hardware e software que voce adquire. Mas em uma nuvem publica não existe este custo. Por outro lado você está adquirindo serviços (IaaS ou SaaS, por exemplo) e tem que pagar os fees destes serviços. Se compararmos a distribuição percentual de custos de um ambiente cliente-servidor com o de uma nuvem publica veremos uma diminuição significativa no percentual dos custos de capital e trabalho (custos de pessoal) mas um aumento representativo dos fees de serviços contratados. O importante é que o custo total seja menor…

Também existem alguns custos que passam meio esquecidos quando pensamos em adoção da computação em nuvem. Alguns exemplos são o custo da implementação e migração para o ambiente em nuvem, a gestão deste ambiente e as questões referentes a compliance e disponibilidade.

Vamos exemplificar com um caso hipotético, de uso de nuvem publica. Ao levar algumas aplicações para esta nuvem e deixarmos outras on-premise podemos com certeza observar que as aplicações quase sempre se ligam umas com as outras. Dificil encontrar uma aplicação totalmente isolada.

Neste caso, supondo que um aplicação na nuvem precise de dados que rodam em uma outra on-premise, existe o custo de transmissão destes dados. Muitas vezes analisamos o custo da nuvem publica pelo valor do minuto de processamento e esquecemos dos custos de transmissão e armazenamento de dados. O pior caso é quando uma aplicação na nuvem precisa acessar um banco de dados gerado e previamente atualizado por uma aplicação que roda on-premise. Neste caso além de duas cópias do banco, uma on-premise e outra na nuvem publica, todas as alterações efetuadas on-premise devem ser transmitidas à cópia que reside na nuvem publica. Aos custos de processamento da nuvem publica devem ser acrescidos os de transmissão dos dados e do armazenamento do banco nesta nuvem. Estes custos podem variar de provedor para provedor.

Por exemplo, analisando a estrutura de custos da Amazon observamos que os custos de gravação de dados é cerca de dez vezes maior que os da leitura destes dados. Os ambientes operacionais tmbém mostram variação. Geralmente os custos de servidores virtuais ou cloudificados em Linux são menores que os do Windows.

Fiz algumas simulações usando preços de mercado de alguns provedores de nuvens publicas e um exemplo me chamou a atenção. Processando um grande banco de dados, no nivel dos terabytes, com redundância e pelo menos 1% de atualizações neste banco o custo de processamento dos servidores foi de menos de 0,1% do custo total. A conclusão é óbvia: olhar com atenção todos os custos e não apenas o mais divulgado que é o custo de alguns centavos de dólar (ou reais…) por hora de servidor.

Uma lição é escolher bem as aplicações que irão para as nuvens publicas. Quanto menos acoplamentos com as que ficarem on-premise melhor. Ou seja, quando escoher as que irão para estas nuvens escolha as que operam em conjunto, compartilhando os mesmos bancos de dados. Reduzir os custos de transmissão é relevante e não deve ser esquecido.

Analisar a estrutura de custos do provedor é essencial. Como alguns cobram por cada operação de I/O (gravação maior que leitura) uma blocagem maior, ou mais registros por bloco de dados, diminui os custos.

Cloud computing tem varios atrativos e com certeza, irá, ao longo dos próximos anos se tornar o modelo computacional dominante. Mas entrar no ambiente de nuvem sem um estudo adequado e sem entender a estrutura de custos dos provedores de nuvens publica podem tornar o setor de TI mais caro que atualmente. Um estudo mais aprofundado de TCO deve ser feito e com certeza pode contribuir signficativamente para entender os custos da nuvem, principalmente os ocultos…