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

Linux contêineres na unha (TDC 2018)

Linux contêineres na unha (TDC 2018)

Palestra apresentada no dia 19 de julho de 2018 no evento The Developers Conference SP 2018 na trilha containers em São Paulo. Mostramos um pouco do que são containers, histórico, diferenças dos tipos de virtualização e como que funciona o isolamento dos processos e os recursos utilizados para o tal. No final fizemos uma demonstração disponível em (https://github.com/wsilva/container-from-scratch-demo) montando contêineres usando Go lang

Wellington F. Silva

July 19, 2018
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi

    roles: pai, tec. telecom, programador, sysadmin, instrutor, escritor, php zce, docker community leader, docker certified associate
  2. Agenda • Disclaimer • O que são contêineres Linux •

    O que são Kernel Namespaces • O que são CGroups • O que são Rootfs • Demo
  3. Disclaimer Palestra inspirada nas talks da Liz Rice (@lizrice) e

    no artigo* de Julian Friedman (@doctor_julz) http://bit.ly/container-golang *
  4. Julian Friedman • Engenheiro líder do Garden (tecnologia de contêineres

    da Cloud Foundry's) • Trabalha para IBM • Defensor do Open Source
  5. Liz Rice • Especialista em segurança de contêineres na Aqua

    Security • Contribuidora Kubernetes • Evangelista Go Lang
  6. Tipos de Virtualização • Full Virtualization • Partial Virtualization •

    Paravirtualization • OS Level Virtualization 
 (Docker, rkt, Garden, Guardian, containerD, cri- O)
  7. U nix / C hroot BSD FreeBSD Jails / Solaris

    Zones O penVZ Parallels C groups Process C ontainers AIX / W pars LXC D ocker, rkt, cloud foundry, 
 C ontainerD 1982 2000 2005 2006 2007 2008 >= 2013
  8. Processos • Processo Linux com ID atribuído (PID) • Podem

    ser listados (com ps) dentro do contêiner ou fora (no host)
  9. Processos • Processo Linux com ID atribuído (PID) • Podem

    ser listados (com ps) dentro do contêiner ou fora, no host • Dentro do contêiner o PID=1, fora (no host) vai ter valor alto
  10. Kernel Namespaces • IPC - Interprocess communication • PID -

    Processos • NET- Rede • UTS - Unix timesharing system
  11. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos
  12. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos • MNT - Pontos de montagem
  13. CGroups • CPU • Memória • I/O em disco •

    Interface de rede • Hardwares periféricos 
 (pen drives, cameras, etc)
  14. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados
  15. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados • Em linhas gerais é o / (barra) de uma distribuição Linux
  16. Resumo • Processo 
 (é o que roda a aplicação)

    • CGroups e Namespaces 
 (como o processo vai rodar) • Rootfs 
 (onde o processo vai rodar)