Sviluppo del servizio

Questa pagina descrive alcune informazioni che devi conoscere per iniziare a sviluppare un servizio per Knative serving.

Requisiti di codice

Quando sviluppi un servizio, devi soddisfare i seguenti requisiti:

  • Il servizio deve ascoltare le richieste. Puoi configurare la porta su cui vengono inviate le richieste. All'interno delle istanze di container di Knative serving, il valore della variabile di ambiente PORT riflette sempre la porta a cui vengono inviate le richieste. Il codice deve verificare l'esistenza di questo ambiente PORT e, se presente, dovrebbe ascoltarla per massimizzare la portabilità.
  • Il servizio deve essere stateless. e non può dipendere da uno stato locale permanente.
  • Il servizio non deve eseguire attività in background che esulano dall'ambito della richiesta gestione dei problemi.

Puoi trovare ulteriori dettagli su questi vincoli nel Contratto di runtime del container.

Supporto dei linguaggi di programmazione

Knative serving consente di scrivere codice nel linguaggio di programmazione la tua scelta.

Uso di un server web

Puoi utilizzare un server web per eseguire le operazioni di ascolto sulla porta richiesta, nonché per elaborare e per il routing delle richieste in entrata. Ad esempio, gli sviluppatori Node.js possono utilizzare Express.js, gli sviluppatori Python possono utilizzare Flask, gli sviluppatori Ruby possono utilizzare Sinatra e così via.

Containerizzazione del codice

Per eseguire il deployment in Knative serving, devi fornire un'immagine container. Un'immagine container è un formato di pacchetti che include il codice, i relativi pacchetti, eventuali dipendenze binarie necessarie, il sistema operativo da utilizzare e tutto ciò che è necessario per eseguire il servizio.

Un file denominato Dockerfile comunemente utilizzata per dichiarare come creare l'immagine container.

I Dockerfile molto spesso iniziano da un'immagine di base (ad es. FROM golang:1.11). Puoi trovare le immagini di base gestite dal sistema operativo e dagli autori dei linguaggi su Docker Hub. Cloud Build controlla se sono presenti immagini memorizzate nella cache prima del pull da Docker Hub. Se utilizzi una build di terze parti puoi configurare il tuo daemon Docker per verificare la presenza di immagini nello stesso . Puoi anche trovare immagini di base gestite da Google nella Google Cloud Marketplace.

Se utilizzi i tuoi programmi binari, assicurati che siano compilati per Linux ABI x86_64.

Queste risorse forniscono ulteriori informazioni sui Dockerfile:

Passaggi successivi