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

Bem vindo ao mundo dos Contêineres - TcheLinux ...

Tonin Bolzan
September 14, 2019

Bem vindo ao mundo dos Contêineres - TcheLinux Alegrete

Tonin Bolzan

September 14, 2019
Tweet

More Decks by Tonin Bolzan

Other Decks in Programming

Transcript

  1. TONIN R. BOLZAN Software Engineer ❤ DevOps CTO na Metrosoft

    S/A - Santa Maria/RS 12 anos de experiência https://bolzan.io
  2. UmanoTec.com Respiramos Software Livre Especialista em Software para Saúde SUS

    / Privado Milhares de cidadãos atendidos diariamente. Operacional e Gestão
  3. Cometer erros é humano. Propagar o erro para todos os

    servidores de forma automática é #devops
  4. “O DevOps é a combinação de filosofias culturais, práticas e

    ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade” Amazon AWS
  5. DevOps não é uma atribuição » É uma forma de

    trabalhar, pensar e agir » Promover colaboração entre equipes » Tornar os Devs conciente do Ops e vice-versa » Agilizar o ciclo de lançamentos do produto » Acelerar o tempo para resolver problemas Em essência, é uma cultura, um movimento, uma filosofia
  6. Containers não são VMs » Não são virtualizados (hypervisor) »

    São leves e rápidos » Normalmente são efêmeros Mas são parecidos » Empacotamento e “Isolamento” » Um S/O dentro de outro S/O
  7. Mas por que eu preciso disso? Qualquer que seja VMs

    ou Container Não é mais fácil “só” instalar o programa » WampServer » MAMP » LAMP / LEMP
  8. Não é mais fácil instalar o programa? NÃO » Você

    “suja” todo o seu sistema » Fica limitado a uma versão do software » Cada S/O tem sua forma de instalação » Difícil de reproduzir
  9. » Segurança » Independência » Empacotamento » Isolamento » Limitação

    de recursos » Reprodutibilidade » Agilidade Muitos benefícios Qualquer que seja VMs ou Container
  10. Host Linux Windows Mac OS x Docker LXC Rkt Snap

    Flatpak Kubernetes Mesos Amazon ECS Azure ACS Google GCE Container Orchestration
  11. Conceitos » Docker CLI » Executável de linha de comando

    » Docker Engine » Daemon que roda como serviço » Container runtime » Responsável por “rodar” o container » Container image » Formato de armazenamento em camadas » Repositório » https://hub.docker.com
  12. Instalação Ubuntu 18.04 # apt install docker.io run - Faz

    download e roda uma aplicação docker $ docker run --rm -ti gcr.io/google-containers/debian-base-amd64:v1.0.0 sh $ docker run --rm -ti metrosoftsa/php-dev:latest php -a $ docker run --rm -ti debian bash docker run :> Manda rodar o container --rm :> Limpa tudo depois de rodar -t :> tty -i :> interactive Container :> <uri>/<nome>/<imagem>:<versao>
  13. Dockerfile FROM metrosoftsa/php-dev:latest ENV APP_ENV development COPY . /srv RUN

    composer install -d /srv --no-dev --no-ansi --no-progress CMD ["php", "/srv/index.php"] Esses arquivos são receitas para uma imagem “FROM” estende uma imagem anterior
  14. build - Roda e empacota a partir das definições do

    Dockerfile $ docker build -t tonin/php:latest -f Dockerfile . save & load - Realiza o dump e restore da imagem OCI $ docker save -o php.tar tonin/php:latest $ docker load -i php.tar push - Envia para o repositório docker hub (padrão) $ docker push tonin/php:latest
  15. “Put simply, Kubernetes made the simple things hard and the

    hard things possible” Tom Wilkie, Grafana/Google
  16. SNAP - Padrão no Ubuntu » snap install android-studio https://snapcraft.io/store

    FLATPAK - Padrão no Fedora » flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo » flatpak install flathub com.google.AndroidStudio https://flathub.org
  17. PANORAMA GERAL Linux - Sistema Operacional Docker - Container Runner

    Docker Compose - Multi-container spec Docker HUB - Site de hospedagem Kubernetes - Orquestrador HELM - Gerenciador de pacotes Snap - Container para o desktop Flatpak - Container para o desktop