Container as a Service (CaaS) é o serviço que oferece pla­ta­for­mas de contêiner como soluções completas, hos­pe­da­das em nuvem. Ex­pli­ca­mos o conceito e apre­sen­ta­mos quatro das pla­ta­for­mas de CaaS mais populares do mercado. Além disso, mostramos como empresas podem se be­ne­fi­ciar de serviços de contêiner baseados em nuvem.

O que é CaaS?

CaaS, abre­vi­a­ção de Container as a Service, é o modelo de negócios no qual pro­ve­do­res de com­pu­ta­ção em nuvem oferecem pla­ta­for­mas para vir­tu­a­li­za­ção baseada em con­têi­ne­res como serviço on-line escalável. Isso permite que empresas utilizem serviços de contêiner sem precisar im­ple­men­tar a in­fra­es­tru­tura ne­ces­sá­ria. O termo é um conceito de marketing, inspirado em outros modelos de serviços em nuvem, como In­fras­truc­ture as a Service (IaaS), Platform as a Service (PaaS) e Software as a Service (SaaS).

O que são serviços de contêiner?

Um serviço de contêiner é oferecido por um provedor de com­pu­ta­ção em nuvem e permite que usuários de­sen­vol­vam, testem, executem ou dis­tri­buam software em con­têi­ne­res de apli­ca­ti­vos em diversas in­fra­es­tru­tu­ras de TI. O conceito vem do universo Linux e utiliza a vir­tu­a­li­za­ção no nível do sistema ope­ra­ci­o­nal. Com isso, apli­ca­ti­vos são exe­cu­ta­dos como ins­tân­cias isoladas, incluindo todas as de­pen­dên­cias ne­ces­sá­rias, como bi­bli­o­te­cas e arquivos de con­fi­gu­ra­ção. Essa abordagem a execução si­mul­tâ­nea de várias apli­ca­ções com re­qui­si­tos di­fe­ren­tes em um único sistema ope­ra­ci­o­nal, além de facilitar a im­plan­ta­ção em sistemas diversos.

Serviços de CaaS nor­mal­mente oferecem um ambiente completo de contêiner, incluindo fer­ra­men­tas de or­ques­tra­ção, catálogo de imagens (registro), software de ge­ren­ci­a­mento de clusters, um conjunto de fer­ra­men­tas para de­sen­vol­ve­do­res e APIs.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

Di­fe­ren­ças entre CaaS e outros serviços em nuvem

Desde meados dos anos 2000, a com­pu­ta­ção em nuvem tem sido uma al­ter­na­tiva para empresas e usuários do­més­ti­cos que desejam evitar a im­ple­men­ta­ção de recursos de TI (on-premises). Além do CaaS, três modelos de serviço em nuvem são es­pe­ci­al­mente populares:

  • IaaS: In­fras­truc­ture as a Service fornece recursos virtuais de hardware, como poder de pro­ces­sa­mento, ar­ma­ze­na­mento e ca­pa­ci­dade de rede. Os pro­ve­do­res de IaaS dis­po­ni­bi­li­zam essas es­tru­tu­ras básicas de in­fra­es­tru­tura de TI na forma de máquinas virtuais (VM) ou redes locais virtuais (VLANs).
  • PaaS: A camada in­ter­me­diá­ria do modelo de com­pu­ta­ção em nuvem é chamada de Platform as a Service. Com PaaS, os pro­ve­do­res de nuvem oferecem pla­ta­for­mas de pro­gra­ma­ção e ambientes de de­sen­vol­vi­mento pela internet, baseando-se na in­fra­es­tru­tura de IaaS.
  • SaaS: A camada mais alta do modelo de com­pu­ta­ção em nuvem é uma camada puramente de aplicação. O termo Software as a Service refere-se à dis­po­ni­bi­li­za­ção de softwares pela internet. Nesse modelo, os programas não são exe­cu­ta­dos no hardware do cliente, mas nos ser­vi­do­res do provedor.
