Domingo, 19 de Agosto de 2018
Home Destaque

Azure Container Instances: computação sem servidor para aplicativos em contêineres

26/04/2018 104 0
Azure Container Instances: computação sem servidor para aplicativos em contêineres

O novo serviço Azure Container Instances da Microsoft permite implantar aplicativos em contêineres através da computação sem servidor (Serverless) e sem precisar se preocupar com máquinas virtuais nas quais eles são executados. As Instâncias de Contêiner do Azure – ACI ou Azure Container Instances, que permitem a criação de contêineres do Linux e do Windows agora estão geralmente disponíveis (GA).

A ACI (Azure Container Instances) traz os princípios sem servidor (Serverless) para aplicativos em contêiner. A computação sem servidor, pioneira no Lambda da Amazon e encontrada no Azure como Functions, foi projetada para adiar todas as decisões de gerenciamento do sistema (implantação e correção de máquinas físicas e virtuais) e de escala com base em carga para o provedor da plataforma. Os desenvolvedores apenas escrevem seu código de aplicativo; eles não precisam mais se preocupar em criar máquinas virtuais, atualizar sistemas operacionais, passar para um novo hardware ou qualquer outra coisa.

Implantações de contêiner tradicionais exigem que as máquinas virtuais sejam executadas. Com os contêineres Serverless (sem servidor) do ACI – Azure Container Instances, o gerenciamento dessas máquinas virtuais desaparece. Os contêineres ACI podem ser implantados usando a interface do Azure da Microsoft ou com o Kubernetes, sem a necessidade de primeiro criar nenhuma VM. Os contêineres são cobrados de acordo com quanto tempo e memória do processador eles usam por segundo: $ 0,000012 por segundo do processador, $ 0,000004 por GB de segundo de memória.

Normalmente, vários contêineres são executados em uma única máquina virtual (VM). Isso pode torná-las indesejáveis para cargas de trabalho com vários locatários, porque o isolamento entre contêineres em uma máquina virtual é imperfeito. Os contêineres dentro da ACI são incomuns, já que estão isolados uns dos outros usando um hipervisor (tornando-os semelhantes aos Contêineres Hyper-V no Windows). O uso de um hipervisor fornece uma separação muito mais forte entre os contêineres.

Quando o ACI estava em pré-visualização, o suporte do Kubernetes era fornecido com uma ponte experimental entre o Kubernetes e a interface ACI. Isso se transformou em um projeto mais amplo chamado Virtual Kubelet, que permite aos Kubernetes gerenciar contêineres não apenas na ACI, mas também em outras plataformas de contêiner sem servidor, como Hyper.sh e Fargate, da Amazon.

O Azure Container Instances foi anunciado pela primeira vez em julho do ano passado,juntamente com a decisão da Microsoft de ingressar na Cloud Native Computing Foundation e, após alguns comentários de clientes, está pronto para ser testado por todos. A ACI permite que os clientes do Azure desfrutem de dois dos benefícios da computação “sem servidor” – Serveless – infraestrutura invisível e faturamento por segundo – para seus aplicativos em contêiner, disse Gabe Monroy, gerente de produto principal para contêineres no Azure.

“Não é sempre que vemos a introdução de uma nova computação primitiva na nuvem pública”, disse Monroy. Ele está se referindo ao fato de o ACI ser independente da infraestrutura de hardware subjacente, pois os clientes não precisam especificar onde gostariam de executar seus contêineres e criar uma máquina virtual para começar.

Houve um aumento no interesse por contêineres nos últimos anos, em parte porque eles permitem que as empresas obtenham muito mais desempenho do que um investimento existente em infraestrutura própria. Mas, até recentemente, se você quisesse executar contêineres na nuvem pública, ainda teria que designar a máquina virtual na qual esses contêineres seriam executados e as máquinas virtuais podem ficar lentas e faturadas em incrementos por hora, independentemente de você precisar da hora completa ou não.

O ACI permite colocar aplicativos em funcionamento em dez a 20 segundos, porque você não precisa inicializar uma máquina virtual, disse Monroy. E uma vez que o aplicativo tenha terminado, ele pode ser encerrado com a mesma rapidez, ou seja, você só paga à Microsoft pelo tempo em que o aplicativo estava ativo. Isso o torna ideal para cargas de trabalho “explodidas”, como quando uma celebridade do Instagram publica um link para seu aplicativo ou serviço e a multidão começa a entrar, ou a Netflix quando lança uma nova série ou temporada, por exemplo.

Isso não é “sem servidor” no verdadeiro sentido, tanto quanto qualquer palavra-chave tecnológica da empresa tem um significado real. Houve uma onda igual, se não mais forte, de interesse na computação sem servidor no último ano, que combina faturamento por segundo e infraestrutura invisível, mas também permite aos desenvolvedores escrever aplicativos de uma maneira muito diferente, voltada para eventos e funções.

Com o ACI, você ainda escreve aplicativos para contêineres da mesma maneira como se os escrevesse para qualquer serviço de contêiner, mas, você pode pular a etapa em que provisiona o hardware para seus aplicativos. Isso é importante porque seu aplicativo pode ter problemas se você não atribuir serviços de hardware suficientes em meio a uma demanda inesperada, ou poderá gastar seu dinheiro se provisionar muito hardware e o uso for baixo.

O Azure Container Instances é semelhante à Fargate da Amazon Web Services, anunciada no ano passado na AWS re: Invent 2017 e disponível em sua região leste dos EUA. O Fargate exige que você configure um cluster do Amazon ECS para ser instalado e executado, o que é uma etapa adicional que requer recursos de hardware dedicados, mas, remove uma camada de complexidade do processo geral de execução de contêineres na nuvem.

A versão da Microsoft também suporta o Kubernetes através do kubelet virtual, anunciado na Kubecon, em dezembro passado, em Austin, Texas, enquanto a AWS planeja trazer seu serviço Kubernetes gerenciado juntamente com o Fargate em 2018.

Resta uma discussão mais ampla sobre a melhor maneira de testar suas estratégias de desenvolvimento de software em 2018, supondo que isso seja possível.

Os contêineres prometem portabilidade, mas, gerenciá-los em escala ainda requer muita habilidade. A computação sem servidor (Serverless), que significa funções como serviço, é uma maneira totalmente nova e leve de pensar sobre o desenvolvimento de software em escala que também poderia prendê-lo ao seu provedor de nuvem em um grau que a IBM e a Oracle reconheceriam no passado.

Se você já investiu em contêineres, ferramentas como Azure Container Instances (ACI) e Fargate fazem muito sentido. Mas, se você está apenas começando a contemplar os contêineres, há uma crescente ideia de que você pode ignorar totalmente os contêineres e investir agora em computação sem servidor. Daqui a alguns anos, descobriremos quem estava certo.

Outro fator importante é prestar atenção nas palavras de Gabe Monroy, gerente de produto principal para contêineres no Azure:

“Não é sempre que vemos a introdução de uma nova computação primitiva na nuvem pública”.

Uau… esta é uma declaração forte e inspiradora, aponta para vários cenários de uso do Azure Container Instances (ACI), como por exemplo, veja uma demonstração do ACI rodando um jogo ao vivo direto do servidor:

Fonte: Arstechnica e GeekWire

Compartilhe:

Comentários: