Trace Id is missing
Avançar para o conteúdo principal

O que é um contentor?

Empacotamento padronizado e portátil para as suas aplicações.

Explicação sobre os contentores

Tal como as indústrias de transporte utilizam contentores físicos para isolar as diferentes mercadorias, por exemplo, para transporte em navios e comboios, as tecnologias de desenvolvimento de software recorrem cada vez mais a uma abordagem denominada contentorização.

Um pacote standard de software, conhecido como contentor, agrupa o código de uma aplicação juntamente com os ficheiros de configuração, as bibliotecas e as dependências associadas necessárias à execução da aplicação. Isto permite aos programadores e profissionais de TI implementar aplicações facilmente em todos os ambientes.

Motivo pelo qual se deve preocupar com os contentores

O problema de uma aplicação não ser executada corretamente quando é movida de um ambiente para outro é tão antigo como o próprio desenvolvimento de software. Estes problemas surgem normalmente devido a diferenças nos requisitos de biblioteca subjacentes da configuração e outras dependências.

Os contentores abordam este problema ao fornecer uma infraestrutura leve e imutável para o empacotamento e implementação de aplicações. Uma aplicação ou serviço, as respetivas dependências e configuração são empacotadas como uma imagem de contentor. A aplicação contentorizada pode ser testada como unidade e implementada como uma instância de imagem de contentor no sistema operativo anfitrião.

Desta forma, os contentores permitem aos programadores e profissionais de TI implementar aplicações em ambientes com pouca ou nenhuma modificação.

Saiba mais sobre a génese e a beleza dos contentores.

Uma pessoa a desenhar diagramas com um marcador branco.

Contentor vs. máquina virtual

Quando as pessoas pensam em virtualização, as máquinas virtuais (VMs) vêm muitas vezes à mente. Na verdade, a virtualização pode assumir muitas formas e os contentores são uma delas. Qual é a diferença entre VMs e contentores?

A um nível elevado, as VMs virtualizam o hardware subjacente para que várias instâncias do sistema operativo (SO) possam ser executadas no hardware. Cada VM executa um SO e tem acesso a recursos virtualizados que representam o hardware subjacente.

As VMs têm inúmeros benefícios. Estes incluem a capacidade de executar diferentes sistemas operativos no mesmo servidor, uma utilização mais eficiente e rentável dos recursos físicos e um aprovisionamento mais rápido do servidor. Por outro lado, cada VM contém, por exemplo, uma imagem de SO, bibliotecas e aplicações, e pode tornar-se bastante grande.

Um contentor virtualiza o SO subjacente e faz com que a aplicação contentorizada perceba que contém o SO, incluindo CPU, memória, armazenamento de ficheiros e ligações de rede, à sua disposição. Como as diferenças no SO subjacente e na infraestrutura são abstratas, desde que a imagem base seja consistente, o contentor pode ser implementado e executado em qualquer local. Para os programadores, isto é incrivelmente apelativo.

Uma vez que os contentores partilham o SO anfitrião, não precisam de arrancar um SO nem carregar bibliotecas. Isto permite que os contentores sejam muito mais eficientes e leves. As aplicações contentorizadas podem ser iniciadas em segundos e muitas mais instâncias da aplicação podem caber na máquina em comparação com um cenário de VMs. A abordagem de SO partilhado tem o benefício adicional de reduzir o overhead no que diz respeito à manutenção, como aplicação de patches e atualizações.

Embora os contentores sejam portáteis, estão limitados ao sistema operativo para o qual estão definidos. Por exemplo, um contentor para Linux não pode ser executado no Windows e vice-versa.

Porquê Contentores

Agilidade

Ao criarem e empacotarem as aplicações em contentores e ao fornecê-las para TI para serem executadas numa plataforma padronizada, os programadores conseguem reduzir o esforço global da implementação de aplicações e simplificar o ciclo de desenvolvimento e teste. Isto também aumenta a colaboração e a eficiência entre as equipas de desenvolvimento e operações para enviarem aplicações mais rapidamente.

Portabilidade

Os contentores fornecem um formato padronizado para empacotamento e manutenção de todos os componentes necessários para executar a aplicação desejada. Isto resolve o problema típico de "Funciona no meu computador" e permite a portabilidade entre plataformas de SO e entre nuvens. Sempre que um contentor é implementado em qualquer local, é executado num ambiente consistente que permanece inalterado de uma implementação para outra. Dispõe agora de um formato consistente, desde o computador de desenvolvimento à produção.

Rápida escalabilidade

Uma vez que os contentores não têm o overhead típico das VMs, incluindo instâncias de SO separadas, é possível suportar muitos mais contentores na mesma infraestrutura. A natureza leve dos contentores significa que podem ser iniciados e parados rapidamente, o que permite desbloquear cenários de aumento e redução verticais.

Casos de Utilização

Aplicações nativas da nuvem

As aplicações nativas da nuvem dependem de contentores para um modelo operacional comum nos ambientes, incluindo público, privado e híbrido. O baixo overhead e a alta densidade dos contentores permitem que muitos deles sejam alojados na mesma máquina virtual e torna-os ideais para fornecimento de aplicações nativas da nuvem.

Lift-and-shift

Uma organização pode obter benefícios significativos ao migrar para a nuvem, mas pode não querer reescrever uma aplicação existente. Com contentores, pode potencialmente migrar as suas aplicações para a nuvem sem alterar qualquer código.

Lotes

O processamento em lotes refere-se a atividades que podem ser realizadas sem intervenção humana ou consoante a disponibilidade dos recursos. Os exemplos incluem gerar relatórios, redimensionar imagens e converter ficheiros de um formato para outro. Os contentores proporcionam uma forma fácil de gerir tarefas de lote sem ter de gerir um ambiente e dependências. É possível utilizar opções de computação dinâmica, como o Azure Container Instances (ACI), para ingerir eficientemente dados de origem, processá-los e colocá-los num arquivo durável, como o Armazenamento de Blobs do Azure. A utilização de uma abordagem deste tipo em vez de máquinas virtuais aprovisionadas de forma estática pode alcançar poupanças significativas através da faturação ao segundo.

Aprendizagem automática

A aprendizagem automática aplica algoritmos aos dados e faz previsões com base nos padrões encontrados nos dados. Os contentores podem tornar as aplicações de aprendizagem automática autónomas e facilmente dimensionáveis em qualquer ambiente.

Voltar aos separadores

Além dos contentores

Para maximizar os benefícios dos contentores, considere soluções completas, incluindo ferramentas e serviços otimizados para contentores que ajudem a alcançar agilidade, segurança e dimensionamento.

Orquestração

A execução de contentores em escala requer orquestração e gestão de aplicações distribuídas e contentorizadas através de uma plataforma de orquestração, como o Kubernetes.

Segurança

Os contentores requerem uma abordagem em camadas, desde a imagem de contentor ao isolamento do cluster. A configuração destas proteções é mais adequada para os seus pipelines CI/CD.

Contentores sem servidor

Pode aumentar ainda mais a agilidade com contentores a pedido. Utilize tecnologias de contentores sem servidor para executar facilmente contentores sem ter de gerir servidores e fazer uma rajada a partir dos seus clusters do Kubernetes quando o tráfego surgir em picos.

Azure DevOps

DevOps

Os contentores permitem aos programadores partilhar facilmente software e dependências em ambientes de TI e produção. Quando combinados com práticas de DevOps, pode enviar código de forma eficaz mais rapidamente e reduzir os ciclos de desenvolvimento de software.

Estamos a postos quando quiser – experimente os contentores e o Kubernetes gratuitamente com o Azure 
Começar gratuitamente