O que são contêineres como um serviço (CaaS)?

Por IBM Services

Contêineres como um serviço (CaaS) são um modelo de serviço em cloud que permite que os usuários façam upload, organizem, iniciem, interrompam, escalem e gerenciem contêineres, aplicativos e clusters. Ele possibilita esses processos usando uma virtualização baseada em contêiner, uma interface de programação de aplicativos (API) ou uma interface de portal da web. O CaaS ajuda os usuários a desenvolverem aplicativos conteinerizados escaláveis e altamente seguros em data centers locais ou em cloud. Contêineres e clusters são usados como um serviço com esse modelo e são implementados em data centers locais ou em cloud. 

Por que o CaaS é importante?

Como um modelo de ampla aplicação, o CaaS ajuda os desenvolvedores na simplificação do processo de criação de um contêiner com escalabilidade completa e de implementação de aplicativos. O modelo auxilia departamentos de TI fornecendo um serviço de implementação de contêiner ativado que tem controle de governança em um ambiente altamente seguro. O modelo CaaS ajuda as empresas na simplificação do gerenciamento de contêineres dentro de suas infraestruturas definidas por software.

Semelhante a outros serviços de computação em cloud, os usuários podem escolher e pagar somente pelos recursos do CaaS que desejam. Alguns exemplos de recursos do CaaS são instâncias de computação, recursos de planejamento e balanceamento de carga.

Na disseminação de serviços de computação em cloud, o CaaS é considerado um subconjunto de infraestrutura como um serviço (IaaS) e é encontrado entre IaaS e plataforma como um serviço (PaaS). O CaaS inclui contêineres como seu recurso básico, um contador para as máquinas virtuais (VMs) e sistemas host de hardware bare metal comumente utilizados para ambientes IaaS.

Uma qualidade essencial da tecnologia CaaS é a orquestração que automatiza as principais funções de TI. O Google Kubernetes e o Docker Swarm são dois exemplos de plataformas de orquestração do CaaS. A IBM, a Amazon Web Services (AWS) e o Google são alguns exemplos de provedores CaaS de cloud pública.

Por que os contêineres são importantes?

Os clientes corporativos de todos os mercados estão experienciando os benefícios do CaaS e da tecnologia de contêiner. Usar contêineres proporciona maior eficiência e fornece a esses clientes a capacidade de implementar rapidamente soluções inovadoras para a modernização de aplicativos e o desenvolvimento nativo em cloud com microsserviços. A conteinerização ajuda esses clientes a liberarem softwares mais rapidamente e promove a portabilidade entre ambientes híbridos e multicloud, além de reduzir os custos de infraestrutura, licenciamento de software e operacionais.  

Veja a seguir diversos benefícios para clientes que usam contêineres:

  • Portabilidade: Ao ser criado em um contêiner, um aplicativo concluído tem tudo o que é necessário para a execução, incluindo arquivos de configuração e dependências. A portabilidade permite que os usuários finais ativem aplicativos em diferentes ambientes e clouds públicas ou privadas com confiança. Essa portabilidade também concede às empresas uma grande quantia de flexibilidade, acelerando o processo de desenvolvimento e facilitando a alternância para um provedor ou ambiente em cloud diferente.
  • Altamente eficiente e econômico: Como os contêineres não precisam de um sistema operacional distinto, requerem menos recursos do que uma VM. Um contêiner, muitas vezes, requer somente algumas dúzias de megabytes para ser executado, permitindo a execução de diversos contêineres em um único servidor que, de outra forma, seria usado para executar uma VM. Essa eficiência ajuda a reduzir os custos com data center. Os contêineres também podem reduzir os custos de bare metal, pois têm um nível de utilização mais alto com relação ao hardware subjacente e requerem menos hardwares.

