Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Além do Docker 101: boas práticas na construção de aplicações Cloud Native ⥫

Slide 3

Slide 3 text

Por que estou falando sobre isso? ⥫ - Um caso de assessement no Kubernetes - Um passo atrás

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Qualidade do seu Dockerfile com Hadolint Hadolint é uma ferramenta de linting para Dockerfiles que ajuda a identificar problemas e sugere melhorias no seu Dockerfile.

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

Cosign Permite assinar e verificar imagens de containers, garantindo a integridade e a autenticidade das suas imagens.

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

Thanks! Você tem alguma pergunta? contato@nataliagranato @granatowp nataliagranato.xyz