Notícias

Por que apostar em Docker e containers?

Um livro publicado em 1981, denominado Nailing Jelly to a Tree, descreve o software como “nebuloso e difícil de se agarrar com firmeza”. Isso era verdade em 1981, e não menos verdadeiro há quase quatro décadas. O software sendo de difícil implantação, de gerenciar e de executar.

Os containers Docker fornecem uma maneira de controlar o software. O usuário pode usar o Docker para encerrar um aplicativo de forma que seus problemas de implantação e tempo de execução – como expô-lo em uma rede, gerenciar seu uso de armazenamento e memória e controlar permissões de acesso – sejam manipulados fora do próprio aplicativo e de forma consistente em todos os aplicativos “contidos em container”. É possível executar o container Docker em qualquer host compatível com sistema operacional (Linux ou Windows) que tenha o tempo de execução do Docker instalado.

A ferramenta oferece muitos outros benefícios além desse prático encapsulamento, isolamento, portabilidade e controle. Os containers são pequenos (megabytes) e começam instantaneamente. Eles têm seus próprios mecanismos internos para versionamento e reutilização de componentes. Eles podem ser facilmente compartilhados por meio do Docker Hub público ou do repositório privado.

Antes dos containers

Por muitos anos, o software corporativo tem sido implantado em “bare metal” (instalado em um sistema operacional que possui controle total sobre o hardware subjacente) ou em uma máquina virtual (instalada em um sistema operacional que compartilha o hardware subjacente com outros sistemas operacionais “guest”). Naturalmente, instalar em hardware simples tornou o software dolorosamente difícil de movimentar e difícil de atualizar – duas restrições que dificultaram que a TI reagisse com agilidade às mudanças nas necessidades de negócios.

Então a virtualização chegou. As plataformas de virtualização permitiram que várias máquinas virtuais compartilhassem um único sistema físico, cada máquina virtual emulando o comportamento de um sistema inteiro, completo com seu próprio sistema operacional, armazenamento e E/S, de forma isolada. A TI agora poderia responder de forma mais eficaz às mudanças nos requisitos de negócios, porque as VMs poderiam ser clonadas, copiadas, migradas e ativadas ou desativadas para atender à demanda ou economizar recursos.

As máquinas virtuais também ajudaram a reduzir custos, porque mais VMs poderiam ser consolidadas em menos máquinas físicas. Sistemas legados que executam aplicativos antigos podem ser transformados em VMs e descomissionados fisicamente para economizar ainda mais dinheiro.

Mas as máquinas virtuais ainda têm sua parcela de problemas. As máquinas virtuais são grandes (gigabytes), cada uma contendo um sistema operacional completo. Apenas alguns aplicativos virtualizados podem ser consolidados em um único sistema. Provisionar uma VM ainda leva um bom tempo. Finalmente, a portabilidade das VMs é limitada. Depois de um certo ponto, as VMs não conseguem oferecer o tipo de velocidade, agilidade e economia que as empresas em constante movimentação estão exigindo.

Benefícios do container

Os containers funcionam um pouco como as VMs, mas de uma maneira muito mais específica e granular. Eles isolam um único aplicativo e suas dependências – todas as bibliotecas externas de software que o aplicativo precisa executar – tanto do sistema operacional subjacente quanto de outros containers. Todos os aplicativos em container compartilham um único sistema operacional comum (Linux ou Windows), mas eles são compartilhados entre um e outro e do sistema como um todo.

Os benefícios dos containers Docker aparecem em muitos lugares. Aqui estão algumas das principais vantagens:

  • O Docker permite um uso mais eficiente dos recursos do sistema
  • As instâncias de aplicativos em container usam muito menos memória do que as máquinas virtuais, elas são inicializadas e interrompidas mais rapidamente e podem ser armazenadas muito mais densamente em um hardware host. Tudo isso equivale a menos gastos com TI.
  • A redução de custos irá variar dependendo de quais aplicativos estão em jogo e de quão intensivos os recursos podem ser, mas os containers funcionam invariavelmente como mais eficientes que as VMs. Também é possível economizar nos custos de licenças de software, porque é necessário muito menos instâncias do sistema operacional para executar as mesmas cargas de trabalho.
  • O Docker permite ciclos de entrega de software mais rápidos
  • O software corporativo deve responder rapidamente a mudanças de condições. Isso significa que o escalonamento fácil atende à demanda e facilita a atualização para adicionar novos recursos conforme a necessidade do negócio.
  • Os containers Docker facilitam a colocação rápida de novas versões de software, com novos recursos de negócios, e a rápida reversão para uma versão anterior, se necessário. Eles também facilitam a implementação de estratégias como implantações em azul / verde.
  • O Docker permite a portabilidade de aplicativos
  • Docker ajuda a arquitetura de microsserviços
  • Os containers são leves, portáteis e facilitam a construção de software em linhas de pensamento avançado, de modo que o desenvolvedor não está tentando resolver os problemas de amanhã com os métodos de desenvolvimento de ontem.

