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 Knative serving, il valore del parametro
PORT
variabile di ambiente 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 su di essa per massimizzare la portabilità. - Il servizio deve essere stateless. Non può fare affidamento 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 relativo al runtime dei container.
Supporto dei linguaggi di programmazione
Knative serving consente di scrivere codice nel linguaggio di programmazione la tua scelta.
Utilizzo di un server web
Puoi utilizzare un server web per ascoltare sulla porta richiesta ed elaborare e indirizzare le richieste in arrivo. 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 pacchettizzazione che include il tuo codice, i suoi pacchetti, eventuali dipendenze binarie necessarie, il sistema operativo da utilizzare e 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 uno strumento di compilazione di terze parti, puoi configurare il daemon Docker in modo che controlli la presenza di immagini nella stessa cache. Puoi anche trovare le immagini di base gestite da Google in Google Cloud Marketplace.
Se fornisci i tuoi binari, assicurati che siano compilati per l'ABI x86_64 di Linux.
Queste risorse forniscono ulteriori informazioni sui file Dockerfile:
- Scopri la sintassi di Dockerfile tramite Riferimento Dockerfile.
- Scopri come i Dockerfile si inseriscono tra loro grazie ai suggerimenti riportati in Best practice per la scrittura di Dockerfile.
Passaggi successivi
- Una volta ottenuti il codice di servizio e il Dockerfile, crea un'immagine container e continua con l'iterazione nei test locali.
- Se stai eseguendo la migrazione di un'applicazione web esistente, consulta Eseguire la 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.