Imagem: Representação dos modelos de serviço em nuvem IaaS, PaaS e SaaS
Os modelos de serviço em nuvem IaaS, PaaS e SaaS em com­pa­ra­ção com a provisão de recursos local (on-premises)

Nesta divisão clássica dos três modelos es­ta­be­le­ci­dos de com­pu­ta­ção em nuvem, o CaaS pode ser po­si­ci­o­nado entre IaaS e PaaS. No entanto, o Container as a Service se di­fe­ren­cia desses modelos de serviço por adotar uma abordagem de vir­tu­a­li­za­ção fun­da­men­tal­mente distinta: a tec­no­lo­gia de con­têi­ne­res.

Como funciona o CaaS?

A base do Container as a Service é um cluster de com­pu­ta­do­res, dis­po­ni­bi­li­zado por meio da nuvem e alugado sob demanda pelos usuários para fazer upload, criar, gerenciar cen­tral­mente e executar apli­ca­ções baseadas em con­têi­ne­res na pla­ta­forma em nuvem. A interação com o ambiente de contêiner baseado na nuvem ocorre através de uma interface gráfica de usuário (GUI) ou por chamadas de API. As tec­no­lo­gias de con­têi­ne­res dis­po­ní­veis para os usuários variam de acordo com o provedor.

O núcleo de qualquer pla­ta­forma CaaS é uma fer­ra­menta de or­ques­tra­ção (também chamada de or­ques­tra­dor), que permite o ge­ren­ci­a­mento de ar­qui­te­tu­ras complexas de con­têi­ne­res. As seguintes funções são es­sen­ci­ais:

  • Dis­tri­bui­ção de con­têi­ne­res em vários hosts.
  • Agru­pa­mento de con­têi­ne­res em unidades lógicas.
  • Es­ca­la­bi­li­dade de con­têi­ne­res.
  • Ba­lan­ce­a­mento de carga (load balancing).
  • Alocação de ca­pa­ci­dade de ar­ma­ze­na­mento.
  • Interface de co­mu­ni­ca­ção entre con­têi­ne­res.
  • Des­co­berta de serviços (service discovery).

O or­ques­tra­dor utilizado em uma pla­ta­forma CaaS tem impacto direto nas fun­ci­o­na­li­da­des dis­po­ní­veis para os usuários do serviço em nuvem. Atu­al­mente, o mercado de vir­tu­a­li­za­ção baseada em con­têi­ne­res é dominado por fer­ra­men­tas como Docker Swarm, Ku­ber­ne­tes, OpenShift e Amazon Elastic Container Service (ECS).

Dica

Você pode encontrar uma descrição detalhada das fer­ra­men­tas de or­ques­tra­ção e das fer­ra­men­tas Docker mais populares em artigos es­pe­ci­a­li­za­dos do nosso Digital Guide. Lá, você também encontra uma com­pa­ra­ção completa entre OpenShift e Ku­ber­ne­tes.

Como deve ser um provedor de CaaS confiável?

Na escolha de um serviço CaaS para uso cor­po­ra­tivo, os usuários devem con­si­de­rar as seguintes questões:

  • Quais fer­ra­men­tas de or­ques­tra­ção são ofe­re­ci­das?
  • Quais formatos de arquivo para apli­ca­ções baseadas em con­têi­ne­res são su­por­ta­dos?
  • É possível operar apli­ca­ções com múltiplos con­têi­ne­res?
  • Como os clusters para a operação de con­têi­ne­res são ge­ren­ci­a­dos?
  • Quais funções de rede e ar­ma­ze­na­mento estão dis­po­ní­veis?
  • O provedor oferece um registro privado para imagens de con­têi­ne­res?
  • Qual é o nível de in­te­gra­ção do ambiente de execução de con­têi­ne­res com outros serviços em nuvem do provedor?
  • Quais modelos de cobrança são ofe­re­ci­dos?

