DevSecOpsARTIGO

Cloud Computing e Open Source: complementares e não concorrentes

Uma questão que volta e meia me fazem em palestras sobre Cloud Computing e SaaS é se esses conceitos abalam o modelo Open Source. Venho pensando no assunto e gostaria de instigar um debate aqui. Na minha opinião, SaaS e Open Source são complementares e não competidores.

Vamos raciocinar juntos. Olhando a cadeia de valor do negócio software, podemos pensar em três perguntas básicas:

  •  Quem constrói o software?
  • Quem adiciona valor e o distribui?
  • Quem o utiliza?

Open Source: respondendo questões

Para a primeira pergunta, respondemos que o software pode ser criado por uma comunidade ou por empresas, seja para uso próprio ou para comercialização.

O modelo Open Source se encaixa neste caso. É basicamente um modelo de criação e desenvolvimento de software. Por ser um modelo colaborativo, ele permite criar novos modelos de negócio, alternativos ao modelo tradicional de vendas de licenças. A receita geralmente vem de serviços adicionados em torno do software em si.

Já SaaS é um modelo de distribuição e consumo de software. Uma empresa ou um usuário adquire um serviço que utiliza determinado software. Por exemplo, um usuário adquire o direito de usar um serviço de e-mail como o Gmail, gratuitamente como usuário final ou pagando um fee como empresa.

Analisando a cadeia de valor do software, vemos então que Open Source se encaixa na questão “quem constrói o software?”, sendo portanto um modelo de desenvolvimento, não importando se o software será distribuído via modelo on-premise ou via SaaS.

Na prática com exemplos e projetos

Vamos ver alguns exemplos na prática. O Linux é um sistema operacional desenvolvido pela comunidade e um dos ícones do movimento Open Source. A própria comunidade e algumas empresas adicionam valor a ele, em forma de componentes e de utilitários adjacentes, como as distribuidoras, e o disponibilizam, de forma gratuita ou sob contrato de serviços como remuneração pelo valor agregado.

No modelo atual, on-premise, quem se encarrega de baixar o sistema nos servidores e customizá-lo é a própria empresa usuária, por conta própria ou contratando serviços de terceiros. Mas ele pode ser usado como SaaS? Sim, aliás, muitas das ofertas de Cloud Computing públicas e SaaS existentes hoje utilizam Linux e outros softwares Open Source como base, adicionando softwares de código fechado às suas ofertas. Dois exemplos bem conhecidos são o EC2 da Amazon e o Google AppEngine, que são suportados por servidores Linux e softwares de virtualização e gerenciamento Open Source, como o Xen.

Existem também diversos projetos Open Source que permitem criar infraestrutura de nuvens privadas baseadas em Linux, como os projetos Eucalyptus e Nimbus. Outra iniciativa bem interessante é o projeto Bitnami que permite implementar ambientes operacionais Open Source na nuvem EC2 da Amazon. O stack de software Bitnami inclui aplicações e softwares Open Source que podem operar como uma AMI (Amazon Machine Image).

Pilares para infraestrutura do serviço

O usuário de nuvens públicas ou de ofertas SaaS, seja ele uma pessoa ou uma empresa, quer usufruir do serviço ou das funcionalidades que a nuvem vai prover, e não do código-fonte. Ele quer se abstrair das atividades relacionadas com implementar e manter os recursos computacionais.

Aliás, para ser lucrativo, o provedor de um software SaaS precisa de basear em três pilares: ambiente virtualizado e multi-tenancy, padronização e automação. Ora, um ambiente padronizado impede que cada usuário customize o software ou altere o código a seu prazer. É diferente do modelo on-premise, no qual a responsabilidade pelo bom ou pelo mau uso do software é da empresa usuária.

No SaaS, o provedor é o responsável pelo nível de serviço e não poderá oferecer versões individualizadas sob pena de não ter a economia de escala suficiente para ser lucrativo. Construir e manter operacional uma infraestrutura de nuvem pública (SaaS é um modelo de nuvem pública) demanda alto investimento.

Por outro lado, o provedor de uma nuvem pública ou de uma oferta SaaS pode abrir o código fonte do seu software para conseguir colaboração da comunidade e acelerar o processo de inovação. Mas o software disponibilizado como SaaS não será aberto. Os usuários devem ter acesso à mesma versão do software e, para isso, o provedor tem que fechar a versão disponibilizada na nuvem.

Claro que se o software for Open Source, sempre poderemos copiá-lo e criarmos nossas próprias nuvens públicas. Para criar diferenciação no serviço, cada provedor acabará tendo que criar funcionalidades específicas e diferenciadoras, inclusive usando alguns componentes de software fechados. O resultado final é o aumento da concorrência, que será salutar para o mercado como um todo.

Assim, se o usuário quiser modificar um determinado software Open Source para executar em nuvem uma funcionalidade que interesse especificamente a ele, terá como opção usar esse software em uma nuvem IaaS, assumindo a responsabilidade pelo seu uso.

Um provedor de IaaS como a Amazon provê apenas servidores virtuais com seus sistemas operacionais, como Linux. O uso dos aplicativos é de responsabilidade do usuário do serviço e não da Amazon. Diferente do modelo SaaS, no qual o provedor é responsável pela qualidade do nível de serviço oferecido.

Na minha percepção, o uso de Open Source atuando de forma sinérgica com softwares fechados pode abrir oportunidades para criação de ofertas de Cloud e SaaS mais rapidamente e mais baratas. São complementares, e não concorrentes. Qual a opinião de vocês?

É CEO da Litteris Consulting. Profissional e estudioso de Tecnologia da Informação desde fins da década de 70, com educação formal diversificada, em Economia, mestrado em Ciência da Computação e MBA em Marketing de Serviços, e experiência profissional moldada pela passagem em empresas de porte mundial. Escreve constantemente sobre tecnologia da informação em publicações especializadas como CIO Magazine, Mundo Java, além do iMasters, e apresenta palestras em eventos e conferências de renome. É autor de sete livros que abordam assuntos como Software Livre, Grid Computing, Software Embarcado, Cloud Computing e Big data.

Ver perfil