Há alguns dias participei de mais um evento sobre Cloud Computing. Aliás, no decorrer dos últimos anos participei de incontáveis eventos e reuniões com clientes para debater este assunto. Participei também de vários projetos proof-of-concept. Vi e ouvi muita coisa nestas ocasiões e aproveitei uma caminhada em torno da lagoa Rodrigo de Freitas (moro no Rio) para filosofar um pouco sobre o assunto.
Na minha opinião cloud não é apenas um upgrade tecnológico para os data centers, mas uma mudança de paradigma em como provisionamos e usamos recursos computacionais nos data centers. Hoje provisionamos e utilizamos servidores. Em cloud, o servidor é o data center. Cloud computing implica uma mudança significativa na maneira como vendemos e consumimos produtos e serviços de tecnologia da informação e, apesar de muitos eventos e debates sobre o assunto, ainda paira uma certa descrença sobre seus impactos. Assim, creio que será interessante debater um pouco mais os desafios que as empresas, tanto fornecedoras como consumidoras de tecnologia, terão pela frente.
As decisões de quando adotar cloud (a pergunta “se”, já foi respondida…Cloud será adotado, mais cedo ou mais tarde) demandam uma análise dos benefícios versus os riscos e os efeitos da computação em nuvem na empresa. E a decisão tem relação direta com o grau de maturidade não apenas da tecnologia disponível no mercado, mas da organização e cultura da empresa.
Vamos olhar por exemplo as grandes corporações. Elas são inerentemente complexas e para cloud gerar um valor real deve abranger muito mais que ser uma plataforma para um ambiente isolado, como o de desenvolvimento e testes de aplicações. Este deve ser apenas o primeiro passo e deve estar inserido em uma estratégia maior. O cerne da questão: estratégia de cloud não deve ficar apenas nas mãos de TI, mas deve envolver a organização. Por outro lado start-ups não tem que lidar com sistemas legados e podem entrar direto no ambiente de cloud. Não tem sentido uma empresa começar a operar emulando o modelo atual de sistemas on-premise, instalando hardware e software dentro de casa.
Se olharmos cloud veremos que o atual modelo de entrega de recursos de TI se assemelha ao modo como era a energia elétrica no principio do século passado. As indústrias tinham que construir e manter suas fontes geradoras de energia, que não eram o seu negócio. Hoje a maioria das empresas constróem e mantém seus próprios data centers, mesmo que não sejam seu campo de expertise. O resultado? Muitos data centers são ineficientes. Recomendo a leitura de uma série de artigos publicados em 2008 (mas ainda bem atuais) pelo The Economist em http://www.economist.com/node/12411882. O modelo de computação em nuvem pode, potencialmente, mitigar esta ineficiência, permitindo que recursos como servidores e storage sejam entregues e usados como serviços, assim como energia elétrica. Ora, porque Cloud não pode ser visto como uma utility, como uma concessionária de energia elétrica?
Vamos analisar quais os pontos em comum entre um serviço de utility como energia, água e telefonia, e a computação em nuvem. Quais são as características básicas de um serviço de utilidades, como água, energia e telecomunicações?
Logo no início lembramos da alta dependência do serviço. Não podemos viver sem água ou energia. Basta ver os efeitos de um apagão elétrico na sociedade, os transtornos que causa.
Outra característica é a confiabilidade no serviço. Água, por exemplo; ao abrirmos a torneira nossa expectativa natural é que a água caia. Não se espera que o serviço não esteja disponível.
Usabilidade é outra característica. Uma torneira é muito fácil de usar. Uma tomada só necessita que se conecte o plug do aparelho elétrico. Um celular é algo que uma criança de dois anos sabe usar para fazer uma ligação.
E, outro aspecto relevante é a elasticidade. Pagamos estes serviços pelo que consumimos e sabemos que podemos consumir mais ou menos. Podemos consumir muita energia no verão carioca, com aparelhos de ar condicionado ligados 24 horas por dia, e deixar a casa às escuras quando saimos em férias.
Para o provedor existe uma outra característica relevante que é o nível de utilização. Ele precisa gerenciar os picos e vales pois as demandas dos usuários dos serviços de utility flutuam amplamente no tempo. Se ele mantiver uma infraestrutura configurada para a demanda de pico, vai arcar com um custo elevado. Por outro lado, se a infraestrutura for insuficiente, não irá atender à crescimentos rápidos da demanda.
E quanto aos modelos de negócios? Basicamente as utilities cobram pelo uso (pay-as-you-use), como água e energia, ou por assinatura, como provedores de banda larga, que ofertam serviços ilimitados mediante assinatura mensal.
Mas, como é a TI na maioria das empresas? Bem diferente deste modelo de utilities. Até a questão do pay-as-you-go vai demandar um maior amadurecimento dos processos e cultura. TI é visto muitas vezes como centro de custo e não como gerador de negócios. Não existe billing dos seus serviços entre os departamentos da empresa e muitas vezes nem mesmo existe rateio proporcional à suas demandas.
Cloud computing também afeta as relações entre a área de TI e seus usuários. Vamos recordar um pouco a história recente da computação. TI ganhou importância nas empresas porque a tecnologia demandava expertise para programar e controlar as aplicações. Na época do modelo centralizado, TI dominava 100% das atividades de computação nas empresas. Com a chegada dos PCs, os usuários passaram a ter condições de desenvolver eles mesmos muitas das suas aplicações e o controle abosluto de TI começou a ruir. Muitas aplicações não eram mais escritas pelos técnicos de TI, mas compradas prontas ou escritas pelos usuários em linguagens de alto nível, que abstraiam as tecnicidades. Com o PC, TI passou a ser o coordenador do acervo computacional, mantinha os sistemas corporativos e se responsabilizava pelos processos de segurança, backup etc. Mas não era mais o único desenvolvedor de aplicações.
Este processo está se acelerando com a chegada dos tablets, smartphones e a computação em nuvem. Os usuários podem agora substituir sistemas antes providos pela área de TI por aplicações disponíveis em nuvens publicas. É o processo de desintermediação. TI tem que assumir outro papel: o de coordenar e monitorar o uso de nuvens e até mesmo gerar processos de certificação de que serviços podem ser obtidos de quais provedores de nuvem. De qualquer maneira está claro que a influencia dos usuarios no uso e adoção de computação nas empresas é cada vez maior e TI será obrigado a mudar seu papel de provedor de recursos computacionais para certificador e consultor.
Vamos exemplificar o novo cenário? Hoje, um departamento usuário que demande uma nova aplicação vai requerer de TI a aquisição dos equipamentos, como servidores e banco de dados. O processo de compras e instalação pode levar alguns meses. Mas com cloud ele pode ir direto ao provedor e adquirir na nuvem servidores virtuais e aplicativos SaaS, pagando com seu próprio budget, sem passar pela área de TI. Desta forma ele bypassa os processos e procedimentos de segurança adotados por TI e pode gerar problemas futuros, mas consegue ter resultados de negócio em curtíssimo prazo, o que agrada aos acionistas!
O que TI deve fazer? Entender o cenário e não remar contra, mas assumir o quanto antes seu novo papel neste contexto. E tem muito trabalho pela frente: por exemplo, como agir diante de uma falha em uma nuvem pública? Os usuários não pensam neste assunto, mas estarão dependentes de suas aplicações em uma nuvem que pode sair do ar. O que fazer? Se uma empresa colocar todos seus sistemas em uma nuvem pública, perderá a expertise técnica que detém hoje em sua área de TI, e ficará nas mãos do provedor. Este provedor tem expertise suficiente para responder aos problemas que eventualmente surgirão? Esta é outra questão que TI tem que agir agora: selecionar e certificar provedores de nuvem.
A questão de custos tem que ser analisada com cuidado. De maneira geral olha-se os custos de uma nuvem publica observndo-se os custos de hora de servidor. Mas, os custos de trasmissão de dados? Além disso, à medida que os modelos de serviços de cloud evoluem, novas modalidades de pagamento surgem e o planejamento de capacidade ajuda a identificar qual seria a melhor opção. Não é dificil imaginar no futuro vermos o mercado de provedores de clouds públicas ofertando recursos com preços diferenciados, de acordo com o período do dia ou do mês. Aliás, já vemos alguns primeiros exemplos desta prática, como o modelo spot pricing da Amazon. Neste modelo você faz um leilão para usar recursos ociosos da nuvem da Amazon. Imagine que você queira pagar até 1 dólar por hora de servidor. A Amazon flutua o preço hora de servidor de acordo com a demanda. Vamos supor que o preço de hora de servidor esteja, em determinado momento a 75 centavos de dólar. Neste momento, a Amazon verifica quais usuários querem participar do leilão e quais deles oferecem preços de 75 centavos ou acima. Como voce definiu que pagaria até um dólar, você é um candidato a participar do leilão e eventualmente sua máquina virtual é selecionada e alocada. Ela fica operando até que o preço hora do servidor suba (pelo aumento da demanda) e seu preço de até um dólar fica abaixo do valor. Neste momento o seu servidor virtual é colocado em stand by. Claro que nem todas aplicações podem usufruir desta funcionalidade. Temos, portanto, mais uma atividade que necessita de expertise técnica que a empresa não pode desprezar.
Outros temas que precisam ser bem avaliados quando decidindo adoção da computação em nuvem são as questões que envolvem a segurança, privacidade e aspectos legais. Métodos e processos de segurança mudam a cada vez que o modelo computacional muda. Foi assim quando surgiu o cliente-servidor e muitos dos métodos adotados para ambientes centralizados tornaram-se inúteis. Foi assim quando a Internet passou ser parte integrante dos processos de negócio e os métodos adotados para segurança internos mostraram-se insuficientes e tiveram que ser modificados. Com adoção de cloud computing a história está se repetindo. Temos que repensar muitos dos processos de segurança atualmente adotados.
Um provedor de nuvem publica pode ser alvo de ataques como denial of service (DoS) e este ataque pode ser direcionado a alguns (ou algum) alvos especificos. Ou seja, o ataque não é dirigido ao provedor mas a um dos clientes dentro do provedor. Neste caso, qual é velocidade de reação do provedor diante desta situação?Tem um case conhecido, antigo, de 2009, mas que serve de orientação para casos similares. Vejam em http://blog.bitbucket.org/2009/10/04/on-our-extended-downtime-amazon-and-whats-coming/ . Para questões de segurança em cloud recomendo acessar a Cloud Security Alliance, em https://cloudsecurityalliance.org/ . Recomendo também acessar o site da ENISA (European Network and Information Security Agency) para um relatório muito abrangente sobre segurança em cloud computing, em http://www.enisa.europa.eu/act/rm/files/deliverables/cloud-computing-risk-assessment . Como TI pode se envolver nas questões de segurança em cloud? Por exemplo, analisando os provedores e avaliando se suas práticas de segurança se adequam as políticas de compliance da empresa.
Como vemos, tem muito espaço para TI atuar no mundo da computação em nuvem. Portanto, ao invés de receios, TI deve ver na computação em nuvem grandes oportunidades, deixando de lado atividades que não agregam valor (instalar hardware e sistema operacional) e considerado como centro de custos, para ser visto como facilitador de novas receitas e novos negócios.