Deploy de aplicações
Ruby com Mina
Ismael Stahelin
TDC Floripa 2014
1
Sobre
• Web developer (back and front-end)
• Atualmente na Celtec Rastreamento Ltda
• Desenvolvemos software de rastreamen...
Sem mais demora...
3
Os 4 passos para o deploy
1. Criar o arquivo config/deploy.rb
2. Definir servidor, repositório, branch, etc.
3. Executar "m...
Agora vamos aos
detalhes...
5
O que é Mina?
• Ferramenta de deploy (implantação)
• Usada também para automatizar a administração
do servidor
• É "rake b...
E o que é "rake based"?
• Fluxo de trabalho baseado em tarefas
• Pode seguir o fluxo ou executar tarefas específicas
(é aq...
Um exemplo de tarefa
8
O que são safe deploys?
• Nada é alterado no servidor até que o build atual
seja concluído sem erros
• Você pode manter vá...
O que são deploy locks?
• Controla os deploys baseado em lock files
• Deploy só inicia se conseguir pegar o lock file
• Gar...
Parece ótimo mesmo, e
como eu uso essa
maravilha?
11
Usando o mina
• Instale via "gem install mina" ou via bundler com
"gem 'mina'" no seu group :development
• Inicialize em s...
Exemplo completo de
deploy.rb
https://gist.github.com/ismaels/
c72bb805ff91a5cab242
13
Entendo o mina init
• Cria um diretório config se não exisitr
• Cria um arquivo deploy.rb nesse diretório
• Esse arquivo po...
Um exemplo...
Quase ao vivo
http://youtu.be/2R-RZfmjAlk
15
Olhando o deploy.rb de
perto
• É um rake file disfarçado :)
• Pode possuir quantas tasks forem necessárias,
mas possui 3 s...
Principais seções
17
Mina setup
• Precisa ser executado apenas 1 vez
• Cria a estrutura de diretórios no servidor para
implantar a aplicação
• ...
Estrutura de diretórios no
servidor
19
Mina deploy
• Cria um diretório temporário para fazer o build do
projeto (tudo que está no bloco deploy)
• Move o diretóri...
E se acontecer algum erro?
• Caso isso aconteça o link para o release path será
apagado (mas não a pasta da versão dentro ...
Tips & Tricks (1)
• Certifique-se que o usuário de deploy possui
acesso de leitura e escrita nos diretórios
• Se precisar ...
Tips & Tricks (2)
• Você pode ter vários arquivos de deploy.rb (o
nome não importa)
• Use o parâmetro -f para indicar um a...
Obrigado
stahelin.ismael@gmail.com
http://ismaelstahelin.com
http://github.com/ismaels
@ismaels
24
Próximos SlideShares
Carregando em…5
×

Deploy de aplicações Ruby com Mina - TDC Floripa 2014

490 visualizações

Publicada em

Apresentação da ferramenta mina, utilizada para realizar o deploy de aplicações Ruby.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
490
No SlideShare
0
A partir de incorporações
0
Número de incorporações
19
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Deploy de aplicações Ruby com Mina - TDC Floripa 2014

  1. 1. Deploy de aplicações Ruby com Mina Ismael Stahelin TDC Floripa 2014 1
  2. 2. Sobre • Web developer (back and front-end) • Atualmente na Celtec Rastreamento Ltda • Desenvolvemos software de rastreamento de veículos, cargas, etc. • Usamos: Ruby, Rails, Postgres, Backbone.js, Google Maps API, Redis, ... • Estamos contratando :) 2
  3. 3. Sem mais demora... 3
  4. 4. Os 4 passos para o deploy 1. Criar o arquivo config/deploy.rb 2. Definir servidor, repositório, branch, etc. 3. Executar "mina setup" (somente 1 vez) 4. Executar "mina deploy" 4
  5. 5. Agora vamos aos detalhes... 5
  6. 6. O que é Mina? • Ferramenta de deploy (implantação) • Usada também para automatizar a administração do servidor • É "rake based" 6
  7. 7. E o que é "rake based"? • Fluxo de trabalho baseado em tarefas • Pode seguir o fluxo ou executar tarefas específicas (é aqui que entra a parte de automação do servidor) • Você conta com safe deploys 7
  8. 8. Um exemplo de tarefa 8
  9. 9. O que são safe deploys? • Nada é alterado no servidor até que o build atual seja concluído sem erros • Você pode manter várias versões no servidor e isso é configurável no seu deploy.rb • Possui deploy locks para a sua proteção 9
  10. 10. O que são deploy locks? • Controla os deploys baseado em lock files • Deploy só inicia se conseguir pegar o lock file • Garante que apenas 1 deploy ocorre a cada momento (para cada aplicativo) 10
  11. 11. Parece ótimo mesmo, e como eu uso essa maravilha? 11
  12. 12. Usando o mina • Instale via "gem install mina" ou via bundler com "gem 'mina'" no seu group :development • Inicialize em seu projeto com "mina init" • Ajuste seu arquivo config/deploy.rb 12
  13. 13. Exemplo completo de deploy.rb https://gist.github.com/ismaels/ c72bb805ff91a5cab242 13
  14. 14. Entendo o mina init • Cria um diretório config se não exisitr • Cria um arquivo deploy.rb nesse diretório • Esse arquivo possui todas as configurações para o deploy da sua aplicação 14
  15. 15. Um exemplo... Quase ao vivo http://youtu.be/2R-RZfmjAlk 15
  16. 16. Olhando o deploy.rb de perto • É um rake file disfarçado :) • Pode possuir quantas tasks forem necessárias, mas possui 3 seções principais • Definições, Ambiente e Deploy 16
  17. 17. Principais seções 17
  18. 18. Mina setup • Precisa ser executado apenas 1 vez • Cria a estrutura de diretórios no servidor para implantar a aplicação • Pode ser customizado no deploy.rb 18
  19. 19. Estrutura de diretórios no servidor 19
  20. 20. Mina deploy • Cria um diretório temporário para fazer o build do projeto (tudo que está no bloco deploy) • Move o diretório de build para releases • Cria um link simbólico para current • Executa o bloco "to :launch" 20
  21. 21. E se acontecer algum erro? • Caso isso aconteça o link para o release path será apagado (mas não a pasta da versão dentro de releases) • O bloco "to :clean" será executado caso tenho sido definido • Importante apagar ou mover a versão quebrada que ficou no releases (você não vai querer ter no seu histórico de versões uma que pode não funcionar) 21
  22. 22. Tips & Tricks (1) • Certifique-se que o usuário de deploy possui acesso de leitura e escrita nos diretórios • Se precisar alterar a estrutura do server, melhor apagar e começar do zero novamente • Não esqueça de adicionar a chave ssh do seu repositório no servidor antes de rodar mina deploy 22
  23. 23. Tips & Tricks (2) • Você pode ter vários arquivos de deploy.rb (o nome não importa) • Use o parâmetro -f para indicar um arquivo com nome diferente de deploy.rb ou em localização diferente • Use os parâmetros -v e -t para ter mais detalhes da execução remota 23
  24. 24. Obrigado stahelin.ismael@gmail.com http://ismaelstahelin.com http://github.com/ismaels @ismaels 24

×