Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dica
Esse conteúdo é um trecho do eBook, arquitetura de microsserviços do .NET para aplicativos .NET em contêineres, disponível em do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
O uso de contêineres é uma abordagem de desenvolvimento de software na qual um aplicativo ou serviço, suas dependências e sua configuração (abstraídos como arquivos de manifesto de implantação) são empacotados juntos como uma imagem de contêiner. O aplicativo em contêineres pode ser testado como uma unidade e implantado como uma instância de imagem de contêiner no SO (sistema operacional) do host.
Assim como os contêineres de transporte permitem que as mercadorias sejam transportadas por navio, trem ou caminhão, independentemente da carga dentro, os contêineres de software atuam como uma unidade padrão de implantação de software que pode conter diferentes dependências e código. Contêinerizar software desta forma permite que desenvolvedores e profissionais de TI os implantem em ambientes com pouca ou nenhuma modificação.
Os contêineres também isolam aplicativos uns dos outros em um sistema operacional compartilhado. Aplicativos em contêineres são executados em cima de um host de contêiner que, por sua vez, é executado no sistema operacional (Linux ou Windows). Os contêineres, portanto, têm um volume significativamente menor do que as imagens de VM (máquina virtual).
Cada contêiner pode executar um aplicativo Web inteiro ou um serviço, conforme mostrado na Figura 2-1. Neste exemplo, o host do Docker é um host de contêiner e App1, App2, Svc 1 e Svc 2 são aplicativos ou serviços em contêineres.
Figura 2-1. Vários contêineres em execução em um host de contêiner
Outro benefício do uso de contêineres é a escalabilidade. Você pode rapidamente escalar criando novos contêineres para tarefas de curto prazo. Do ponto de vista do aplicativo, a instanciação de uma imagem (criação de um contêiner) é semelhante à instanciação de um processo como um serviço ou um aplicativo Web. Para confiabilidade, no entanto, quando você executa várias instâncias da mesma imagem em vários servidores host, normalmente deseja que cada contêiner (instância de imagem) seja executado em um servidor host ou VM diferente em diferentes domínios de falha.
Em suma, os contêineres oferecem os benefícios de isolamento, portabilidade, agilidade, escalabilidade e controle em todo o fluxo de trabalho do ciclo de vida do aplicativo. O benefício mais importante é o isolamento do ambiente fornecido entre Desenvolvimento e Operações.