SlideShare uma empresa Scribd logo
1 de 50
A busca pelo Deploy
     Contínuo.




       @lornlab
Barreiras
Cultura
Confiança
Software Livre
Startups
Lean
Qual o seu ciclo de
     deploy?
Você fica
assustado em dias
    de deploy?
Bugfix na
noite anterior
ao deploy?
Existe outro
jeito :)
Automatize tudo!
Automatize tudo!
   build
Automatize tudo!
   build
   test
Automatize tudo!
   build
   test
   deploy
Integração
•   SCM

•   Testes

•   CI

•   Deploy/Rollback Script

•   Máquinas automatizadas

    •    puppet/chef

•   Monitoramento
Testes
Deploy /
Rollback
 script
Puppet / Chef
Monitorament
      o
DEVOPS
DEVOPS
•   logs

•   debug

•   erro conhecido é erro
    tratado

•   menos trabalho pra você,
    mais trabalho pra ops
Arquitetura
Load balance
if ( $user->cfg =~ /funcionalidade42/ ){
         // nova funcionalidade do site
 }
else {
      // modo antigo
}
nginx +
starman
upstream myapp_starman {
                             server unix:/tmp/starman.sock fail_timeout=0;
                           }

                           server {
                             listen 80;

                             client_max_body_size 1024m;
                             client_body_buffer_size 8k;
                             proxy_read_timeout 300;

                             server_name www.localhost.com;

https://gist.github.com/     root /var/www/myapp.current;
                             keepalive_timeout 0;



        1126172              access_log /var/log/nginx/myapp.access combined;
                             error_log /var/log/nginx/myapp.error;
                             
                             location /static {
                                   root /var/www/myapp.current/root/;
                                   autoindex on;
                             }

                             location / {
                               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                               proxy_set_header Host $http_host;
                               proxy_redirect off;
                               proxy_buffering off;
                               if (!-f $request_filename) {
                                 proxy_pass http://myapp_starman;
                               }
                             }
                           }
“It’s a unix system”
kill -s USR2
    1337
/var/www/
myapp.current
 /var/www/
 myapp-0.1
 /var/www/
 myapp-0.2
Conclusão

• A busca pelo deploy continuo é ... continua
• O hype está ajudando a melhorar a
  qualidade, ou pelo menos se preocupando
  mais com com a qualidade, do que é
  entregue
Obrigado!


• lorn @ cpan dot org
• http://twitter.com/lornlab

Mais conteúdo relacionado

Mais procurados

Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
Yet Another Ruby Framework - Como o Rails funciona por dentro
Yet Another Ruby Framework - Como o Rails funciona por dentroYet Another Ruby Framework - Como o Rails funciona por dentro
Yet Another Ruby Framework - Como o Rails funciona por dentroCarlos Brando
 
Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Wilson Lopes
 
Fundamentos Replicação MySQL
Fundamentos Replicação MySQLFundamentos Replicação MySQL
Fundamentos Replicação MySQLAlexandre Almeida
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURLricardophp
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9Nando Vieira
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxThiago Paes
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoIvan Rosolen
 

Mais procurados (20)

Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
Yet Another Ruby Framework - Como o Rails funciona por dentro
Yet Another Ruby Framework - Como o Rails funciona por dentroYet Another Ruby Framework - Como o Rails funciona por dentro
Yet Another Ruby Framework - Como o Rails funciona por dentro
 
Samba4+debian8
Samba4+debian8Samba4+debian8
Samba4+debian8
 
05 servidor dhcp
05   servidor dhcp05   servidor dhcp
05 servidor dhcp
 
07 - Atividade III
07 - Atividade III07 - Atividade III
07 - Atividade III
 
Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37Ferramentas para Automação de Datacenter - GTER 37
Ferramentas para Automação de Datacenter - GTER 37
 
