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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Tonin Bolzan Tonin Bolzan
September 14, 2019

Bem vindo ao mundo dos Contêineres - TcheLinux Alegrete

Avatar for Tonin Bolzan

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