Questa pagina descrive alcune cose che devi sapere 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 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 questa variabile di ambientePORT
e, se presente, deve eseguire le operazioni di ascolto per massimizzare la portabilità. - Il servizio deve essere stateless. Non può basarsi su uno stato locale persistente.
- Il servizio non deve eseguire attività in background al di fuori dell'ambito della gestione delle richieste.
Puoi trovare maggiori dettagli su questi vincoli nel Contratto di runtime del container.
Supporto dei linguaggi di programmazione
Knative Serving ti consente di scrivere codice nel linguaggio di programmazione che preferisci.
Utilizzo di un web server
Puoi utilizzare un server web per rimanere in ascolto sulla porta richiesta ed elaborare e instradare le 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.
Containerizzare il codice
Per eseguire il deployment in Knative serving, devi fornire un'immagine container. Un'immagine container è un formato di packaging che include il codice, i relativi pacchetti, eventuali dipendenze binarie necessarie, il sistema operativo da utilizzare e qualsiasi altro elemento necessario per eseguire il servizio.
Un file denominato Dockerfile viene comunemente utilizzato per dichiarare come creare l'immagine container.
I Dockerfile iniziano molto spesso da un'immagine di base (ad es. FROM golang:1.11
).
Puoi trovare le immagini di base gestite dagli autori di sistemi operativi e linguaggi su
Docker Hub. Cloud Build verifica la presenza di immagini memorizzate nella cache prima di eseguire il pull da Docker Hub. Se utilizzi uno strumento di build di terze parti, puoi configurare il daemon Docker per verificare la presenza di immagini nella stessa cache. Puoi anche trovare immagini di base gestite da Google in Google Cloud Marketplace.
Se porti i tuoi binari, assicurati che siano compilati per Linux ABI x86_64.
Queste risorse forniscono ulteriori informazioni sui Dockerfile:
- Scopri la sintassi di Dockerfile tramite il riferimento a Dockerfile.
- Scopri come si combinano i Dockerfile grazie ai suggerimenti riportati in Best practice per la scrittura di Dockerfile.
Passaggi successivi
- Una volta che hai il codice del servizio e il Dockerfile, devi creare un'immagine container e poi continuare a eseguire l'iterazione nei test locali.
- Se stai eseguendo la migrazione di un'applicazione web esistente, consulta la sezione Migrazione del servizio a Knative serving.
- Per le best practice per la progettazione, l'implementazione, il test e il deployment di un servizio in Knative serving, consulta i suggerimenti per lo sviluppo.