Fundamentos Replicação MySQL
Fundamentos Replicação MySQLFundamentos Replicação MySQL
Fundamentos Replicação MySQL
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURL
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
Redis na Prática
Redis na PráticaRedis na Prática
Redis na Prática
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Quando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucessoQuando o planejamento da infraestrutura leva ao sucesso
Quando o planejamento da infraestrutura leva ao sucesso
 

Semelhante a DevOps e automação para deploy contínuo

Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesStanislaw Pusep
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e SphinxElton Minetto
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Project HA
Project HAProject HA
Project HAKarpv
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Thiago Barradas
 
Slides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas DistribuídosSlides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas Distribuídosvinycesar
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3Flávio Lisboa
 
Atualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xAtualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xRodrigo Urubatan
 
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
TDC2016POA | Trilha Python - Heimdall Guard - Spam FilterTDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filtertdc-globalcode
 

Semelhante a DevOps e automação para deploy contínuo (20)

Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Escalando Sites com Nginx
Escalando Sites com NginxEscalando Sites com Nginx
Escalando Sites com Nginx
 
Sapo Sessions PHP
Sapo Sessions PHPSapo Sessions PHP
Sapo Sessions PHP
 
Project HA
Project HAProject HA
Project HA
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
 
Slides nginx
Slides nginxSlides nginx
Slides nginx
 
Slides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas DistribuídosSlides NGINX - Sistemas Distribuídos
Slides NGINX - Sistemas Distribuídos
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3
 
Atualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xAtualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.x
 
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
TDC2016POA | Trilha Python - Heimdall Guard - Spam FilterTDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
TDC2016POA | Trilha Python - Heimdall Guard - Spam Filter
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
 

DevOps e automação para deploy contínuo

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. Cultura enterprise dificulta bastante a implementação o conceito de torres não ajuda em nada, torre de design, torre de infra etc\n
  5. \n
  6. As pessoas te contrataram para fazer aquilo, te pagam para aquilo mais não confiam naquilo que você faz O_o\nDesenvolvedores gostam de ver suas coisas sendo usadas / em produção, isso o motiva a trabalhar melhor\nSe você não confia no seu funcionario, demita-o e contrate um que você confie\n
  7. \n
  8. Startups que se enterpriserisam, criando processos desnecessarios\n
  9. Cultura de startup facilita muito isso\npensando lean, o conceito de deploy/integração continua tá enraizado em muitos "frameworks" de startups como Lean e afins\nStartup precisa entregar valor rapido ao cliente para se diferencia, se não tem deploy continuo não há como garantir isso\nEnterprise2startup como faz//\n\n
  10. \n
  11. \n
  12. \n
  13. Antes somente uma pessoa estava ‘autorizada’a fazer o deploy\nagora todos podem fazer, quando quiser\nvocê tem que fazer um deploy no seu 1o dia de trabalho\nAntes o rollback era tenebroso, agora é vitorioso\n
  14. \n
  15. \n
  16. Tudo o que você precisa fazer para fazer o deploy, incluindo testes unitario, integração, segurança, desempenho e interface\nQuando você diminui esse ciclo, você aumenta sua competitividade\n\n
  17. \n
  18. \n
  19. (thats not me :-)\n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. Unitario, integração, performance, segurança\n
  28. o 1o passo é ter um script magico, que faz deploy/rollback apenas executando ele\n
  29. \n
  30. \n
  31. \n
  32. \n
  33. Como você vai saber que algo deu errado? como combate o “feeling” do seu chefe\n“não sei não o site tá estranho, acho que esse ultimo deploy diminuiu o numero de vendas”\nmeça tudo, tire estatisticas de tudo e deixe isso facil para o dev\nuse o graphite e o statsd\n\n
  34. Quando devs trabalha com ops\n
  35. - menos trabalho pra você, mais trabalho pra ops\ncitar exemplo de quando o cara de ops te liga e fica te falando mensagem que está acontecendo no terminal, como se ele fosse um terminal via telefone :P\n
  36. \n
  37. \n
  38. Com um load balance você consegue fazer deploy aos poucos, isolando as maquinas e verificando se tem algum erro\nex: ldiretord, perlball, haproxy\n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n