Os contêineres não interagem e são relativamente isolados de outros contêineres nos mesmos servidores, embora compartilhem os mesmos recursos. Se um aplicativo trava para um contêiner, outros contêineres podem continuar a usá-lo sem experimentar problemas técnicos.

  • Segurança: O isolamento que os contêineres têm um do outro também funciona como um recurso de segurança para a minimização de riscos. Se um aplicativo for comprometido, outros contêineres não serão afetados negativamente.

Além disso, como os contêineres executam processos de aplicativos em isolamento do sistema operacional e não precisam de softwares específicos para executar aplicativos, é mais simples gerenciar seu sistema host. Esse benefício permite a rápida ativação de atualizações e correções de segurança.     

  • Velocidade: Um contêiner é iniciado, criado, replicado ou destruído em segundos, pois não precisa de um manual do sistema operacional. Essa vantagem também possibilita um rápido processo de desenvolvimento, agiliza o tempo de comercialização e a velocidade operacional e simplifica, agiliza e facilita a liberação de novas versões ou softwares. Essa velocidade também ajuda com a experiência do cliente, permitindo que empresas e desenvolvedores respondam rapidamente a erros e incorporem novos recursos assim que os clientes os mencionarem.
  • Ajuste de escala: Os contêineres têm a capacidade de ajustar a escala horizontalmente, permitindo que os usuários finais incorporem diversos contêineres idênticos no mesmo cluster para a escalabilidade horizontal. Ao usar o ajuste de escala inteligente e executar somente os contêineres necessários, quando necessário, é possível reduzir drasticamente os custos e impulsionar seu retorno sobre investimento.  
  • Desenvolvimento simplificado: Ter um pipeline de desenvolvimento eficaz e eficiente é uma vantagem da infraestrutura baseada em contêiner. Como os contêineres permitem que os aplicativos funcionem e sejam executados como se fossem criados localmente, as inconsistências de ambiente são eliminadas. Essa eliminação favorece os testes e as depurações, tornando-os menos complicados e demorados. Esse recurso também funciona para a atualização de aplicativos, exigindo somente que o desenvolvedor modifique o arquivo de configuração, gere novos contêineres e, em seguida, exclua os anteriores, sendo um processo extremamente rápido.  

Serviços de contêiner gerenciado e soluções de contêiner em cloud

Clientes corporativos que buscam favorecer seus negócios usando contêineres devem escolher entre duas opções:

  1. Uma plataforma CaaS e uma implementação em cloud pública ou uma plataforma de infraestrutura local

  2. Um serviço de contêiner gerenciado fornecido pelo Google, pela Amazon ou pelo Microsoft Azure, que são os três principais provedores de cloud pública adotados

Nenhuma dessas duas opções, no entanto, necessariamente impõe um bloqueio a uma empresa. Desde que a Cloud Native Computing Foundation (CNCF) foi criada, a partir de uma parceria entre a Google e a Linux Foundation, e lançou o programa de certificação do Kubernetes, ela garantiu que todos os fornecedores mantivessem o padrão para a portabilidade de contêiner e a conformidade entre plataformas.   

Antes de um cliente corporativo escolher entre uma plataforma de contêiner gerenciado ou uma implementação local, é necessário responder às seguintes perguntas:

  • Seu contêiner requer uma implementação local ou pode ser implementado em uma cloud pública?
  • Seu departamento de TI tem as habilidades necessárias para desenvolver, implementar e administrar um ambiente do Kubernetes?O que é necessário para o treinamento e a retenção?
  • Qual é a plataforma de cloud pública necessária para a implementação de contêineres?Alguns exemplos são o Google, a AWS ou o Azure.
  • O uso de um plano de controle de diversos locatários e compartilhado do Kubernetes tem implicações?

Se sua empresa ainda estiver experimentando contêineres, os serviços de contêiner gerenciado podem ser sua melhor escolha. Os serviços de contêiner gerenciado são um bom ponto de partida e não requerem um gerenciador de cluster, o fornecimento de recursos ou uma plataforma mínima implementada. Um grande benefício dos serviços de contêiner gerenciado é o fato de serem ótimos para testes iniciais de implementação de contêiner e, em seguida, para a customização do desenvolvimento e dos processos operacionais.