Um dos containers de padrões de software torna mais fácil os microsserviços, onde as aplicações são constituídas de muitos componentes fracamente acoplados. Ao decompor aplicativos tradicionais “monolíticos” em serviços separados, os microsserviços permitem que as diferentes partes de um aplicativo de linha de negócios sejam dimensionadas, modificadas e atendidas separadamente – por equipes separadas e em linhas de tempo separadas, se isso for adequado às necessidades do setor.

Os containers não precisam implementar microsserviços, mas são perfeitamente adequados à abordagem de microsserviços e aos processos de desenvolvimento ágil em geral.

Os problemas que não são resolvidos

A primeira coisa a ter em mente sobre containers é o mesmo conselho que se aplica a qualquer tecnologia de software: isso não é uma bala de prata. Eles não podem resolver todos os problemas. Em particular:

  • O Docker não corrige problemas de segurança
  • O software em um container pode ser mais seguro por padrão do que o software executado em metal puro, mas é como dizer que uma casa com as portas trancadas é mais segura do que uma casa com as portas destravadas. Não diz nada sobre a condição do bairro, a presença visível de objetos de valor que são tentadores para um ladrão, as rotinas das pessoas que moram lá e assim por diante. Os containers podem adicionar uma camada de segurança a um aplicativo, mas apenas como parte de um programa geral de proteção de um aplicativo no contexto.
  • O Docker não transforma aplicações magicamente em microsserviços
  • Ao “containezar” um aplicativo existente, isso poderá reduzir o consumo de recursos e facilitar a implantação. Mas isso não altera automaticamente o design do aplicativo ou como ele interage com outros aplicativos. Esses benefícios só vêm por meio do tempo e esforço do desenvolvedor, não apenas um mandato para mover tudo para contêineres.
  • Docker não é um substituto para máquinas virtuais
  • Um mito persistente de containers é que eles tornam as VMs obsoletas. Muitos aplicativos que costumavam ser executados em uma VM podem ser movidos para um container, mas isso não significa que todos eles podem ou devem ser. Se a empresa estiver em um setor com requisitos regulatórios pesados, por exemplo, talvez não consiga trocar contêineres por VMs, porque as VMs fornecem mais isolamento.

Recent Posts

CSPs estão otimistas sobre uso de IA em telecomunicações

Os provedores de serviços de comunicações (CSPs) estão otimistas com relação à inteligência artificial. Mais…

18 minutos ago

Scarlett Johansson vs. OpenAI: A luta contra as réplicas digitais

A recente controvérsia envolvendo Scarlett Johansson e a OpenAI levantou uma questão importante sobre o…

1 hora ago

Mais da metade dos ataques contra empresas no Brasil em 2023 usaram IA generativa

Apesar de uma redução no número total de ataques cibernéticos no Brasil entre 2022 e…

2 horas ago

Atos faz upgrade de sistema de geoprocessamento da Cemig

A Atos anunciou essa semana a conclusão de um projeto de modernização do sistema de…

3 horas ago

Tecnologia espacial da Embrapa vai mapear aquicultura no Brasil

A Empresa Brasileira de Pesquisa Agropecuária (Embrapa) planeja testar uma tecnologia de imagem por satélite…

3 horas ago

Parceiros Nutanix estão animados com oportunidades de negócios geradas após movimentações do mercado

A Nutanix, fornecedora de soluções hiperconvergentes, tem como seu modelo de negócios a venda via…

4 horas ago