Como desenvolver seu serviço

Nesta página, descrevemos alguns itens que você precisa conhecer para começar a desenvolver um serviço para o Knative serving.

Exigências de código

Atenda aos requisitos a seguir ao desenvolver um serviço:

  • O serviço precisa detectar solicitações. É possível configurar a porta em que as solicitações são enviadas. Dentro das instâncias de contêiner do Knative serving, o valor da variável de ambiente PORT sempre reflete a porta para a qual as solicitações são enviadas. O código precisa verificar a existência da variável de ambiente PORT e, se ela estiver presente, detectá-la para maximizar a portabilidade.
  • O serviço precisa ser do tipo sem estado. Ele não pode depender de um estado local permanente.
  • O serviço não pode executar atividades em segundo plano fora do escopo do processamento de solicitações.

Confira mais detalhes sobre essas restrições no contrato do ambiente de execução do Contêiner.

Compatibilidade com linguagens de programação

O Knative serving permite que você escreva códigos na linguagem de programação do de sua escolha.

Como usar um servidor da Web

Use um servidor da Web para realizar detecções na porta necessária, bem como para processar e rotear solicitações recebidas. Por exemplo, os desenvolvedores do Node.js podem usar o Express.js, os desenvolvedores do Python podem usar o Flask, os desenvolvedores do Ruby podem usar o Sinatra, e assim por diante.

Como contentorizar seu código

Para implantar no Knative serving, você precisa fornecer uma imagem de contêiner. Uma imagem de contêiner é um formato de empacotamento que inclui o código, os pacotes dele, qualquer dependência binária necessária, o sistema operacional a ser usado e tudo que for preciso para executar o serviço.

Um arquivo chamado Dockerfile é comumente usado para declarar como compilar a imagem de contêiner.

Em geral, os Dockerfiles começam com uma imagem de base (por exemplo, FROM golang:1.11). É possível encontrar imagens de base mantidas por autores de SOs e de linguagens no Docker Hub (em inglês). O Cloud Build verifica se há imagens em cache antes de extrair do Docker Hub. Se você usar uma ferramenta de build de terceiros, poderá configurar o daemon do Docker para verificar se há imagens no mesmo cache. Também é possível encontrar imagens de base gerenciadas pelo Google no Google Cloud Marketplace.

Se você tem seus próprios binários, confira se eles foram compilados para o Linux ABI x86_64.

Estes recursos fornecem informações adicionais sobre os Dockerfiles:

A seguir