Design para soluções de Instâncias de Contêiner do Azure

Concluído

As máquinas virtuais são uma excelente maneira de reduzir custos em comparação com os investimentos necessários para hardware físico. No entanto, cada máquina virtual ainda está limitada a um único sistema operacional. Se quiser executar múltiplas instâncias de uma aplicação numa única máquina anfitriã, os contentores são uma excelente opção.

As Instâncias de Contêiner do Azure são uma maneira rápida e simples de executar um contêiner no Azure. Os cenários para usar a Instância de Contêiner do Azure incluem aplicativos simples, automação de tarefas e trabalhos de compilação.

Coisas a saber sobre as Instâncias de Contêiner do Azure

As Instâncias de Contêiner do Azure oferecem muitos benefícios, incluindo inicialização rápida, cobrança por segundo e armazenamento persistente. Esses benefícios tornam as Instâncias de Contêiner do Azure uma ótima solução de computação para dar suporte a novas cargas de trabalho e migrar dados usando o padrão lift and shift.

Flowchart that shows the decision tree for selecting Azure Container Instances to build new workloads and to support lift and shift migrations.

  • As Instâncias de Contêiner do Azure permitem a inicialização rápida. Você pode iniciar contêineres em segundos para acesso imediato aos aplicativos.

  • As Instâncias de Contêiner do Azure implementam a cobrança por segundo. Você incorre em custos apenas enquanto seu contêiner está em execução.

  • As Instâncias de Contêiner do Azure dão suporte a tamanhos personalizados para seus contêineres. Você pode especificar valores exatos para núcleos de CPU e memória e evitar custos para recursos não utilizados.

  • As instâncias de contêiner oferecem armazenamento persistente. Os compartilhamentos de Arquivos do Azure podem ser montados diretamente em um contêiner para recuperar e persistir o estado.

  • As instâncias de contêiner podem ser usadas com Linux e Windows. agende contentores do Windows e do Linux com a mesma API.

Grupos de contentores

O recurso de nível superior nas Instâncias de Contêiner do Azure é o grupo de contêineres. Um grupo de contêineres é uma coleção de contêineres que são agendados na mesma máquina host. Os contêineres em um grupo de contêineres compartilham um ciclo de vida, recursos, rede local e volumes de armazenamento.

Diagram that shows container groups with access from DNS on port 80 and Azure files on port 1433.

Os grupos de vários contêineres são úteis quando você deseja dividir uma única tarefa funcional em várias imagens de contêiner. Essas imagens podem ser entregues por equipes diferentes e ter requisitos de recursos separados. Alguns cenários de exemplo incluem:

  • Um contêiner que serve um aplicativo Web e um contêiner que extrai o conteúdo mais recente do controle do código-fonte.
  • Um contêiner de aplicativo e um contêiner de log. O contêiner de registro em log coleta os logs e as métricas saídas pelo aplicativo principal e os grava no armazenamento de longo prazo.
  • Um contêiner de aplicativo e um contêiner de monitoramento. O contêiner de monitoramento periodicamente faz uma solicitação ao aplicativo para garantir que ele esteja sendo executado e respondendo corretamente, e gera alertas conforme necessário.
  • Um contêiner front-end e um contêiner back-end. O frontend pode servir um aplicativo Web com o backend executando um serviço para recuperar dados.

Coisas a considerar ao usar instâncias de contêiner do Azure

Quando você trabalha com Instâncias de Contêiner do Azure, há várias práticas de segurança recomendadas.

  • Use um registro privado. Os contentores são criados a partir de imagens que estão armazenadas num ou mais repositórios. Estes repositórios podem pertencer a um registo público ou a um registo privado. Um exemplo de um registo privado é o Docker Trusted Registry, que pode ser instalado no local ou numa cloud privada virtual. Outro exemplo é o Registro de Contêiner do Azure que pode ser usado para criar, armazenar e gerenciar imagens e artefatos de contêiner.

  • Garanta a integridade da imagem durante todo o ciclo de vida. Parte do gerenciamento da segurança durante todo o ciclo de vida do contêiner é garantir a integridade das imagens do contêiner. Imagens com vulnerabilidades, mesmo menores, não devem ter permissão para serem executadas em um ambiente de produção. Mantenha o número de imagens de produção pequeno para garantir que elas possam ser gerenciadas de forma eficaz.

  • Monitore a atividade dos recursos do contêiner. Monitore sua atividade de recursos, como arquivos, rede e outros recursos que seus contêineres acessam. O monitoramento da atividade e do consumo de recursos é útil tanto para o monitoramento de desempenho quanto como medida de segurança.

Comparar instâncias de contêiner do Azure com máquinas virtuais do Azure

A tabela a seguir compara como recursos importantes são suportados em Instâncias de Contêiner do Azure e Máquinas Virtuais do Azure. Ao analisar os recursos a seguir, considere quais recursos e suporte são necessários para a solução de computação de infraestrutura da Tailwind Traders.

Comparar Azure Container Instances Máquinas Virtuais do Azure
Isolamento As instâncias de contêiner normalmente fornecem isolamento leve do host e de outros contêineres, mas não fornecem um limite de segurança tão forte quanto uma máquina virtual. Uma máquina virtual fornece isolamento completo do sistema operacional host e de outras máquinas virtuais. O isolamento é útil quando um forte limite de segurança é crítico, como hospedar aplicativos de empresas concorrentes no mesmo servidor ou cluster.
Sistema Operativo As Instâncias de Contêiner executam a parte do modo de usuário de um sistema operacional e podem ser adaptadas para conter apenas os serviços necessários para seu aplicativo. Essa configuração resulta em menos recursos do sistema sendo utilizados. Cada máquina virtual executa um sistema operacional completo. As Máquinas Virtuais do Azure normalmente exigem mais recursos do sistema do que as Instâncias de Contêiner, como CPU, memória e armazenamento.
Implementação As instâncias de contêiner implantam contêineres individuais usando o Docker por meio da linha de comando. Vários contêineres são implantados usando um orquestrador, como o Serviço Kubernetes do Azure. Você pode implantar máquinas virtuais individuais usando o Windows Admin Center ou o Gerenciador do Hyper-V. Várias máquinas virtuais podem ser implantadas usando o PowerShell ou o System Center Virtual Machine Manager.
Armazenamento persistente As Instâncias de Contêiner usam Discos do Azure para armazenamento local para um único nó ou Arquivos do Azure (compartilhamentos SMB) para armazenamento compartilhado por vários nós ou servidores. Com as Máquinas Virtuais do Azure, você pode usar um VHD (disco rígido virtual) para armazenamento local para uma única máquina virtual ou um compartilhamento de arquivos SMB para armazenamento compartilhado por vários servidores.
Tolerância a falhas Se um nó de cluster falhar nas Instâncias de Contêiner do Azure, todos os contêineres em execução nele serão rapidamente recriados pelo orquestrador em outro nó de cluster. Uma máquina virtual pode fazer failover para outro servidor em um cluster com o sistema operacional da máquina virtual sendo reiniciado no novo servidor.