Se sua empresa já tiver uma implementação de contêiner mais estabelecida no Kubernetes, na AWS ou em uma plataforma local, será possível optar por sua própria solução CaaS. Fornecer seu próprio CaaS pode oferecer a sua empresa uma plataforma que têm muito mais recursos, com os modelos e os serviços necessários para um sistema de produção.

A ascensão do Kubernetes

Da mesma forma que a guerra do Betamax versus o VHS, a guerra para o domínio da orquestração de contêineres foi prevista no quarto trimestre de 2017 e foi concluída no segundo trimestre de 2018. O Google Kubernetes Engine, agora conhecido simplesmente como Kubernetes, foi vitorioso. Com um vencedor claro, os provedores e usuários redobraram seus esforços e se concentraram em produzir e amadurecer suas implementações para o Kubernetes.

A liberação de um serviço Kubernetes gerenciado e soluções de contêiner híbrido ajudaram a facilitar a adoção do Kubernetes. Como o GKE foi um dos pioneiros no conceito de serviços de contêiner gerenciado, o Kubernetes sempre manteve uma demanda maior do que os serviços de contêiner de seus concorrentes, a AWS e o Azure. As liberações de meados de 2018 do Amazon Elastic Container Service for Kubernetes (Amazon EKS) e do Azure Kubernetes Service (AKS) estabeleceram o domínio do GKE.

Assista ao vídeo

Kubernetes e a orquestração de contêiner

O Kubernetes (K8s) é um sistema de orquestração de contêiner para automatizar a implementação, o gerenciamento e o ajuste de escala dos aplicativos. Originalmente desenvolvido pela Google e liberado como software livre em 2014, o Kubernetes é mantido pela CNCF. O website do Kubernetes o descreve como uma "plataforma de software livre móvel e extensível para o gerenciamento de cargas de trabalho e serviços conteinerizados que facilita tanto a configuração declarativa quanto a automação".

As três plataformas primárias que o Kubernetes pode substituir incluem:

  • Contêineres
  • Microsserviços
  • Cloud móvel

Como um ambiente de gerenciamento centralizado em contêineres, o Kubernetes coordena a computação, a rede e a infraestrutura de armazenamento de cargas de trabalho do usuário. O Kubernetes inclui a mesma facilidade de uso que o PaaS, além da maleabilidade do IaaS e da portabilidade entre provedores de infraestrutura.  

Jornada aberta do Kubernetes, da IBM e da Red Hat

Com uma colaboração que se estendeu por duas décadas, a IBM e a Red Hat permanecem juntas em uma jornada de exploração. Como adepta inicial do Linux, a IBM trabalhou em conjunto com a Red Hat e ajudou a desenvolver e suportar o Linux de classificação corporativa. Mais recentemente, essa colaboração ajudou a trazer o Kubernetes e soluções de cloud híbrida para uma matriz ampla de clientes. O Kubernetes também é uma das bases da estratégia combinada de cloud híbrida da IBM e da Red Hat.

Essas inovações se tornaram as principais tecnologias dos negócios de cloud híbrida de USD 19 bilhões da IBM. Após a conclusão da aquisição no final de 2019, conforme o esperado, a Red Hat será o membro mais recente e a unidade distinta para a equipe de cloud híbrida da IBM.  

Kubernetes, IBM e Hertz

A Hertz Corporation, conhecida simplesmente como Hertz, celebrou seu aniversário de cem anos em 2018. Enfrentando problemas com tecnologias anteriores, a empresa precisava de ajuda para simplificar sua arquitetura e sua tecnologia de negócios. A Hertz uniu forças com o IBM Cloud Garage™ e desenvolveu uma arquitetura do Kubernetes que ajudou a empresa a criar e implementar aplicativos baseados em microsserviços no IBM Cloud™ Private e no IBM Cloud Container Service.