Os melhores pro­ve­do­res de CaaS

A tec­no­lo­gia de con­têi­ne­res está em alta, e, como resultado, a oferta de serviços CaaS é ampla. Soluções de vir­tu­a­li­za­ção em nível de sistema ope­ra­ci­o­nal estão presentes no portfólio de quase todos os pro­ve­do­res de nuvem pública. Grandes players como Amazon, Microsoft, Google e IONOS, que estão entre os mais in­flu­en­tes no mercado de CaaS, ex­pan­di­ram suas pla­ta­for­mas de nuvem com soluções baseadas em Docker.

IONOS Cloud Managed Ku­ber­ne­tes

O Managed Ku­ber­ne­tes da IONOS é a pla­ta­forma ideal para apli­ca­ções em con­têi­ne­res de alto de­sem­pe­nho e alta es­ca­la­bi­li­dade. O serviço está dis­po­ní­vel di­re­ta­mente pelo painel da IONOS Cloud e combina a pla­ta­forma IaaS da IONOS com as tec­no­lo­gias de contêiner líderes de mercado, como Docker e Ku­ber­ne­tes.

Imagem: Captura de tela do IONOS Managed Kubernetes
IONOS Cloud Managed Ku­ber­ne­tes: Hos­pe­da­gem de clusters, im­plan­ta­ção e or­ques­tra­ção de con­têi­ne­res em um único pacote.

A solução CaaS da IONOS é voltada para de­sen­vol­ve­do­res e equipes de TI, per­mi­tindo a im­plan­ta­ção, ge­ren­ci­a­mento e es­ca­la­bi­li­dade de apli­ca­ções baseadas em con­têi­ne­res em clusters Ku­ber­ne­tes. O serviço inclui:

  • Nós em nuvem ge­ren­ci­a­dos com recursos dedicados de servidor.
  • Ge­ren­ci­a­mento per­so­na­li­zado de clusters.
  • Acesso total aos con­têi­ne­res de aplicação.
  • Or­ques­tra­ção per­so­na­li­zada.
  • Suporte técnico para uti­li­za­ção e criação de clusters de con­têi­ne­res no painel da nuvem pelo suporte de primeiro nível da IONOS.
  • Co­mu­ni­dade IONOS Cloud.

O suporte da IONOS cobre a con­fi­gu­ra­ção e ge­ren­ci­a­mento de clusters de con­têi­ne­res. No entanto, não oferece suporte direto para o kubectl ou o painel do Ku­ber­ne­tes. Por meio do painel da IONOS Cloud, os usuários têm acesso a várias soluções de terceiros, como Helm, GitLab ou Au­tos­ca­ler, dis­po­ní­veis como soluções de clique único. Para o registro de imagens Docker, é possível integrar o serviço on-line DockerHub.

O IONOS Cloud Managed Ku­ber­ne­tes permite a con­fi­gu­ra­ção to­tal­mente au­to­má­tica de clusters Ku­ber­ne­tes. O serviço em si é gratuito – os custos estão re­la­ci­o­na­dos apenas à in­fra­es­tru­tura da IONOS Cloud efe­ti­va­mente utilizada.

Vantagens Des­van­ta­gens
✓ Com­pa­ti­bi­li­dade total com Ku­ber­ne­tes. ✗ Sem suporte para kubectl e Ku­ber­ne­tes Dashboard.
✓ Grande variedade de soluções de terceiros pré-ins­ta­la­das.
✓ Alta por­ta­bi­li­dade.
Managed Ku­ber­ne­tes da IONOS
O jeito mais simples de gerenciar cargas de trabalho em con­têi­ne­res.

Ins­ta­la­ção de clusters Ku­ber­ne­tes to­tal­mente au­to­ma­ti­zada, vi­si­bi­li­dade máxima e controle de clusters K8s.

Amazon Elastic Container Service (ECS)

