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

Piores Práticas em Containers!

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
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. :)