Provavelmente, você já ouviu falar sobre containers, não aqueles transportados por navios cargueiros, mas os utilizados em larga escala no desenvolvimento de testes e principalmente no ambiente de produção de softwares.
A tecnologia de containers é uma tendência de otimização para muitas empresas que desejam se tornar mais competitivas no mercado. Porém, construir uma infraestrutura de containers confiável, eficiente e de fácil gerenciamento pode ser complicado e para isso as empresas recorrem aos provedores de infraestrutura em nuvem pública.
Nesse post exploraremos os recursos de infraestrutura disponíveis para execução de containers, bem como seus diferenciais na AWS e Azure.
O que é container?
É um método de virtualização em nível de sistema operacional para implantar e executar aplicativos eliminando a necessidade de iniciar uma VM (Virtual Machine) inteira para cada aplicativo. Em vez disso, utiliza-se vários sistemas isolados, chamados containers que são executados em um único host de controle e acessam um único kernel do sistema operacional.
Os containers permitem empacotar o aplicativo, suas configurações e dependências, oferecendo benefícios como, consistência na arquitetura, eficiência operacional e melhorias na produtividade dos desenvolvedores. Na prática, a execução de containers permite criar aplicações e serviços escaláveis e ainda aproveitar as vantagens da computação em nuvem como elasticidade, alta disponibilidade e segurança.
Principais serviços de containers dos provedores de nuvem: AWS e Azure
Cada ferramenta possui benefícios e limitações que devem ser avaliadas no momento da escolha do serviço, principalmente mediante ao cenário do negócio. Pensando nisso listamos abaixo as principais características dos serviços de containers oferecidos por AWS e Azure:
-
AWS
A AWS oferece três tipos de serviços para containers: ECS, EKS e Fargate.
O ECS (Elastic Container Service) é um serviço de gerenciamento de containers dimensionável que facilita a execução, interrupção e gerenciamento de containers Docker em um cluster.
O EKS (Elastic Kubernetes Service) é um serviço de Kubernetes gerenciado que elimina a necessidade de instalar, operar e manter o próprio serviço de Kubernetes. Os aplicativos executados no EKS são totalmente compatíveis com os aplicativos de qualquer ambiente Kubernetes padrão, isso significa que é possível migrar o aplicativo para o EKS sem nenhuma modificação no código.
Quanto ao custo, a AWS anunciou no dia 21 de janeiro de 2020 uma redução de 50% no preço do EKS para US $ 0,10 por hora para cada cluster Kubernetes executado.
Por fim mas não menos importante, o AWS Fargate, mecanismo de computação serverless para containers que funciona para ECS e EKS. É um serviço que auxilia os desenvolvedores, pois, uma vez que empacotam os aplicativos e estabelecem alguns critérios básicos, podem executar o aplicativo sem mais preocupações com infraestrutura. Depois de provisionado, o AWS Fargate aumentará ou diminuirá os recursos caso seja necessário. O valor cobrado é apenas pelo tempo de execução, assim como o serviço Lambda.
No último Re:Invent a AWS anunciou uma nova funcionalidade que combina esses dois serviços: Amazon EKS no AWS Fargate. Essa combinação simplifica a execução de aplicativos baseados no Kubernetes e elimina a necessidade de provisionar e gerenciar a infraestrutura para pods.
Vale destacar que o Saving Plans se aplica também aos clusters do ECS, EKS e Fargate. Para obter mais detalhes sobre este modelo de economia, clique aqui e acesse nosso post.
-
Azure
O Azure oferece serviços semelhantes ao ECS e EKS da AWS, chamados de Azure Service Fabric e AKS respectivamente.
O Service Fabric é uma plataforma de sistemas distribuídos que facilita empacotar, implantar e gerenciar microsserviços e containers escalonáveis e confiáveis. Oferece suporte para containers Windows e Linux.
O AKS (Azure Kubernetes Service) é um serviço de gerenciamento de Kubernetes, que facilita a implantação e gerenciamento dos aplicativos em container sem necessariamente ter experiência em orquestração. O AKS é gratuito ou seja, o valor pago é apenas relacionado aos recursos da VM que usa no Azure.
Gerencie os recursos disponíveis
A utilização de containers pode ser bastante vantajosa para muitas empresas pois traz uma série de benefícios como segurança, otimização de processos e redução de custos. Em contrapartida, é necessário utilizar os recursos de gerenciamento disponíveis corretamente para que os processos de desenvolvimento de softwares sejam executados em menor tempo e maior eficiência.
Visto isso, se a nuvem estiver sendo mal gerenciada, as chances da empresa pagar mais do que deveria no final do mês são grandes. Porém, resolver esse problema é simples, utilize uma plataforma de gerenciamento de nuvem como o CleanCloud Inspect para gerenciar custo na nuvem AWS.