Desde abril de 2015, a Amazon oferece soluções de con­te­nei­ri­za­ção sob o nome de Amazon Elastic Container Service (ECS) dentro da pla­ta­forma de cloud computing AWS (Amazon Web Services). Assim como o serviço da IONOS, o ECS suporta ex­clu­si­va­mente con­têi­ne­res no formato Docker.

FnFvpIsBrog.jpg Para exibir esse vídeo pre­ci­sa­mos usar cookies de terceiros. Você pode acessar e mudar suas con­fi­gu­ra­ções de cookies here.

O Amazon ECS oferece várias in­ter­fa­ces para executar apli­ca­ti­vos isolados em con­têi­ne­res Docker na Amazon Elastic Compute Cloud (EC2). O serviço é baseado nas seguintes in­fra­es­tru­tu­ras de nuvem:

  • Ins­tân­cias Amazon EC2 (Elastic Compute Cloud): A Amazon EC2 oferece ca­pa­ci­dade de com­pu­ta­ção escalável como ins­tân­cias, que podem ser alugadas conforme a demanda.
  • Amazon S3 (Simple Storage Service): O Amazon S3 é uma pla­ta­forma de ar­ma­ze­na­mento de objetos baseada em nuvem.
  • Amazon EBS (Elastic Block Store): O Amazon EBS fornece volumes de ar­ma­ze­na­mento de blocos altamente dis­po­ní­veis para as ins­tân­cias EC2.
  • Amazon RDS (Re­la­ti­o­nal Database Service): O Amazon RDS é um serviço de banco de dados que gerencia motores de banco de dados re­la­ci­o­nais como Amazon Aurora, Post­greSQL, MySQL, MariaDB, Oracle e Microsoft SQL Server.

A gestão de con­têi­ne­res no ECS é feita, por padrão, através de um or­ques­tra­dor pro­pri­e­tá­rio, que funciona como master e se comunica com um agente em cada nó do cluster a ser ge­ren­ci­ado. Como al­ter­na­tiva, é oferecido o módulo de código aberto Blox, que permite integrar agen­da­do­res de­sen­vol­vi­dos pelo usuário e fer­ra­men­tas de terceiros, como o Mesos, ao ECS.

Uma das vantagens do Amazon EC2 Container Service é sua in­te­gra­ção com outros serviços da Amazon, como a fer­ra­menta de ge­ren­ci­a­mento de per­mis­sões “AWS Identity and Access Ma­na­ge­ment (IAM)”, o ba­lan­ce­a­dor de carga em nuvem “Elastic Load Balancing” e o serviço de mo­ni­to­ra­mento “Amazon CloudWatch”.

Uma des­van­ta­gem do Amazon EC2 Container Service é a limitação às ins­tân­cias EC2. O serviço CaaS da Amazon não oferece suporte a in­fra­es­tru­tu­ras de TI fora da AWS – nem físicas nem virtuais. Cenários de nuvem híbrida não são possíveis, assim como a com­bi­na­ção de recursos de TI de di­fe­ren­tes for­ne­ce­do­res de nuvem pública (Mul­ti­cloud). Isso pro­va­vel­mente está re­la­ci­o­nado ao modelo de negócios no qual a Amazon oferece seu serviço CaaS: o Amazon EC2 Container Service está dis­po­ní­vel gra­tui­ta­mente via AWS, sendo cobrada apenas a in­fra­es­tru­tura em nuvem utilizada – como um cluster de ins­tân­cias EC2, que serve de base para o fun­ci­o­na­mento das apli­ca­ções con­tei­ne­ri­za­das.

Vantagens Des­van­ta­gens
✓ In­te­gra­Ã§Ã£o com outros produtos da AWS ✗ De­ploy­ment de con­têi­ne­res limitado às ins­tân­cias EC2
✓ Gratuito para usar (in­fra­es­tru­tura paga) ✗ Or­ques­tra­dor pro­pri­e­tá­rio

Google Ku­ber­ne­tes Engine (GKE)

O Google também integrou um serviço de con­têi­ne­res hospedado na nuvem pública através do Google Ku­ber­ne­tes Engine (GKE). O principal com­po­nente do serviço CaaS é a fer­ra­menta de or­ques­tra­ção Ku­ber­ne­tes.

pQ87vVMZK-A.jpg Para exibir esse vídeo pre­ci­sa­mos usar cookies de terceiros. Você pode acessar e mudar suas con­fi­gu­ra­ções de cookies here.

O GKE (Google Ku­ber­ne­tes Engine) utiliza recursos da Google Compute Engine (GCE) e permite que os usuários executem apli­ca­ções baseadas em con­têi­ne­res em clusters na Google Cloud. Com o GKE, não há limitação à in­fra­es­tru­tura do Google: o Cluster Fe­de­ra­tion System do or­ques­tra­dor Ku­ber­ne­tes pos­si­bi­lita agrupar recursos de di­fe­ren­tes clusters de com­pu­ta­do­res em uma federação lógica e, quando ne­ces­sá­rio, im­ple­men­tar cenários de Hybrid-Cloud e Multi-Cloud.

Cada cluster criado com o GKE consiste em um ponto final mestre do Ku­ber­ne­tes, onde o servidor de API do Ku­ber­ne­tes é executado, e um número variável de nós de trabalho que respondem às so­li­ci­ta­ções REST enviadas ao servidor de API e executam os serviços ne­ces­sá­rios para suportar con­têi­ne­res Docker. O GKE também oferece suporte ao am­pla­mente utilizado formato de con­têi­ne­res Docker. Para o ar­ma­ze­na­mento de Docker Images, os usuários podem contar com um registro de contêiner privado. Uma sintaxe baseada em JSON permite que os serviços de con­têi­ne­res sejam definidos como templates.

A in­te­gra­ção do Ku­ber­ne­tes no GKE oferece as seguintes fun­ci­o­na­li­da­des para or­ques­trar apli­ca­ções em con­têi­ne­res:

  • Bin­pac­king au­to­má­tico: O Ku­ber­ne­tes distribui au­to­ma­ti­ca­mente os con­têi­ne­res com base nas res­tri­ções e re­qui­si­tos de recursos, ga­ran­tindo a uti­li­za­ção otimizada do cluster.
  • Ve­ri­fi­ca­ção de in­te­gri­dade com função de au­tor­re­paro: O Ku­ber­ne­tes realiza ve­ri­fi­ca­ções au­to­má­ti­cas de in­te­gri­dade, ga­ran­tindo que todas as contas e con­têi­ne­res estejam fun­ci­o­nando cor­re­ta­mente.
  • Es­ca­la­bi­li­dade ho­ri­zon­tal: O Ku­ber­ne­tes permite escalar as apli­ca­ções para cima ou para baixo conforme ne­ces­sá­rio.
  • Des­co­berta de serviço e ba­lan­ce­a­mento de carga: O Ku­ber­ne­tes oferece dois modos de des­co­berta de serviço: via variáveis de ambiente e DNS Records. O ba­lan­ce­a­mento de carga entre con­têi­ne­res é feito por meio de endereços IP e nomes DNS.
  • Or­ques­tra­ção de ar­ma­ze­na­mento: O Ku­ber­ne­tes permite montar au­to­ma­ti­ca­mente di­fe­ren­tes sistemas de ar­ma­ze­na­mento.

Em relação à pre­ci­fi­ca­ção do serviço CaaS, o Google adota uma abordagem diferente da da Amazon. Na edição básica gratuita, é possível utilizar um crédito mensal de 74,40 dólares por conta de fa­tu­ra­mento, que se aplica a clusters zonais e de Autopilot. Nas edições “Ku­ber­ne­tes”, a cobrança é feita por hora, por vCPU ou por cluster. Os custos da edição “Compute” são baseados nas tarifas da Compute Engine.

