Como a conteinerização pode ajudar com a velocidade e a eficiência do projeto?

Autor: Roger Morrison
Data De Criação: 28 Setembro 2021
Data De Atualização: 10 Poderia 2024
Anonim
Como a conteinerização pode ajudar com a velocidade e a eficiência do projeto? - Tecnologia
Como a conteinerização pode ajudar com a velocidade e a eficiência do projeto? - Tecnologia

Contente


Fonte: Sashazamarasha / Dreamstime.com

Leve embora:

Os contêineres estão permitindo que os desenvolvedores trabalhem com mais rapidez e eficiência do que com máquinas virtuais.

Se você ouviu algo sobre virtualização de rede, a prática de abstrair redes do bare metal e fornecê-las com recursos virtuais, provavelmente já ouviu falar sobre contêineres. Se você leu o suficiente para descobrir como os contêineres de TI diferem, por exemplo, dos contêineres de remessa, você sabe um pouco sobre sua estrutura e composição.

Um contêiner é um recurso de virtualização que compartilha o kernel de um sistema operacional clonado com outros contêineres. Requer menos esforço de configuração do que uma máquina virtual em geral e possui outros benefícios importantes. Sistemas incluindo contêineres Docker e Kubernetes estão permitindo que as empresas construam e escalem de maneiras novas e empolgantes.


Por que os contêineres são tão populares e como eles contribuem para a eficiência e o aprimoramento das operações? Aqui estão algumas idéias de alguns dos pioneiros da conteinerização que colocaram essa filosofia para trabalhar em suas empresas e organizações. (Para saber mais sobre contêineres, consulte Como os contêineres ajudam os aplicativos corporativos.)

Encapsulamento, microsserviços e artefatos

Um dos pontos de discussão mais comuns dos engenheiros que usam entusiasticamente as configurações de contêineres é que os próprios contêineres são capazes de abrigar uma base de código completa com todas as suas dependências, pronta para ser implantada.

Usando um arquivo estático chamado imagem de contêiner, os engenheiros podem combinar bibliotecas do sistema e outros recursos com todo ou parte de um aplicativo. Por sua vez, isso impulsiona a criação e a entrega de microsserviços, onde diferentes contêineres hospedam funções diferentes que podem ser reunidas para criar um ecossistema ágil.


"Acreditamos que o contêiner, ou melhor, a imagem do contêiner, é o novo artefato de entrega de software", diz Chris Ciborowski, CEO da NebulaWorks, que trabalha com contêineres desde seus primeiros anos na década de 2000. “O que quero dizer com isso, e por quê? Um artefato de entrega é a versão executável do aplicativo de um desenvolvedor que está pronto para ser implantado. No passado, isso incluía apenas o próprio código executável, que deixava as operações de dependência de tempo de execução em execução. Ao alavancar a imagem do contêiner, os desenvolvedores podem incluir todas as suas dependências, reduzindo bastante a chance de falha no tempo de execução devido a erro humano durante a implantação do aplicativo. ”

"Containers, que permitem que as organizações migrem facilmente aplicativos e suas dependências entre máquinas, fazem muito sentido para organizações que desenvolvem software internamente", diz Peter Tsai, analista de tecnologia sênior da SpiceWorks, apontando que os contêineres ainda estão uma tecnologia relativamente nova. "As soluções de terceiros para contêineres não são tão robustas quanto no ambiente de virtualização. De acordo com os dados da Spiceworks, em 2018, apenas 19% das organizações usavam contêineres, embora esse número deva crescer para 35% até 2020. ”

Scott Buchanan, vice-presidente de marketing da Heptio, explica isso na forma de uma analogia logística útil.

Sem erros, sem estresse - seu guia passo a passo para criar software que muda vidas sem destruir sua vida

Você não pode melhorar suas habilidades de programação quando ninguém se importa com a qualidade do software.

"Pense em mudar", diz Buchanan. "Você precisará de muitas caixas de papelão. Então, você implanta vários deles em toda a sua casa e os preenche com tudo o que importa para você: aplicativos. Em vez de fechá-los com fita adesiva e perder o acesso a seus pertences, eles permanecem abertos para que você possa reorganizar suas coisas entre caixas, conforme necessário. E, quando você precisa mover essas caixas, é muito mais simples do que colocar sua casa sobre rodas. Essas caixas de papelão são contêineres e oferecem a você a portabilidade de mover suas coisas entre locais, incluindo nuvens públicas e privadas. ”

A filosofia do DevOps

