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

Além do Docker101: Boas práticas na construção ...

Além do Docker101: Boas práticas na construção de aplicações Cloud Native

Para garantir a segurança e a eficiência em aplicações Cloud Native, devemos considerar os 4C's: Containers, Clusters, Cloud e Código.

Implementação de boas práticas deve ser feita em todas as etapas do desenvolvimento, desde a escrita do código, a implantação em produção e na utilização de clusters de orquestração e containers.

Natália Granato

September 09, 2024
Tweet

More Decks by Natália Granato

Other Decks in Programming

Transcript

  1. Entusiasta de Cloud Native, com foco em boas práticas no

    Kubernetes. Crio conteúdo na colabi.io Kubernetes Contributor FinOps Certified Atuo como SRE na Magalu Cloud nataliagranato.xyz
  2. Por que estou falando sobre isso? ⥫ - Um caso

    de assessement no Kubernetes - Um passo atrás
  3. A Cadeia de Boas Práticas Precisamos olhar para os 4C's:

    Containers, Clusters, Cloud e Código, cada um desses elementos desempenha um papel crucial na construção de aplicaçõesseguras. No entanto, iremos focar em Containers e explorar as melhores práticas nesse sentido.
  4. Containers e DevOps A relação entre containers e DevOps é

    fundamental. Containers permitem que as equipes de desenvolvimento e operações trabalhem de forma mais integrada, facilitando a entrega contínua e a automação.
  5. Cloud Native Trail Map A Cloud Native Computing Foundation (CNCF)

    oferece o Cloud Native Trail Map, que orienta sobre os componentes essenciais para construir aplicações nativas de nuvem. Vamos percorrer esse mapa e entender os principais elementos que compõem uma arquitetura Cloud Native
  6. Containers e Docker A containerização revolucionou a forma como desenvolvemos,

    implantamos e gerenciamos aplicações. O Docker, como uma das ferramentas mais populares para containerização, estabeleceu um padrão na indústria que transformou práticas de desenvolvimento e operações.
  7. Padrão da Indústria O Docker não apenas revolucionou a containerização,

    mas também estabeleceu um padrão com o uso do Dockerfile, que se tornou a forma padrão de definir e construir imagens de containers.
  8. Criação de um Container A forma como construímos nossos containers

    pode impactar diretamente a segurança, a eficiência e a performance das nossas aplicações.
  9. Dockerfile Um Dockerfile tradicional é a base para a construção

    de uma imagem de container. Embora simples, um Dockerfile pode resultar em imagens grandes e com vulnerabilidades se não for bem estruturado.
  10. Nele utilizamos um sistema operacional completo, o que torna a

    imagem maior e menos segura. Não usamos a abordagem de multi-stage build, que é uma técnica para reduzir o tamanho das imagens Docker. Tampouco um sistema operacional minimalista, como o Alpine Linux. Instalamos o Nginx, temos um arquivo index.html, totalizando 123MB.
  11. Com multi stage build utilizamos uma imagem com um sistema

    operacional completo para compilar o código-fonte do nosso aplicativo. No segundo estágio, copiamos o binário gerado no primeiro estágio para uma imagem menor e mais segura, sem um sistema operacional. Assim reduzimos a imagem para 79.1MB.
  12. Mas e as vulnerabilidades? Apesar de ter reduzido o tamanho

    da minha imagem, encontrei diversas vulnerabilidades, sem correção até o momento, inerentes ao sistema operacional Ubuntu.
  13. Use Alpine Linux Tamanho da imagem: são menores, mais rápidas

    pra baixar, enviar e executar. Segurança: tem histórico de correções rápidas. Eficiência: otimizado pra ser leve. Comunidade ativa: você pode obter ajuda e suporte rapidamente.
  14. Distroless São imagens Docker que contêm apenas o aplicativo e

    suas dependências, sem um sistema operacional. Isso torna a imagem mais segura e menor.
  15. Qualidade do seu Dockerfile com Hadolint Hadolint é uma ferramenta

    de linting para Dockerfiles que ajuda a identificar problemas e sugere melhorias no seu Dockerfile.
  16. Dockerscout Fornece insights sobre a segurança e a eficiência das

    suas imagens de container. Ele ajuda a identificar dependências desnecessárias e vulnerabilidades.
  17. Cosign Permite assinar e verificar imagens de containers, garantindo a

    integridade e a autenticidade das suas imagens.
  18. Importância de imagens pequenas e sem vulnerabilidades Imagens menores não

    apenas economizam espaço e recursos, mas também reduzem a superfície de ataque, minimizando o risco de exploração de vulnerabilidades. Ao focar na criação de imagens pequenas e seguras, garantimos que nossas aplicações sejam mais eficientes e resilientes.