Ao colaborar com a IBM, a Hertz modernizou seus principais sistemas de canais digitais, reservas, taxas e outros, utilizando arquiteturas flexíveis de contêiner e microsserviços. Com seu alcance global abrangente, a Hertz garante que seus aplicativos estejam altamente disponíveis e em escala corporativa e deve receber 1,5 bilhões de acessos e 30 milhões de atualizações diariamente uma vez que os aplicativos estiverem em produção.

Kubernetes e o software livre

O software livre continua a expandir sua influência, estabelecendo ainda mais sua importância no mundo da tecnologia da informação. O artigo do IBM Services™ sobre soluções de suporte para seu ambiente de software livre observou que "96% dos aplicativos comerciais têm algum tipo de componente de software livre" (PDF, 3,9 MB).1

Arturo Suarez tem bastante influência no mundo do software livre. Ele criou a primeira distribuição comercial da plataforma de software livre gratuita para a computação em cloud, o OpenStack. Em uma entrevista de 2019 para a IT Biz Advisor, Suarez descreve sua experiência com o Kubernetes dizendo que o "Kubernetes [está] vencendo a corrida da orquestração de contêiner" e que o "Kubernetes evolui ainda mais rápido do que o OpenStack, com liberações a cada três meses, tendo um melhor modelo de governança e uma melhor curva de adoção".2

IBM Cloud Kubernetes Service

Em meados de maio de 2018 e seguindo o investimento estratégico da IBM no Kubernetes, o IBM Cloud Container Service mudou sua marca para IBM Cloud Kubernetes Service, um serviço que estava disponível desde maio de 2017.

Como um serviço de contêiner gerenciado para entrega rápida de aplicativos, o IBM Cloud Kubernetes Service pode se integrar ao IBM Watson®, ao blockchain e a outros serviços avançados. Os diversos recursos do IBM Cloud Kubernetes Service incluem:

  • Planejamento inteligente
  • Capacidade de recuperação automática
  • Ajuste de escala horizontal
  • Descoberta de serviço
  • Balanceamento de carga
  • Lançamentos e desativações automatizados
  • Gerenciamento de segredo e configuração

Com foco em recursos avançados para o gerenciamento fácil e simples de cluster e com a capacidade de desenvolver seu próprio cluster, o IBM Cloud Kubernetes Service também oferece políticas de segurança e isolamento de contêiner, além de ferramentas operacionais integradas para a consistência da implementação.

Atualmente, o IBM Cloud Kubernetes Service tem mais de 10 mil clusters de produção pagos gerenciados e é usado por clientes como a Think Research, a Eurobits Technologies e a The Weather Company, uma empresa IBM. As empresas usam o IBM Cloud Kubernetes Service para executar as tarefas a seguir:

  • Criar clusters.
  • Implementar um aplicativo da web escalável no Kubernetes.
  • Analisar logs e monitorar o funcionamento de aplicativos do Kubernetes.
  • Fornecer implementação contínua para o Kubernetes.

Para obter informações adicionais sobre como os serviços de contêineres, os serviços em cloud e o Kubernetes podem ajudar seus negócios, agende uma conversa individual com um especialista IBM gratuitamente. Também é possível se inscrever no IBM Cloud Kubernetes Service para criar e desenvolver gratuitamente no ambiente do IBM Cloud. A IBM está aqui para ajudá-lo a desenvolver seus negócios com confiança.

Aprofunde-se em contêineres e no Kubernetes

Fontes

  1. IBM Services. “Suporte soluções para seu ambiente de software livre“, IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 MB)
  2. Camilla Sharpe. “Q&A: Como a tecnologia de software livre está mudando o cenário de TI“, IBM, 16 de maio de 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape