Para ter sucesso, um desenvolvedor precisa empacotar e transportar com eficiência diferentes tipos de aplicativos. O contêiner como serviço (CaaS) pode ser uma forma de simplificar a implantação, as operações e a manutenção da sua infraestrutura e contêineres nesse processo.
Contêineres como serviço (CaaS) é um modelo de serviço de nuvem que oferece uma plataforma gerenciada e automatizada para orquestração de contêineres. É uma forma de organizar e simplificar a operação do cluster.
Imagine todos os seus programas em um escritório virtual, com um gerente que cuida do espaço e evita que ele seja destruído ou sobrecarregado. Isso é a containerização. Você não precisa lidar com os problemas. Em vez disso, você se concentra em como o código executa.
O CaaS preenche a lacuna entre o contêiner finalizado do desenvolvedor e um ambiente de execução de nível de produção, abstraindo a infraestrutura e permitindo que as equipes se concentrem na lógica do aplicativo no lugar do gerenciamento de clusters.
O CaaS funciona oferecendo um ambiente gerenciado criado em torno de um mecanismo de orquestração de contêineres, sendo o Kubernetes o padrão do setor para um mecanismo de orquestração de contêineres. O processo cria uma separação de preocupações entre os desenvolvedores e a infraestrutura básica:
Trabalhos de um desenvolvedor: primeiro, ele precisa reunir todas as dependências e o aplicativo e empacotar tudo em uma imagem de contêiner. Essa imagem é um blueprint portátil do aplicativo.
Depois de concluído, um produto de CaaS assume o controle: depois de criado e armazenado, tudo o que resta é aplicar o gerenciamento com uma API ou interface. Um produto de CaaS, como o Google Kubernetes Engine, pode ajudar a lidar com todo o resto. Agora é hora de definir o estado do programa. Precisa de três servidores executando o mesmo programa? Este serviço pode ajudar.
Depois disso, a nova implantação é feita automaticamente. Isso pode incluir:
O CaaS é uma plataforma versátil que pode servir de base para arquiteturas e práticas de desenvolvimento.
Pode ser uma plataforma ideal para implantações de aplicativos e microsserviços.
Pode ser uma ótima maneira de empacotar aplicativos mais antigos com a modernização de apps legados.
Para estruturas de desenvolvimento, uma plataforma de CaaS pode ser ótima. Um sistema automatizado pode criar uma nova imagem de contêiner, executar testes e implantá-la na plataforma de CaaS sem inatividade.
O CaaS automatiza as necessidades de tráfego. A plataforma pode adicionar ou remover instâncias de contêiner automaticamente para atender à demanda do usuário.
As plataformas de CaaS criadas com base em padrões abertos como o Kubernetes podem oferecer um ambiente operacional consistente em data centers no local e várias nuvens públicas. Isso ajuda empresas a executar os aplicativos conteinerizados em qualquer lugar sem precisar refazer a arquitetura deles.
O cenário "como serviço" inclui vários modelos, cada um oferecendo um nível diferente de abstração e gerenciamento. O CaaS se encaixa de forma única entre a infraestrutura como serviço (IaaS) e a plataforma como serviço (PaaS).
Modelo de nuvem | O que você gerencia | Nível de abstração | Caso de uso típico |
Infraestrutura como serviço (IaaS) | Sistema operacional, middleware, ambiente de execução, aplicativo, dados. | Baixo: oferece acesso a recursos de computação brutos, como máquinas virtuais e armazenamento. | Criação de infraestrutura personalizada do zero. |
Contêineres como serviço (CaaS) | Aplicação e configuração. | Médio: gerencia o cluster e o SO, mas permite controlar o ambiente de contêineres. | Orquestração de aplicativos conteinerizados em escala. |
Plataforma como serviço (PaaS) | Aplicativos e dados. | Alto: gerencia quase tudo. Você fornece o código-fonte e a plataforma o executa. | Implantação rápida de web apps e APIs simples. |
Função como serviço (FaaS) (sem servidor) | Apenas a função do código. | Muito alta: executa funções individuais e sem estado em resposta a eventos. | Tarefas de processamento de dados leves e orientadas a eventos. |
Software com serviço (SaaS) | Nada (você é o usuário final). | Completa: disponibiliza um produto de software finalizado pela Web. | Consumir software pronto para uso, como e-mail ou CRM. |
Modelo de nuvem
O que você gerencia
Nível de abstração
Caso de uso típico
Infraestrutura como serviço (IaaS)
Sistema operacional, middleware, ambiente de execução, aplicativo, dados.
Baixo: oferece acesso a recursos de computação brutos, como máquinas virtuais e armazenamento.
Criação de infraestrutura personalizada do zero.
Contêineres como serviço (CaaS)
Aplicação e configuração.
Médio: gerencia o cluster e o SO, mas permite controlar o ambiente de contêineres.
Orquestração de aplicativos conteinerizados em escala.
Plataforma como serviço (PaaS)
Aplicativos e dados.
Alto: gerencia quase tudo. Você fornece o código-fonte e a plataforma o executa.
Implantação rápida de web apps e APIs simples.
Função como serviço (FaaS) (sem servidor)
Apenas a função do código.
Muito alta: executa funções individuais e sem estado em resposta a eventos.
Tarefas de processamento de dados leves e orientadas a eventos.
Software com serviço (SaaS)
Nada (você é o usuário final).
Completa: disponibiliza um produto de software finalizado pela Web.
Consumir software pronto para uso, como e-mail ou CRM.
Os contêineres foram criados para disponibilizar seu software a qualquer hora e em qualquer lugar. Saiba mais sobre contêineres.
Sim. Na verdade, eles oferecem acesso a muitos outros benefícios, como separação de responsabilidades, isolamento de aplicativos, processamento em lote e implantações de nuvem híbrida.
O Google Kubernetes Engine (GKE) simplifica a descoberta de serviços pela integração total com mecanismos nativos do Kubernetes, como objetos de serviço e DNS. Como uma oferta de serviço gerenciado, o GKE aprimora esses recursos com funcionalidades como os serviços de vários clusters (MCS) e a integração direta com o Diretório de serviços.
É possível criar e implantar novos códigos com mais rapidez, mas os recursos não são gerenciados ou pensados repetidamente.
A adoção de uma plataforma de CaaS pode trazer vários benefícios estratégicos para equipes de desenvolvimento e operações empresariais.
Portabilidade
O CaaS ajuda as cargas de trabalho. Se um aplicativo baseado em contêiner estiver em execução no framework CaaS padrão, ele poderá ser editado com facilidade.
Escalonabilidade
É possível adaptar os recursos ao que for necessário.
Programação rápida
Isso ajuda a melhorar as práticas de automação.
Manutenção aprimorada
Se um componente falhar, a plataforma resolverá o problema e corrigirá rapidamente para manter a funcionalidade do usuário.
O provedor cuida do trabalho básico, o que faz você depender do código do seu aplicativo, do acesso à conta, do firewall e das regras de acesso. A segurança em um ambiente de CaaS opera com um modelo de responsabilidade compartilhada. O provedor de CaaS é responsável por proteger a infraestrutura básica. Isso inclui proteger o plano de controle de orquestração de contêineres, proteger os data centers físicos e a rede e garantir a integridade do serviço gerenciado em si.
O cliente é responsável pela segurança dos componentes que controla. Isso envolve proteger o código do aplicativo, gerenciar o acesso ao cluster usando o Identity and Access Management (IAM), configurar políticas de rede para controlar o tráfego entre contêineres e, principalmente, proteger a cadeia de suprimentos de software. Ou seja, usar um registro de contêiner seguro e verificar se há vulnerabilidades conhecidas nas imagens de contêiner antes da implantação.
Responsabilidades da equipe de TI:
O Google Kubernetes Engine (GKE) é a principal oferta de CaaS do Google Cloud. A configuração de uma implantação básica segue um fluxo de trabalho lógico e nativo de contêineres.
Etapa 1: conteinerizar o aplicativo.
Primeiro, escreva um arquivo de texto do aplicativo. Esse arquivo de texto simples contém as instruções para criar o aplicativo, as dependências e o ambiente de execução em uma imagem de contêiner estática.
Etapa 2: armazenar a imagem em um registro.
Crie a imagem do contêiner com base no arquivo de texto e envie-a para um registro particular e seguro. O Artifact Registry é o serviço gerenciado do Google Cloud para armazenar e controlar versões das imagens de contêiner.
Etapa 3: criar um cluster do GKE.
Provisione um cluster do Kubernetes usando o console do Google Cloud ou a ferramenta de linha de comando gcloud. Para uma experiência totalmente gerenciada que automatiza o gerenciamento e o escalonamento de nós, selecione um cluster do GKE Autopilot.
Etapa 4: defina sua implantação.
Crie um arquivo de manifesto do Kubernetes (por exemplo, deployment.yaml). Nesse arquivo, você define de forma declarativa o estado desejado do aplicativo, especificando a imagem do contêiner a ser usada, o número de réplicas que quer e os recursos de CPU e memória necessários.
Etapa 5: implantar o aplicativo no cluster.
Use a ferramenta de linha de comando do Kubernetes, kubectl, para aplicar o arquivo de manifesto ao cluster. O plano de controle do GKE recebe a solicitação e programa os contêineres do aplicativo para serem executados nos nós de trabalho do cluster.
Etapa 6: publicar o aplicativo.
Para tornar seu aplicativo acessível aos usuários na Internet, crie um manifesto de serviço do Kubernetes do tipo LoadBalancer. Quando você aplica esse manifesto, o GKE provisiona automaticamente um balanceador de carga na nuvem e atribui a ele um endereço IP público, roteando o tráfego externo para os contêineres em execução.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.