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

Piores Práticas em Containers!

Avatar for Pery Lemke Pery Lemke
November 20, 2017

Piores Práticas em Containers!

Nesta talk serão demonstradas os erros comuns cometidos na construção e administração de containers.

Visando difundir as melhores práticas e propagar a melhoria dos profissionais que usam containers no seu dia a dia.

Avatar for Pery Lemke

Pery Lemke

November 20, 2017
Tweet

More Decks by Pery Lemke

Other Decks in Technology

Transcript

  1. $whoami • Pery Lemke aka Peronium • SRE na Ahgora

    Sistemas • Sudocaster :) • Membro da organização do meetup DevOps Floripa • Entusiasta DevOps • Garimpeiro de bandas obscuras de Stoner e Doom.
  2. $whoami • Gomex aka Rafael Gomes • Especialista na Stone

    • Participante do Sudocast :) • Membro da organização do DevOps Day PoA/Salvador • Entusiasta DevOps • Garimpeiro de bandas .*
  3. Porque piores práticas? Porque não há nada na vida como

    aprender errando! E os exemplos serão com base no Docker. Sorry rkt :/
  4. Pois sempre baixará a última versão da imagem no repositório.

    Porém num belo dia, se houver uma atualização todo o seu projeto pode quebrar. Porque é uma má prática?
  5. Expor uma porta alta deixa sua aplicação vulnerável externamente, principalmente

    em serviços como o Kubernetes e o OpenShift (Kubernetes com esteróides). Lembrando que toda execução dentro do container deve ser feita por um usuário sem previlégio. Porque é uma má prática?
  6. Rodar um upgrade atualizará os pacotes que já estão na

    versão correta oriunda na sua imagem, e com isso o seu container perderá a consistência e imutabilidade. Rodar update e install em linhas separadas causará o armazenamento em cache apenas do update, e não realizará a instalação das dependências no seu container. Porque é uma má prática?
  7. Parecidos, porém diferentes. O COPY é mais simples, ele apenas

    copia o arquivo e/ou diretório para o seu container. Já o ADD, apesar de fazer o mesmo, ele “automagicamente” extrai arquivos TAR ou busca arquivos de URLs remotas. Resumidamente o ADD é uma “bazuca”, mas não use uma bazuca para matar uma mosca e sim para destruir tanques. Porque é uma má prática?
  8. Escalabilidade da aplicação muito mais complicada, sem falar na lentidão

    que as dependências instaladas irão causar no seu container. E o principal motivo é que seu Dockerfile ficará extremamente difícil de escrever e manter. E por fim é totalmente anti-12factor :) Porque é uma má prática?
  9. Outras piores práticas... • Armazenar dados sensíveis em container; •

    Usar root (Tema polêmico!); • Não usar .dockerignore; • Gemfile ou requirements.pip sem cache; • Container = VM; • E tantas outras...
  10. Agradecimentos Agradecimento especial ao Gomex e ao Helber pela mentoria

    para esta talk. Agradecer a Ahgora Sistemas pelo apoio. E as vocês por participarem e ouvirem este pobre speaker. :)