Tendências em Foco coluna Cezar Taurion ([email protected] e blog http://www.ibm.com/ developerworks/blogs/page/ctaurion) é formado em Economia e Ciências da Computação, atualmente gerente de Novas Tecnologias Aplicadas da IBM Brasil. Também pode ser encontrado no Twitter, em @ctaurion. Open Source em Cloud Computing! loud Computing é um tema que vem despertando bastante interesse. Muitos ainda questionam se não será apenas hype. Não, não é hype. Na verdade, constantemente aparecem conceitos e tecnologias ditas disruptivas, mas que não “decolam”. Relembrando Clayton Christensen, em TFVMJWSPi*OOPWBUPST%JMFNNBwBWFSEBEFJSBEJTSVQÎÍPBDPOUFDFRVBOEP ou uma nova inovação tecnológica ou um novo modelo de negócio desloca de forma inesperada uma tecnologia ou modelo já estabelecido. Em TI, podemos pensar de imediato nos HTML/HTTP e no Open Source. Cloud Computing não é uma inovação tecnológica, pois se baseia em diversas tecnologias já existentes, como virtualização e grid computing, mas é uma verdadeira disrupção na maneira de se gerenciar e entregar TI! nais com muito menor custo, através de intenso compartilhamento de recursos, economias de escala e simplificação dos processos operacionais. Há um círculo virtuoso entre eles. A Computação em Nuvem se beneficia do maior uso de Open Source, porque seu uso elimina dependências críticas que afetariam a entrega de seus serviços. E quanto mais a Computação em Nuvem utilizar Open Source, mais maduro e evoluído estes softwares se tornarão, amplificando seu uso. Na verdade, Open Source pode e deve encontrar na Computação em Nuvem mais um canal de distribuição. As comunidades Open Source poderão criar código para ser executado nas plataformas como serviço e esta alternativa abre um novo cenário de obtenção de receitas para estas comunidades: pagamento pelo uso do software disponibilizados nas plataformas e marketplaces SaaS. Na minha opinião, a computação em nuvem vai transformar o modelo econômico da TI, tanto do lado consumidor de TI, quanto do lado dos fornecedores de tecnologias e serviços. Claro que estamos dando os primeiros passos e vemos ainda muitas incertezas e indefinições. Se olharmos com mais detalhes a Computação em Nuvem veremos três modelos básicos que são IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software as a Service). Esta classificação de modelos é a mais comumente adotada e, inclusive, recentemente o NIST (US National Institute of Standards and Technology), que define padrões para o governo americano, liberou documentação onde se baseia nestes modelos para classificar as nuvens computacionais. Por outro lado, olhando pelo prisma do deployment (deployment models) podemos classificar as nuvens em privadas (operada dentro do firewall da empresa), comunitária (compartilhada por determinadas empresas), públicas (abertas a todos, via internet) e híbridas, que é a composição de duas ou mais destas nuvens. O resultado final é que a simbiose entre Computação em Nuvem e Open Source vão pressionar a indústria de TI como um todo, afetando a margem dos modelos de comercialização tradicionais. Já vemos as primeiras e bem-sucedidas experiências baseadas em Open Source, com diversos projetos muito interessantes, como: C E como não poderia deixar de ser, o movimento Open Source também está muito presente na computação em nuvem. Existe uma simbiose entre Computação em Nuvem e Open Source. Se visualizarmos um massivo data center com milhares de servidores comoditizados e um ambiente virtualizado, parece claro que o uso de softwares de código aberto permite reduzir mais ainda os custos operacionais e reduzir a dependência dos provedores de nuvem dos fornecedores de tecnologia. Mas existe também uma variável adicional e importante que aumenta a simbiose entre a Computação em Nuvem e o Open Source. A Computação em Nuvem é basicamente serviço. E serviço é fundamentalmente diferente do modelo tradicional de comercialização de software, que é feita pelo modelo de licença de uso. Quando um usuário “compra” um software, ele adquire o direito de usá-lo por algum tempo, geralmente pela duração do contrato, embora este direito não lhe ceda a propriedade e patentes do software, que continua nas mãos de fornecedor. Este contrato de licença de uso governa os termos e condições de uso do software pelo usuário e pode ser modificado pelo fornecedor à sua discrição. Na prática, a licença de uso determina basicamente as obrigações do usuário. Serviços, por outro lado, são governados por contratos ou acordos de níveis de serviço, que definem as obrigações a que o fornecedor acorda, em troca dos pagamentos pelo usuário. Se não houver cumprimento do acordo, o pagamento simplesmente não é efetuado. É diferente da licença de uso do software, uma vez que o usuário paga antecipadamente pelo seu uso e mesmo que o software deixe de funcionar a contento, ele não tem direito a nenhum ressarcimento. Vemos que a diferença fundamental é que acordos de nível de serviço definem as obrigações do provedor, enquanto licença de software determina as obrigações dos usuários. Computação em Nuvem e Open Source alteram os princípios básicos dos modelos econômicos da indústria de TI. Open Source elimina as possibilidades dos fornecedores explorarem os termos tradicionais de licença de uso, garantidos por códigos fechados e proprietários. Computação em Nuvem oferece serviços computacio74 www.mundoj.com.br a) Hadoop. É a versão open source do MapReduce do Google. http://hadoop. apache.org/ b) OpenCirrus: https://opencirrus.org/ c) Reservoir: http://www.reservoir-fp7.eu/ d) Enomalism: www.enomalism.com e) Eucalyptus: www.eucalyptus.com Neste texto, vou analisar resumidamente um destes projetos, que é o Eucalyptus, que significa “Elastic Utility Computing Architecture Linking Your Programs To Useful Systems”. Curioso como estes nomes aparecem, não? O Eucalyptus surgiu como um projeto Open Source acadêmico, na UCSB (University of Califórnia, Santa Bárbara). O Eucalyptus Open Source é encontrado em http://open.eucalyptus.com/. Mas recentemente foi criada a Eucalyptus Systems para oferecer suporte e desenvolver produtos adicionais ao sistema Open Source (www.eucalyptus.com). 6NBCPBEFTDSJÎÍPUÏDOJDBEPQSPKFUP5FDIOJDBM3FQPSU/VNCFSQPEF ser obtido em http://open.eucalyptus.com/documents/nurmi_et_al-eucalyptus_ UFDI@SFQPSUBVHVTU@QEG5BNCÏNQPEFNPTWFSVNBEFTDSJÎÍPNBJTTVDJOUB do sistema em um paper disponibilizado no IBM developerWorks: http://www.ibm. DPNEFWFMPQFSXPSLTPQFOTPVSDFMJCSBSZPTDMPVEWJSUVBM O Eucalyptus implementa o conceito de IaaS (infrastructure-as-a-Service), implementando nuvens privadas (nuvens on premise). Também, por ser um ambiente DPNQBUÓWFMDPNP&$EB"NB[POQFSNJUFRVFBTOVWFOTQSJWBEBTDSJBEBTQPSFMF interajam com a nuvem pública da Amazon, pois usa a mesmo interface de programação. A NASA tem um projeto de Cloud Computing baseado no Eucalyptus, que é o NEBULA. Este projeto pode ser visto em http://nebula.nasa.gov/. A empresa farmacêutica Lilly também é um case interessante, pois criou uma nuvem privada que interage com a nuvem da Amazon. Recentemente, o Eucalytpus foi incorporado à iniciativa de Cloud Computing Open Source do Ubuntu, que é uma bem conhecida distribuição Linux. A base desta iniciativa, o Ubuntu Enterprise Cloud (UEC), é o Eucalyptus (http://www.ubuntu.com/cloud). O Eucalyptus pode também ser instalado em outros ambientes Linux, como os das distribuições RedHat e Debian. 4FHVOEPBMHVNBTFTUJNBUJWBTP&VDBMZQUVT0QFO4PVSDFUFNVNBNÏEJBEF mil downloads mensais. Na minha opinião, é uma alternativa de implementação de Cloud Computing que deveria ser vista com atenção pelas universidades, projetos acadêmicos e empresas de serviços que pretendem disponibilizar nuvens públicas para seus clientes e que têm condições (leia-se investimentos e técnicos capacitados) de implementar soluções de Cloud Computing baseadas FNQSPKFUPT0QFO4PVSDFt