Bricklayer
-
Upload
rodrigo-vaz -
Category
Technology
-
view
144 -
download
0
Transcript of Bricklayer
BricklayerA serious business
Rodrigo Vaz
1. Motivação2. O inicio3. Tretas4. Fails5. Planos6. ?
Agenda
Motivação
Como um deploy deve ser ?root@producao ~ $ apt-get update && apt-get install seu-projeto
root@producao ~ $ ps aux | grep configuration_manager | wc -l
1
Como o developer quer fazer o deploy?rodrigo ~ $ ssh producao -l root
root@producao ~ $ git clone https://github.com/user/app.git
root@producao ~ $ cd app; ./sobe_aplicacao
Capistrano é gambiarra.
O Inicio
Nah.
O problema:"Pacote é dificil de criar"
Solução 1:Um script que cria pacote.
O Inicio ...
Solução 2:Servidor de build, API REST. <- Bricklayer was born
Outro problema:"Uso Mac OS e textmate, não tem dpkg na AppStore!"
Solução 1:Trabalhe num OS mais produtivo. (Linux - debian-like)
Tecnologias
● cyclone - Twisted● dpkg-buildpackage● rpmbuild● redis● twitter bootstrap
Tretas
● RubyGems HELL● Cada projeto com um modo de deploy● Uma API rest não é suficiente● Interface grafica*● Adaptação ao fluxo de deploy
RubyGems HELL
● RubyGems fora do ar = Build Failed○ gems.locaweb.com.br
● Versões de Ruby (1.8, 1.9, 1.9.1, 1.9.2 ...)● Versões das deps (libxml, passenger, etc..)● Projetos usando gems --pre ● RVM
Cada projeto com um modo de deploy
Uma API rest não é suficiente
Interface gráfica
Interface gráfica
Interface gráfica
Adaptação ao fluxo de deploy - Resistance
Wins:
● Deploy fácil● Seguro● Sem gcc em prod● Rollback fácil
Foi fácil convencer.
Fails
● Driver do redis meio instável e vendorizado *● Bug para deletar projetos *● Poucas contribuições● Falta de tempo
Planos
● Trigger de builds via API ● .bricklayer.yml
options:
auto_changelog: false
rvm: 1.9.3@gemset
deps: libapache-mod-passenger
package_types:
- deb
- rpm
● LXC
?
Thanks for watching!