{"id":3147,"date":"2017-11-16T13:10:26","date_gmt":"2017-11-16T15:10:26","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=3147"},"modified":"2018-12-05T10:14:58","modified_gmt":"2018-12-05T12:14:58","slug":"umblercast-por-que-apostar-em-containers","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/umblercast-por-que-apostar-em-containers\/","title":{"rendered":"Umblercast: por que apostar em containers?"},"content":{"rendered":"<p>Containers s\u00e3o tend\u00eancia. E n\u00e3o, n\u00e3o estamos falando de <a href=\"https:\/\/www.nytimes.com\/2017\/09\/22\/realestate\/home-in-shipping-container.html\" target=\"_blank\" rel=\"noopener\">moradias sustent\u00e1veis<\/a>, nem da log\u00edstica de transporte. Apesar desses assuntos tamb\u00e9m estarem em evid\u00eancia, a ideia aqui \u00e9 tratar de uma outra esp\u00e9cie de container &#8211; que n\u00e3o est\u00e1 nem tanto \u00e0 terra, nem tanto ao mar, mas no ambiente virtual (se \u00e9 que ainda \u00e9 poss\u00edvel dissociar esses universos).<\/p>\n<p><strong>Esse \u00e9 o tema do Umblercast, o podcast da Umbler, no m\u00eas de novembro. Mas, por que estamos falando sobre isso? Calma, vamos explicar! <\/strong><\/p>\n<p>Os motivos s\u00e3o realmente inspiradores e os dados j\u00e1 traduzem. Segundo uma <a href=\"https:\/\/portworx.com\/2017-container-adoption-survey\/\" target=\"_blank\" rel=\"noopener\">pesquisa realizada pela Portworx<\/a> em mar\u00e7o de 2017, com 491 profissionais de TI de diferentes ind\u00fastrias, entre os principais motivos para investir em containers est\u00e3o o aumento da efici\u00eancia no desenvolvimento (46%) e o apoio a <a href=\"https:\/\/blog.umbler.com\/br\/utilizando-microservices-na-umbler\/\" target=\"_blank\" rel=\"noopener\">arquiteturas de microsservi\u00e7os<\/a> (32%). Por esses e outros motivos, 56% dos respondentes afirmam que j\u00e1 investem financeiramente na <a href=\"https:\/\/blog.umbler.com\/br\/startups-de-ia\/\">tecnologia<\/a>.<\/p>\n<p>Mas, claro, como nem tudo s\u00e3o flores, ainda entre as principais barreiras para implementar esse tipo de virtualiza\u00e7\u00e3o est\u00e1 o baixo conhecimento sobre suas possibilidades &#8211; para 35% dos entrevistados. Considerando que a populariza\u00e7\u00e3o do conceito, principalmente a partir de iniciativas como o Docker (surgido em 2013), ainda \u00e9 recente, resolvemos falar sobre isso. Claro, de uma forma divertida, descontra\u00edda e real: uma conversa com especialistas no assunto.<\/p>\n<p>O que s\u00e3o containers? Como essa tecnologia surgiu? Por que est\u00e1 tomando conta do universo DevOps? Quais s\u00e3o os melhores e piores usos? Quais empresas j\u00e1 utilizam? O que \u00e9 preciso saber para trabalhar com containers? Essas e outras perguntas est\u00e3o respondidas no Globo Rep\u00f3rter, n\u00e3o pera! Est\u00e3o respondidas em um papo bem bacana que tivemos com Rafael Gomes, Wellington Silva, Cristiano Diedrich e Marco Antonio Martins Junior: um time de peso.<\/p>\n<h2>Mais sobre os participantes<\/h2>\n<h3>Rafael Gomes (Gomex)<\/h3>\n<p>Soteropolitano, hacker urbano e consultor de infraestrutura. Trabalha atualmente como Arquiteto de Solu\u00e7\u00f5es na Superintend\u00eancia de Tecnologia da Informa\u00e7\u00e3o da Universidade Federal da Bahia (UFBA), focado em aplica\u00e7\u00f5es, monitoramento e <a href=\"https:\/\/blog.umbler.com\/br\/seguranca-e-privacidade-no-atendimento-com-ia\/\">seguran\u00e7a<\/a>. Autor do e-book <a href=\"https:\/\/leanpub.com\/dockerparadesenvolvedores\" target=\"_blank\" rel=\"noopener\">\u201cDocker para desenvolvedores\u201d<\/a>.<\/p>\n<h3>Wellington Silva<\/h3>\n<p>Conhecido como Boina, Tom e Wsilva, entre outros apelidos. Participante da Docker community, coorganizador do meetup de Docker em S\u00e3o Paulo, tem background em telecomunica\u00e7\u00f5es, VoIP e Linux. Atualmente \u00e9 desenvolvedor e SysAdmin na EasyTaxi. Autor do livro <a href=\"https:\/\/aprendendodocker.com.br\/\" target=\"_blank\" rel=\"noopener\">Aprendendo Docker, do b\u00e1sico \u00e0 orquestra\u00e7\u00e3o de cont\u00eaineres<\/a>, publicado pela editora Novatec.<\/p>\n<h3>Cristiano Diedrich<\/h3>\n<p>Entusiasta Open Source, atualmente \u00e9 Container Specialist e Engenheiro DevOps na Umbler. Seu principal foco \u00e9 ir atr\u00e1s de ideias novas e torn\u00e1-las realidade por meio de solu\u00e7\u00f5es simples e eficientes.\u200b \u00c9 autor do site <a href=\"https:\/\/www.mundodocker.com.br\/\" target=\"_blank\" rel=\"noopener\">Mundo Docker<\/a>.<\/p>\n<h3>Marco Antonio Martins Junior (Somat\u00f3rio)<\/h3>\n<p>DevOps na prefeitura de Esteio, RS. Especialista em containers.<br \/>\nA escolha \u00e9 sua: voc\u00ea pode pular para essa superjornada agora mesmo ou conferir um resum\u00e3o dos t\u00f3picos abordados no programa.<br \/>\n<iframe src=\"https:\/\/w.soundcloud.com\/player\/?url=https%3A\/\/api.soundcloud.com\/tracks\/356602421&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true\" width=\"100%\" height=\"300\" frameborder=\"no\" scrolling=\"no\"><\/iframe><\/p>\n<h2>O que s\u00e3o containers?<\/h2>\n<p>Apresentar um conceito nunca \u00e9 tarefa f\u00e1cil. Muito maiores do que as verdades absolutas est\u00e3o as in\u00fameras interpreta\u00e7\u00f5es que podem surgir a partir delas. No caso dos containers, n\u00e3o \u00e9 diferente! Rafael Gomes abre o podcast com uma coloca\u00e7\u00e3o bastante interessante sobre essa tecnologia: \u201cA inten\u00e7\u00e3o do container, a n\u00edvel de sistema operacional, \u00e9 fazer com que a aplica\u00e7\u00e3o pense que est\u00e1 sozinha no S.O., mesmo que compartilhe do mesmo kernel (n\u00facleo) com todas as outras\u201d. Mas n\u00e3o se engane, isso n\u00e3o a transforma em uma VM, inclusive esse \u00e9 um erro muito comum, por conta disso vamos pensar no container como um processo. Por exemplo, container rodando \u00e9 um processo: na hora que voc\u00ea desliga um container, sabe que o processo morre e se voc\u00ea n\u00e3o persistir esses dados se perdem.<\/p>\n<p>Logo,<br \/>\n<strong>VM:<\/strong> virtualiza o hardware<br \/>\n<strong>Container:<\/strong> virtualiza o sistema operacional, uma abstra\u00e7\u00e3o do Kernel<\/p>\n<p>Ali\u00e1s, o pr\u00f3prio conceito de virtualiza\u00e7\u00e3o \u00e9 encarado como uma camada intermedi\u00e1ria, j\u00e1 que uma VM tem, normalmente, uma camada de virtualiza\u00e7\u00e3o para fazer a convers\u00e3o do di\u00e1logo entre o software, o sistema operacional e o hardware virtualizado. Em um esquema de containers n\u00e3o funciona assim: s\u00e3o sistemas isolados, mas se comunicam diretamente com o mesmo n\u00facleo<\/p>\n<p>As iniciativas n\u00e3o s\u00e3o concorrentes, s\u00e3o cooperativas, inclusive, \u00e9 bastante aconselh\u00e1vel instalar o Docker em uma VM.<\/p>\n<h2>Como surgiram os containers?<\/h2>\n<p>\u00c9 interessante perceber que o conceito de conteineriza\u00e7\u00e3o da computa\u00e7\u00e3o (agora fala bem r\u00e1pido tr\u00eas vezes seguidas :P) tenha como precursor o Chroot, desenvolvido para o Unix em 1979 e adicionado para BSD em 1982. Foi a partir dele que se tornou poss\u00edvel estipular um determinado espa\u00e7o em disco e dessa forma criar um sistema de arquivos autocontidos.<\/p>\n<p>A linha do tempo at\u00e9 o Docker \u00e9 essa aqui:<\/p>\n<p><strong>ZoNIX:<\/strong> 2005<br \/>\n<strong>LXC:<\/strong> 2008<br \/>\n<strong>Docker:<\/strong> 2013<\/p>\n<p>Logo no primeiro m\u00eas de lan\u00e7amento do Docker, o DotCloud liberou um material explicativo sobre como sua plataforma tinha sido constru\u00edda utilizando containers. O tema ainda era t\u00e3o pouco explorado que indo atr\u00e1s do projeto em mecanismos de busca voc\u00ea encontrava p\u00e1gina preta, bem feia, escrita DOCKER \u201cchroot com ester\u00f3ides\u201d. A primeira impress\u00e3o \u00e9 que tinham tornado o chroot mais dif\u00edcil ainda, ainda bem que nesse caso a primeira impress\u00e3o n\u00e3o foi a que ficou, n\u00e3o \u00e9 mesmo?<\/p>\n<p>At\u00e9 hoje algumas pessoas acreditam que o Docker ainda \u00e9 um LXC, mas j\u00e1 deixou de ser faz tempo.<\/p>\n<h2>Por que estamos falando tanto de Docker?<\/h2>\n<p>A grande sacada que popularizou o Docker foi perceber que a comunidade j\u00e1 tinha acesso a in\u00fameras tecnologias, o que eles precisavam mesmo era de um facilitador. Era necess\u00e1rio melhorar a produtividade.<\/p>\n<p>O Docker por tanto torna-se muito interessante quando pensamos no ecossistema que ele oferece e n\u00e3o necessariamente no fato de ser bin\u00e1rio. Ele se torna uma esp\u00e9cie de acervo p\u00fablico, onde \u00e9 poss\u00edvel consultar e compartilhar imagem, servi\u00e7o, vulnerabilidade, etc. Esses atributos tornam ele mais simples do que o que t\u00ednhamos at\u00e9 hoje.<\/p>\n<p>Al\u00e9m da simplicidade, outro atributo importante \u00e9 a agilidade, como o container passa a ser uma cama escrita e toda a estrutura da imagem \u00e9 baseada em camadas, voc\u00ea consegue reutilizar essas camadas de forma isolada, aumentando a velocidade do processo. Tamb\u00e9m por conta desta caracter\u00edstica \u00e9 muito simples conect\u00e1-lo a tecnologias j\u00e1 existentes.<\/p>\n<h2>Qual o melhor e pior uso de container?<\/h2>\n<p>Agradar a todos \u00e9 dif\u00edcil, n\u00e9? Por isso vale a pena voc\u00ea entrar no Docker j\u00e1 ciente de que se voc\u00ea precisa que todos os dados estejam consistentes, voc\u00ea vai penar!<br \/>\nEnt\u00e3o se o seu projeto tem alta depend\u00eancia de persist\u00eancia de dados entre containers, voc\u00ea j\u00e1 sabe, as coisas n\u00e3o s\u00e3o f\u00e1ceis. Por exemplo, os banco de dados tem um alto n\u00edvel de I\/O e persist\u00eancia de dados e por tanto, o Docker n\u00e3o \u00e9 muito confi\u00e1vel, nesses casos.<\/p>\n<p>Entretanto o modelo container \u00e9 \u00f3timo para os microsservi\u00e7os, por exemplo. O pr\u00f3prio Gomex faz uma brincadeira durante o nosso Podcast: \u201cSe tem uma unanimidade em microsservi\u00e7os \u00e9 que ele foi feito para \u2018falhar\u2019, e n\u00e3o tem problema nenhum nisso, j\u00e1 existe replica\u00e7\u00e3o, por tem outro microsservi\u00e7o do outro lado\u201d. Logo, se voc\u00ea estiver persistindo coisas dentro do Docker que possam \u201cquebrar\u201d, onde um dado \u00e9 perdido mas recuperado de outra forma, n\u00e3o h\u00e1 problemas.<\/p>\n<h2>Empresas que est\u00e3o usando Docker?<\/h2>\n<p>S\u00e3o diversas empresas como Through Works, Stone, Dafiti, Tricae, EasyTaxi, etc. Qualquer empresa que nasce j\u00e1 usa algo de container.<\/p>\n<p>E \u00e9 claro que a Umbler est\u00e1 nesse hall de empresas que usam container, n\u00e9?. J\u00e1 utilizamos Docker h\u00e1 dois anos, para coisas internas como <a href=\"https:\/\/goodbye.host\/\" target=\"_blank\" rel=\"noopener\">Goodbye.host<\/a>, por exemplo. Para clientes, hoje oferecemos <a href=\"https:\/\/www.umbler.com\/br\/hospedagem-nodejs\" target=\"_blank\" rel=\"noopener\">hospedagem Node.js<\/a>, 100% rodando em container. E n\u00e3o para por a\u00ed n\u00e3o, logo mais teremos o PHP containerizado tamb\u00e9m.<\/p>\n<h2>Complete a frase: Eu sou um desenvolvedor, devo usar container porque?<\/h2>\n<p><strong>Somat\u00f3rio:<\/strong> &#8220;Porque voc\u00ea pode!&#8221;<br \/>\n<strong>Gomex:<\/strong> &#8220;Porque \u00e9 f\u00e1cil, facilita a <a href=\"https:\/\/blog.umbler.com\/br\/avancos-em-ia-generativa\/\">inova\u00e7\u00e3o<\/a>&#8221;<br \/>\n<strong>Cristiano: <\/strong>&#8220;Por que n\u00e3o? Ele d\u00e1 liberdade para fazer&#8221;<br \/>\n<strong>Wellington:<\/strong> &#8220;Porque eu tenho controle e padroniza\u00e7\u00e3o de ambiente&#8221;<\/p>\n<h2>O que preciso saber para trabalhar com containers?<\/h2>\n<p>Se voc\u00ea for Ops, se prepare, ser\u00e1 necess\u00e1rio aprender a desenvolver. Agora se voc\u00ea for Dev, j\u00e1 se aquece, pois voc\u00ea vai precisar entender um pouco mais de Ops. O container \u00e9 uma ferramenta bem localizada na intersec\u00e7\u00e3o desses dois mundos.<\/p>\n<p>Algu\u00e9m a\u00ed disse DevOps? Isso mesmo, como j\u00e1 dissemos antes e nessa am\u00e1lgama que essa ferramenta \u00e9 melhor utilizada. Esteja aberto \u00e0 mudan\u00e7a e seja din\u00e2mico, pois o Docker veio pra ficar, refor\u00e7a Cristiano.<\/p>\n<p>Outro ponto importante s\u00e3o as skills sociais, sim voc\u00ea vai precisar conversar com as pessoas. Ent\u00e3o j\u00e1 cola nos amiguinhos de humanas e descola umas dicas boas de conversa\u00e7\u00e3o, relacionamento interpessoal e intelig\u00eancia emocional. Inevitavelmente voc\u00ea vai precisar dividir seu conhecimento com a comunidade, pois se isso n\u00e3o acontecer a roda n\u00e3o gira. Precisamos compartilhar para que a inova\u00e7\u00e3o seja poss\u00edvel.<\/p>\n<h2>Refer\u00eancias para aprender mais sobre containers<\/h2>\n<ul>\n<li><a href=\"https:\/\/telegram.me\/dockerbr\" target=\"_blank\" rel=\"noopener\">Grupo Docker Telegram<\/a><\/li>\n<li><a href=\"https:\/\/www.mundodocker.com.br\/\" target=\"_blank\" rel=\"noopener\">Mundo Docker<\/a><\/li>\n<li><a href=\"https:\/\/leanpub.com\/dockerparadesenvolvedores\" target=\"_blank\" rel=\"noopener\">Livro &#8220;Docker para desenvolvedores&#8221;<\/a><\/li>\n<li><a href=\"https:\/\/www.devopsdays.org\/\" target=\"_blank\" rel=\"noopener\">DevOpsDays<\/a><\/li>\n<li><a href=\"https:\/\/www.docker.com\/community\/meetup-groups\" target=\"_blank\" rel=\"noopener\">Meetups de Docker pelo mundo<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Containers s\u00e3o tend\u00eancia. E n\u00e3o, n\u00e3o estamos falando de moradias sustent\u00e1veis, nem da log\u00edstica de transporte. Apesar desses assuntos tamb\u00e9m estarem em evid\u00eancia, a ideia aqui \u00e9 tratar de uma outra esp\u00e9cie de container &#8211; que n\u00e3o est\u00e1 nem tanto \u00e0 terra, nem tanto ao mar, mas no ambiente virtual (se \u00e9 que ainda \u00e9 [&hellip;]<\/p>\n","protected":false},"author":42,"featured_media":5132,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[279,280],"class_list":["post-3147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","tag-containers","tag-docker"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3147"}],"collection":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=3147"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3147\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/5132"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=3147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=3147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=3147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}