Vantagens Des­van­ta­gens
✓ In­te­gra­Ã§Ã£o com outros produtos do Google ✗ Curva de apren­di­zado íngreme
✓ In­te­ro­pe­ra­bi­li­dade ✗ Pode se tornar ra­pi­da­mente caro

Microsoft Azure Ku­ber­ne­tes Service (AKS)

O Azure Ku­ber­ne­tes Service (AKS) é um ambiente de hos­pe­da­gem otimizado para a pla­ta­forma de com­pu­ta­ção em nuvem da Microsoft, o Azure, que permite aos usuários de­sen­vol­ver e implantar apli­ca­ções baseadas em con­têi­ne­res em clusters de com­pu­ta­ção es­ca­lá­veis. O AKS utiliza uma versão otimizada para o Azure de fer­ra­men­tas de con­têi­ne­res de código aberto e permite a execução de con­têi­ne­res Linux e Windows no formato Docker.

Imagem: Página do Produto Microsoft Azure Kubernetes Service (AKS)
Captura de tela da página do Azure Ku­ber­ne­tes Service (AKS); Fonte: https://azure.microsoft.com/products/ku­ber­ne­tes-service/

Quais recursos estão dis­po­ní­veis para os usuários do AKS ao operar apli­ca­ti­vos con­tai­ne­ri­za­dos na nuvem Azure dependem prin­ci­pal­mente da escolha do or­ques­tra­dor. Or­ques­tra­do­res de contêiner populares que são su­por­ta­dos incluem Ku­ber­ne­tes, DC/OS e Docker Swarm. Na versão Docker-Swarm, o AKS depende da pilha Docker, uti­li­zando as mesmas tec­no­lo­gias open-source do Docker Universal Control Plane (um com­po­nente principal do Docker Da­ta­cen­ter). Im­ple­men­tado no Azure Container Service, o Docker Swarm oferece o seguinte conjunto de recursos para or­ques­tra­ção e es­ca­la­bi­li­dade de apli­ca­ti­vos em con­têi­ne­res:

  • Docker Compose: A solução do Docker para apli­ca­ti­vos multi-contêiner permite vincular vários con­têi­ne­res e executá-los cen­tral­mente com um único comando.
  • Controle por linha de comando: A interface de linha de comando do Docker (CLI) e a fer­ra­menta multi-contêiner Docker Compose pos­si­bi­li­tam o ge­ren­ci­a­mento direto de clusters de con­têi­ne­res pela linha de comando.
  • REST API: A Docker Remote API oferece acesso a diversas fer­ra­men­tas de terceiros do ecos­sis­tema Docker.
  • De­ploy­ment baseado em regras: A dis­tri­bui­ção de con­têi­ne­res Docker no cluster pode ser gerida por meio de rótulos e res­tri­ções.
  • Service discovery: O Docker Swarm oferece diversas funções de des­co­berta de serviços.

Além disso, a Microsoft expandiu o ACS com funções CI/CD (in­te­gra­ção e entrega contínuas) para apli­ca­ti­vos multi-contêiner de­sen­vol­vi­dos com o Visual Studio, o Visual Studio Team Services ou a fer­ra­menta open-source Visual Studio Code. O ge­ren­ci­a­mento de iden­ti­dade e acesso no Azure é feito por meio do Active Directory, cujas fun­ci­o­na­li­da­des básicas são for­ne­ci­das gra­tui­ta­mente até um limite de 500.000 objetos de diretório. Assim como no Amazon ECS, não há custos pelo uso das fer­ra­men­tas de contêiner no Azure Container Service. As taxas são cobradas apenas pelo uso da in­fra­es­tru­tura sub­ja­cente.

Vantagens Des­van­ta­gens
✓ To­tal­mente integrado na pla­ta­forma em nuvem Azure ✗ Seleção de sistemas ope­ra­ci­o­nais limitada
✓ Suporta todas as fer­ra­men­tas de or­ques­tra­Ã§Ã£o padrão
Ir para o menu principal