Os contêineres também estão ajudando as empresas a buscar algo chamado "DevOps", que é uma espécie de santo graal na tecnologia corporativa. É a ideia de que você está fazendo uma ponte entre os departamentos de desenvolvimento e operações, ajudando as equipes a colaborar melhor, e isso aprimora o pipeline e cria um sistema de liberação mais ágil. (Deseja saber mais sobre o DevOps? Confira os gerentes do DevOps explicando o que eles fazem.)

“Os desenvolvedores não apenas obtêm um benefício, mas também as operações”, explica Ciborowski, descrevendo algumas dessas funcionalidades do DevOps. “Como a imagem do contêiner é portátil, as equipes de operações podem executar a imagem do contêiner em QUALQUER host que possua um tempo de execução compatível com o contêiner - como o Docker - e à medida que a adoção aumenta, aproveite as ferramentas de orquestração como o Kubernetes para quase QUALQUER pilha de aplicativos, em QUALQUER tipo de infraestrutura, para por exemplo, local e na nuvem ".

O CEO Ali Golshan, da StackRox, explica ainda mais a filosofia do DevOps inerente ao design de contêineres, descrevendo como a conteinerização pode ajudar a aprimorar um pipeline.

"A conteinerização permite que as organizações liberem aplicativos e introduzam novas funcionalidades para os clientes muito mais rapidamente", diz Golshan. “Como os contêineres isolam o código em unidades menores, os desenvolvedores podem trabalhar de forma mais independente para melhorar a funcionalidade. A tecnologia de contêineres também reduz a carga de testes, o que acelera a introdução de software, porque os desenvolvedores podem testar apenas o novo código, confiantes de que não quebraram outra parte do aplicativo. ”

Dan Bartow, da ConDati, descreve como a conteinerização do Kubernetes ajudou sua empresa a evoluir.

“Antes do Kubernetes, tínhamos que fazer shell manualmente em cada ambiente e fazer atualizações manualmente, puxando novos contêineres, parando os antigos, iniciando novos e repetindo isso manualmente para todos os clientes”, diz Bartow. “O Kubernetes transformou horas e horas de trabalho nos dias de lançamento em apenas alguns minutos. Com apenas alguns cliques, podemos fazer uma atualização sem interrupção de cada contêiner em um ou em todos os ambientes. Isso acontece sem problemas. ”

Quando esses tipos de operações ajudam os desenvolvedores a trabalhar mais de perto com as equipes de operações e rompem as barreiras entre os departamentos, eles podem habilitar um modelo melhor de DevOps, tornando a empresa mais competitiva em seu setor.

Segurança

Além de tudo o que os contêineres prometem em termos de funcionalidade, eles também têm alguns importantes benefícios de segurança. Golshan tem muito a dizer sobre como uma "superfície fina de ataque" na implantação de contêineres reduz o risco.

"A superfície de ataque com contêineres é simplificada e complicada", diz Golshan. "Por um lado, cada 'pedaço' de código é menor, reduzindo a superfície de ataque. Além disso, os contêineres vêm com muitas informações declarativas sobre como devem ser configuradas, rotuladas e usadas, o que pode melhorar a segurança. ”

E, ele acrescenta, isso não é tudo.

“Por outro lado, os contêineres introduzem novas superfícies de ataque de duas maneiras. A efemeridade é um elemento. Como os contêineres costumam ir e vir, não há problema em tomar medidas drásticas de segurança, como matar um contêiner, se ele agir 'incorretamente'. Mas essa efemeridade também significa que os atacantes podem cobrir seus rastros com mais facilidade e impedir a perícia iniciando um ataque, extraindo dados e depois matar o recipiente quando terminar. O segundo elemento da superfície de ataque mais ampla vem com outros elementos do ecossistema - principalmente o orquestrador. Os orquestradores fornecem às organizações uma maneira de escalar a criação, implantação e gerenciamento de contêineres, mas o setor viu vários ataques e vulnerabilidades vinculados ao orquestrador. A Tesla viu sua infraestrutura Kubernetes comprometida de uma maneira que permitia que os invasores explorassem a criptomoeda, e um relatório detalhava como um invasor poderia ter comprometido os clusters Kubernetes da Shopify. ”

No caso de Bartow, uma auditoria real de segurança de terceiros confirmou que a menor superfície de ataque dos contêineres é uma vantagem para o ConDati.

"Acabamos de concluir um teste de penetração de terceiros ... o primeiro que fizemos, e eles nos disseram literalmente que temos uma 'pequena superfície de ataque'", diz Bartow. "Kubernetes é uma grande parte do motivo disso ser verdade."

Todos os itens acima apontam para um grande potencial de contêineres no mundo de TI dos negócios de amanhã. Pense em todas as maneiras pelas quais esses benefícios essenciais podem ser aplicados a qualquer modelo de negócios de ponta.