Olá a todos e em especial equipe de devops,
Conversando com o Siqueira hoje, fiquei de dar mais detalhes sobre o andar
do empacotamento do Mezuro.
Na ultima vez que estivemos com vocês em BSB dedicamos um tempo bom
empacotando e conseguimos fechar um dos serviços empacotado
(KalibroConfigurations). Mas a sensação que ficou é que foi bastante
trabalhoso e dificil de replicar, instável e difícil de replicar em outros
ambientes.
Então na nossa iteração atual, apesar de não ser o foco da iteração (
https://softwarepublico.gov.br/gitlab/softwarepublico/softwarepublico/wikis/Sprint-39#mezuro),dedicamos um período de trabalho estudando alternativas mais automatizadas
que nós mesmos sejamos capazes de sustentar:
* pkgr (
https://github.com/crohr/pkgr)* gordon (
https://github.com/salizzar/gordon)* fpm-cookery (
https://github.com/bernd/fpm-cookery)Os dois primeiros são de nível mais alto, enquanto o terceiro dá mais
flexibilidade, mas mais trabalho de manutenção em contrapartida. Todos tem
capacidade de empacotar pelo menos para CentOS e Debian com o mesmo código.
Estudamos os três e a conclusão é que nenhum é uma boa solução para rodar
no ambiente de desenvolvimento. Nosso próximo passo é automatizar com o
Docker o uso do pkgr.
Por enquanto estamos focados no pkgr por ser de mais alto nível mas ainda
ter um grau de cnfiabilidade maior por usar os scripts do Heroku e ser
agnóstico com relação ao sistema operacional alvo (abstrações sobre o
Puppet). O Docker é uma opção mais leve ao Vagrant para qualquer um poder
gerar os pacotes na sua máquina local, mas ainda manter isolado do ambiente
de desenvolvimento evitando conflitos (tivemos problemas com RVM) e que
dependencias instaladas no sistema fiquem faltando no pacote.
Vamos marcar um pareamento nisso semana que vem? Na próxima iteração do
Mezuro, que devemos estimar amanhã, isso vai entrar.
Abraços,
Manzo.