Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker para freelancers: Focando no problema e não no ambiente

Docker para freelancers: Focando no problema e não no ambiente

Lightning talk para mostrar como docker-compose pode ajudar a criar ambientes de desenvolvimento rapidamente em Wordpress.

Douglas Soares de Andrade

March 13, 2017
Tweet

More Decks by Douglas Soares de Andrade

Other Decks in Technology

Transcript

  1. Docker para freelancers: Focando no problema e não no ambiente

    Dilemas de um Freelancer Iniciante • O cliente quase sempre tem pressa para ter o serviço entregue • O valor do freela geralmente não paga todo trabalho que temos • É comum focar no problema a ser realizado (por ex: construir um plugin para wordpress) e esquecer de cobrar outras coisas, como preparar o ambiente de desenvolvimento • Em geral, o valor recebido não paga a construção de ambientes de desenvolvimento, daí entramos em modo Go Horse pra criar logo o ambiente e partir pro freela... • E é justamente aí que você gastará muitas horas se arrependendo de ter aceito o projeto
  2. Docker para freelancers: Focando no problema e não no ambiente

    Meu workflow (ainda não automatizado) • Entro no servidor do cliente via ssh • Gero um backup do Wordpress: • Normalmente um tar -jcf backup.tar.bz2 wordpress • Gero um dump do banco de dados • mysqldump -u root wordpress_db > cliente_wordpressdb-ddmmyy.sql • Faço o download pra minha máquina de desenvolvimento OU • Recebo um arquivo compactado de TODO diretório do Wordpress • Recebo um dump da base de dados • Faço o download pra minha máquina de desenvolvimento
  3. Docker para freelancers: Focando no problema e não no ambiente

    E o ambiente de desenvolvimento?! • Instalar • Apache ou Nginx • php, php-fpm • Módulos do php (mysql, curl, etc) • MySQL • Configurar • Hosts virtuais no Apache/Nginx • Arquivo php.ini • MySQL • /etc/hosts • Restaurar dump do MySQL • Inicializar servidores • Testar aplicação
  4. Docker para freelancers: Focando no problema e não no ambiente

    Seguindo as leis imutáveis de Murphy... O que tiver que dar errado, dará errado... …a não ser que você tenha se preparado ou cobrado por isso =)
  5. Docker para freelancers: Focando no problema e não no ambiente

    Meu novo workflow • Entro no servidor do cliente via ssh • Gero um backup do Wordpress: • Normalmente um tar -jcf backup.tar.bz2 wordpress • Gero um dump do banco de dados • mysqldump -u root wordpress_db > cliente_wordpressdb-ddmmyy.sql • Faço o download pra minha máquina de desenvolvimento • Configuro o /etc/hosts da minha máquina • Faço o seguinte na pasta do backup do Wordpress • Coloco o dump do banco de dados na pasta db_dump • Crio os mapeamentos do Apache em sites_enabled • Crio o arquivo docker-composer.yml • Executo: docker-compose -d up
  6. Docker para freelancers: Focando no problema e não no ambiente

    Próximos passos =) • Estender esse workflow para outras tecnologias, principalmente Python (Django) e Ruby (Rails) • Gerar a estrutura que preciso para o Wordpress a partir de um comando (possivelmente usando o projeto CookieCutter): • Pasta db_dump • Arquivo docker-compose.yml • Mapeamentos do Apache • Para facilitar o uso por não desenvolvedores e ops, como designers, fazer um frontend em Electron para reduzir as barreiras de uso.
  7. Docker para freelancers: Focando no problema e não no ambiente

    Recapitulando as ferramentas utilizadas • Docker (https://www.docker.com/community-edition) • Kitematic(https://github.com/docker/kitematic/releases) • Portainer (http://portainer.io) • Switch Hosts (https://github.com/oldj/SwitchHosts) • ** ZSH colorido (https://github.com/zsh-users/zsh-syntax-highlighting) ** Tá, não tem nada a ver com a proposta, mas é maneiro =)
  8. Docker para freelancers: Focando no problema e não no ambiente

    Contato Email: [email protected] Github: https://github.com/douglas Bitbucket: https://bitbucket.org/douglas Twitter: douglasandrade