Menu
Blog Infra como Código

Entrevista com Luke Kanies, criador do Puppet e CEO da Puppet Labs – Parte 3

logo-puppetconf-2014

Nessa terceira parte da entrevista, finalmente entramos em assuntos técnicos. Durante a PuppetConf 2014, a Puppet Labs anunciou o Puppet Server. A intenção é substituir a tradicional combinação Apache e Passenger, por uma mais escalável e performática. Já na versão de demonstração que está em constante evolução, ela é 3 vezes mais rápida que o tradicional Puppet Master.

Mais detalhes sobre outras novidades e as próximas tecnologias que farão parte do Puppet Enterprise estão disponíveis no artigo Evolving Puppet for the Next ten Years.

Diante desse novo cenário e pelo fato do Puppet Server ser desenvolvido usando Clojure, uma linguagem de programação funcional, perguntamos ao Luke sobre a adoção da linguagem e como isso poderia afetar as contribuições da comunidade. Durante essa parte entramos em alguns detalhes técnicos e históricos do Puppet.

Ative as legendas no tocador do YouTube caso elas não estejam aparecendo automaticamente.

Falando sobre arquitetura, estamos animados com o Puppet Server. Na verdade estou um pouco triste. Não vamos mais chamá-lo de Puppet Master, apenas Puppet Server?

É um pouco complicado. É uma base de código e um estrutura totalmente diferente. É uma boa pergunta. Não sei se o processo do Puppet Master sumirá. Na verdade não sei como está no disco. Você está certo. Quase chamamos de Puppet Server há muito tempo, quando mudei de XML-RPC para REST. Quase mudei o nome de Master para Server. Tínhamos puppetd e puppetmasterd como executáveis, e quando mudamos para um executável com extensões, decidimos manter Master ao invés de Server, já que todos gostam tanto de Master.

Eu acho que por um tempo teremos ambos. Eu não sei se vamos manter o nome. Na verdade eu não sei, é uma boa pergunta.

A “cola” entre o JRuby e a JVM é escrita em Clojure. Eu tentei aprender Clojure algumas vezes e não foi divertido, pois programação funcional…

É difícil.

É muito diferente e difícil. Pelo menos se tem retorno por utilizar programação funcional. Podemos ver isso no PuppetDB, com a grande concorrência que se alcança. Você acha que isso pode afetar contribuições da comunidade por causa da dificuldade de se aprender uma linguagem de programação funcional como Clojure? Ou as pessoas podem se motivar por ser algo utilizado de verdade?

Não acredito por alguns motivos. Primeiro, isso vai nos forçar a sermos melhores na separação do core do sistema das pontas. Puppet já tem algo como isso hoje. Temos o core do facter e seus plugins. Temos o core do Puppet e os types, providers, funções e outras coisas. São todos extensões, e o Puppet tem cerca de 11 pontos de extensão.

Como estamos caminhando para um core mais forte, rápido, leve, estável mas mais difícil de desenvolver, então os plugins se tornam mais fáceis de desenvolver. No geral eles não serão plugins em Clojure. Você poderá escrevê-los como quiser. Em Shell, Python, Ruby se quiser.

Achamos que isso fará os plugins mais acessíveis, e mais fácil para pessoas escreverem, pois teremos mais opções. O core será mais difícil de escrever, eu concordo.

Porém, quando analisamos de onde vem as contribuições, mais de 99% dos nossos projetos open source vem de funcionários pagos pela Puppet Labs. Não estamos tão preocupados. E da pequena porcentagem que é feita pela comunidade, a grande maioria é feita nas pontas. Em plugins, types, providers, funções, etc.

Portanto como continuaremos incentivando isso sem precisar de Clojure, essa mudança nos forçará a desenvolver APIs melhores e bem definidas. E novamente, fazendo com que você escreva como quiser. Então achamos que isso vai causar uma explosão de contribuições. Não como é hoje, pois será um mundo um pouco diferente. Mas será mais fácil de contribuir na maioria dos casos. E nos casos que se queira contribuir com o core, o core será complicado.

É complicado construir um core estável, rápido, concorrente, confiável. Melhor aceitar as dificuldades primeiro. Você como contribuidor tentará ajudar no core, ou achará melhor focar nas pontas. Vamos receber ambos e será muito interessante.