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 ambientePORT
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:
- Conheça a sintaxe do Dockerfile na Referência do Dockerfile.
- Saiba como os Dockerfiles se encaixam com as dicas em Práticas recomendadas para gravar Dockerfiles.
A seguir
- Depois de ter o código de serviço e o Dockerfile, é preciso compilar uma imagem de contêiner e continuar a iterar em testes locais.
- Se você estiver migrando um aplicativo da Web atual, consulte Como migrar seu serviço para o Knative serving.
- Práticas recomendadas para projetar, implementar, testar e implantar um serviço no Knative serving, consulte a Dicas de desenvolvimento.