O que são Containers? | #AluraMais

23.07k views2504 WordsCopy TextShare
Alura
Vídeo novo de Alura no para vocês, galera! 💥 O uso de Containers faz parte do dia a dia de inúmer...
Video Transcript:
é bom conversar hoje sobre um assunto que é bastante falado mas às vezes a gente acaba simplesmente aceitando que ia falar você entender então vamos entender o que são containers [Música] E aí pessoal bem-vindos a loira eu sou o Vinícius dias eu não quero conversar com vocês sobre um assunto que já é bastante famoso mas às vezes a gente simplesmente abre mão de entender e só utiliza mas hoje a gente vai entender o que são container o que que eles resolvem como eles funcionam mais ou menos e o que que é esse tal de container
Então mas vamos começar antes de entrar nesse mundo de container falando sobre como aconteciam configurações de servidores antes como que se eu quisesse colocar uma aplicação lá eu teria minha infraestrutura vamos falar disso então aqui a gente começa com um problema a gente tinha aqui basicamente instalar e configurar um computador um servidor para cada aplicação e assim instalar Então imagina que eu preciso ter uma passo 1 the next aqui eu tenho Tomcat para executar um servidor de aplicação Java Eu tenho dois bancos de dados já tem mais Kelly longo e tem outro servidor que eu
ia se eu precisar de uma máquina para cada um desses temas né para cada um desses serviços no caso só que eu não posso pegar o Apache e instalar no meu computador direta eu preciso de um sistema operacional então cada uma dessas máquinas precisava de um sistema operacional para ser ingerido e gerenciar um sistema operacional não é algo tão simples Saiu uma atualização nova tem que ver se esse novo pneu é tem tudo que a gente precisa para rodar essa versão do Tomcat Você tem alguma compatibilidade isso dá uma dor de cabeça e além de
gerenciar o sistema operacional o computador e se esses sistemas precisam se comunicar o Tomcat and next precisa redireciona a requisição Tomcat Tomcat precisa se comunicar com SL então a gente ainda Precisa gerenciar a rede de isso público então repara que era muito gostoso e essa forma de organizar é o que a gente já a compreender Ou seja a infraestrutura 11 prêmios no local onde a gente está organizando onde a gente tem o nossa empresa por exemplo a gente tem vários servidores lá ou no local separado então no local a gente tem servidores a gente vai
lá e configura então isso era muito comum só que a gente tem como a gente pode ver que o mesmo para muito complexa se é complexo por consequência acaba sendo cara de novo gerenciar vários sistemas operacionais é muito complexo e um outro negócio é é muito difícil a gente escalar dessa forma que que você quer dizer imagina esse servidor aqui do Tomcat ele recebe requisições para processar o nosso código JAVA e na black friday por exemplo o número de requisições é muito maior então tipo era comum da gente fazer colocar um servidor muito parrudo que
fica o ano inteiro em quinze Vinte por cento do consumo para lá na black friday ele chegar em 90 porcento E aí utilizar realmente recurso então a gente tinha muito recursos Ocioso durante muito tempo E aí a gente estava desperdiçando dinheiro e aí beleza gente identificou vários problemas aqui e gerenciar um ambiente relativamente simples eram um pesadelo para qualquer gerenciador de Indra para qualquer cinza de mim ou como fossem chamados na época então qualquer um ambiente por mais simples que a gente enxergue hoje eram muito complexos de se gerenciar na época Eu precisaria só por
isso aqui para ter uma aplicação Zinha simples como pega até um banco de dados no servidor web rodando eu preferi de três computadores diferentes com três servidores com três sistemas operacionais diferentes comunicação de rede entre eles esperam pesadelo como a gente pode ver aqui então é isso gerava também um outro problema de que a gente desenvolve no nosso computador e mandava para produção em um ambiente completamente diferente e ele acontecia esse problema clássico de na minha máquina funciona esse problema tá lá no servidor aqui ó tá funcionando e falar de ver se realmente era o
caso na sua máquina Você tem uma versão do PHP outra versão bom e você usa o Windows ir lá no servidor é o Linux com uma versão mais nova do and next uma versão mais antiga do PHP Então tudo muito diferente causava inúmeros problemas e eu falo com propriedade porque quando eu comecei a trabalhar com desenvolvimento eu trabalhava em uma infraestrutura 11 crimes e a gente utilizava o Windows nos computadores o servidor era Linus enfim esse tipo de problema realmente acontecia não há invenção então Surgiu uma solução uma ótima solução por sinal preso vez problema
ele se deve tá pensando devem ser os tal estar de contêineres né aí não surgiram as máquinas virtuais o que que acontece você tinha um servidor razão ótimo servidor com um sistema operacional e dentro desse sistema operacional você tinha um sistema um software na verdade um programa e conseguia gerenciar a outros sistemas operacionais Então dentro do seu sistema operacional você consegue instalar outros que são as máquinas virtuais então isso fornece um ambiente compartilhar O que quer dizer eu consigo criar um sistema e gerar uma imagem de sistema e eu compartilhe com toda a equipe de
desenvolvimento todos eles vão ser a mesma versão de todos os contatos de do sistema operacional de todos os serviços e tudo tão aqui gente começa a ter um ambiente compartilhável a gente consegue centralizar ou seja tem 16 Adivinha uma pessoa que cuida dessa dessa infraestrutura essa pessoa vai criar essa imagem centralizou a responsabilidade Beleza não tem um montão de sistema e diferente e a gente consegue restaurar isso rápido é upa teve um problema que tem uma máquina a beleza bota uma nova máquina de gente tem a imagem da máquina e só sobe de novo então
gente resolvia muitos dos problemas inclusive a parte de gestão de rede a comunicação entre o mesmo Entre várias máquinas virtuais que estão mesmo computador é bem mais fácil de gerenciar do que rede física puxando o cabo e etc então isso já ajudou muito diminui muito os custos só que com essa nova solução vieram novos problemas é o principal é que a gente tem um sistema operacional para cada aplicação que a gente quer ainda porque cada máquina virtual é um sistema operacional novo um computador dentro do computador Então dentro do meu sistema operacional eu tenho outro
sistema operacional de novo isso é caro para gerenciar Eu preciso de uma pessoa garantindo que tá na versão certa que essa versão bate com o da máquina com do da aplicação que a gente vai usar a gente precisa Isso gasta muito recurso a gente tem um desperdício aqui porque a gente precisa ter Nossa Máquina rodando com o sistema operacional e sistema operacional para gerenciar um software si software Gerencia um outro sistema operacional e como você deve imaginar é bastante pesado Então exigia muitos recursos tão a gente acaba precisando de uma máquina bem potente só por
causa desse desperdício de um sistema para chamar o por cada máquina virtual e ainda assim embora a gente conseguisse centralizar e compartilhar esse ambiente a gente acaba tendo uma dificuldade na criação demora subir uma máquina virtual eu preciso configurar o sistema para si bom então ainda não era o ideal aí que surge a era dos containers que era que a gente vive hoje ela tá em constante evolução tem muita coisa que eu nem vou citar aqui mas basicamente a solução que a gente chegou por enquanto se mantém que é de utilização de conteúdos Qual é
a diferença entre uma máquina virtual em contém vamos lá primeiro máquina virtual ela tem você tem ao seu computador e ele tem um sistema operacional e sistema operacional vai precisar de um negocinho chamado Reipert vai ser que é o que permite rodar outros sistemas operativos beleza e Aqui Nós Temos vários sistemas dentro do nosso Então isso é como uma máquina virtual funciona João contém uma container o que eles fazem eles utilizam uma container índia essa container and o que que ela faz ela gerencia os containers é como se fosse aquele sistema que gerencia aquele programa
que gerencia máquinas virtuais só que ele vai gerenciar contenders a diferença é que o os binários do sistema só podem ser utilizados por essa conta é grande então não preciso de um sistema para o sinal Além disso imagina que eu vou subir aqui essa aplicação é uma and Nice esse a gente já que ela precisa de algumas coisas do Linux correto e precisa de acesso à rede beleza essa container and vai fornecer tudo que ela precisa são esses binárias aqui biblioteca perfeito fornece tudo para ela e essa aplicação dois é uma praxe Ela precisa também
de algumas bibliotecas do Linux Muito provavelmente as mesmas ou algumas parecidas e preciso de acessa rede Então tudo isso aqui pode ser compartilhado por essas duas aplicações que estão ainda assim isolados E aí que entra a mágica do container um container é uma camada fina que engana esse software ele fingir ele fala para esse sofre Olha só você tá no sistema operacional novo ele isola esse sistema dessa aplicação então todos os processos que rodam aqui nesse container pensam que estão em um software em um sistema operacional separado mas na verdade eu tô dando utilizando binários
de sistema quando for possível e quando não for possível todos os contendas compartilham vários de bibliotecas e das dos arquivos vinagre então muito mais recurso é compartilhado e eu não preciso de um sistema operacional novo para cada aplicação eu tenho aqui dentro do Meu Container todos os bibliotecas que são necessários do Linux por exemplo e que vários dos container compartilham de bibliotecas que são necessárias Então essa é basicamente a mágica que conseguiram fazer utilizando contêiners a gente consegue compartilhar muitos recursos mas mantendo isso tudo isolado Vinícius se compartilhe recurso quer dizer que não é replicável
então o que eu tenho aqui na na minha máquina não vou ter na máquina da outra pessoa que desenvolve também a gente entra beleza essa container and vai gerenciar isso tudo então ao invés de instalar no programa de máquina virtual você está nesse problema de container e ele garante que tudo que puder ser compartilhado vai ser compartilhado então se eu utilizo o Windows e instalar essa contém Grande e vai baixar o que é necessário para parecer um Linux e lá dentro da aplicação vai rodar como se tivesse um Hilux então isso Mata aquele problema de
na minha máquina funciona a outra pessoa que está desenvolvendo com o Linux vai instalar essa container and vai ser mais rápido ainda mas o sistema lá vai continuar vendo como se fosse menos ou seja aplicação vai mudar de forma Idêntica na minha máquina que é Linux na máquina da minha colega que usa Linux na máquina da minha outra colega que usa Mac USP porque todos vão estar dentro de uma camada de uma camada fina que é esse com Tânia que isola os processos e fala para eles Olha só você tá no Linux e esse processo
vai acreditar ele não tem nenhum motivo para duvidar de você e tudo que ele precisa do Linux essa container and ele sabe fornecia Então essa é a magia dos containers então aqui algumas das vantagens que eu já falei isso é muito mais muito mais muito mais leve se você tentar subir uma máquina virtual aí com um a parte você vai precisar instalar o Linux configurar esse livro que subiu a baixo agora dentro subiu um contêiner com a Paty é simples demais alguma container and não pode até já tem um comando zinho com uma imagem de
um container que fornece para você você não precisa gerenciar vários sistemas operacionais só vai ter ali do Linux por exemplo o que é necessário e não sistema inteiro Então você garante que vai dar tudo certo a Vinícius eu preciso especificamente do carne o tal do Linux sem problemas você consegue ter isso ali dentro da sua container and E aí todos os sistemas que puderem utilizar-se o bibliotecas vão utilizar e é muito mais rápido como eu falei para provisionar o que que você quer dizer para levantar um container completo com tudo que você precisa é muito
mais rápido e antes da gente finalizar eu citei o conceito de imagem de novo assim como a gente tinha com as máquinas virtuais a gente pode ter com container Então imagina que para sua aplicação você precisa do and next na versão X então você pode criar uma imagem que tem lá as mínimas de bibliotecas do Linux necessária e o Henrique já instalado Nessa versão pronto essa imagem eu e você só executa ela e a partir dessa imagem Você pode ter vários containers então você pode ter três contêineres do and next na sua máquina inclusive fazer
balanceamento de carga entre eles e etc uma imagem pode virar vários com tênis Tom container é como se fosse um sistema rodando mesmo e a imagem é o que permite sistema rodar é são como se fossem as configurações o que é necessário para criar Esse sistema é o que a gente chama de imagem e o que é interessante que Isso facilita muito a gente tem vários com tênis diferente na nossa máquina sem gastar tanto recurso então eu posso ter um container com DirectX 11 container com PHP e outro com telha com pão tigre pegando aquele
exemplo que a gente viu do Ratinho assustado é muito mais simples tá tudo na mesma máquina mas eles acham que estão máquinas diferentes a comunicação é muito simples de gerenciar também a gestão de redes em contendas é bem mais fácil do que rede física só que ele se enxergam com os lados dessa forma eu posso inclusive escalar de forma isolada e Existem várias ferramentas que gerenciam várias instâncias de cortinas mas aí a gente já começa a sair um pouco do conceito e entrar em ferramentas para isso recomendo demais que você faça os treinamentos de docker
de docker-swarm de kubernet isso tudo tem aqui na lua Então vale a pena demais para você entender como gerenciá-los com tênis na prática e que também como gerenciar vários container como uma aplicação só como uma unidade sendo que estão todos separados e os olhos então fica aí o conceito de container e fica também o convite para você aplicar isso tudo na prática e conheça os cursos de programação da Luna em Java Python ser chave pega p.net Closure mais aí nos cursos de computação com boas práticas exercícios para fazer da sua paixão a sua profissão meditar
com a gente e
Copyright © 2024. Made with ♥ in London by YTScribe.com