Piattaforma edge cloud di Fastly

Back to blog

Follow and Subscribe

Python SDK Beta: come il linguaggio dell'IA diventa più veloce e sicuro con Fastly

Erik Rose

Staff Engineer - WebAssembly

Ajay Bharadwaj

Product Manager, Fastly

Terri Allegretto

Senior Manager, Product Marketing, piattaforma per sviluppatori

I tuoi backend sono scritti in Python. Stai sviluppando agenti di IA in Python. Non sarebbe logico scrivere in Python anche il codice edge? Da oggi è possibile, grazie al rilascio della versione beta dell'SDK Python di Fastly Compute

Poiché Fastly gestisce una delle reti più estese, veloci e sicure al mondo, siamo in grado di offrire al tuo codice Python, in continua espansione, tutti i vantaggi possibili. Che tu stia sviluppando il tuo primo progetto IA, convalidando token di controllo degli accessi o realizzando qualcosa che non abbiamo ancora immaginato, questo nuovo SDK porta il tuo codice Python sull'edge della rete, vicino ai tuoi utenti. Tutto questo con velocità e sicurezza ai massimi livelli del settore.

CPython standard, framework standard

Per garantire la massima compatibilità, compiliamo in modo incrociato CPython standard in modo che funzioni all'interno delle nostre sandbox WebAssembly isolate. Quindi, forniamo un adattatore per eseguire applicazioni WSGI standard sulla nostra implementazione HTTP ad alte prestazioni. Se utilizzi framework web Python popolari come Flask, o anche uno meno comune, purché conforme a WSGI, il tuo codice potrà essere eseguito sul nostro edge quasi senza modifiche e risulterà perfettamente idiomatico. Anche i moduli Python puri funzionano alla perfezione fin da subito.

Ecco come si presenta una semplice applicazione Flask "hello-world" in esecuzione su Fastly Compute:

from fastly_compute.wsgi import WsgiHttpIncoming
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello from Python, living on the Fastly edge!"

# The only special line: register the Flask app as the recipient
# of incoming requests, using our WSGI adapter.
HttpIncoming = WsgiHttpIncoming(app)

Come rendiamo Python più veloce

Se hai seguito il nostro recente intervento al Wasm I/O sulla componentizzazione di Fastly Compute, saprai che garantire buone prestazioni sull'edge per i linguaggi con un runtime pesante richiede un notevole lavoro di programmazione. Abbiamo messo in campo una serie di accorgimenti per eliminare i tempi di avvio tipicamente lenti di CPython e offrire all'utente finale le prestazioni più veloci possibili.

  • Snapshot della memoria: di norma, gran parte del codice Python, come i livelli superiori dei moduli, viene eseguito all'avvio, causando notevoli ritardi nell'avvio a freddo. Fastly aggira completamente questo problema. Consentiamo a Python di completare l'esecuzione durante la fase di build, per poi creare uno snapshot pre-inizializzato della memoria. In produzione, l'istanza viene avviata a partire da questo snapshot in pochi microsecondi, garantendo tempi di esecuzione persino inferiori rispetto al normale avvio di Python su una macchina locale.

  • Analisi dei cicli di dati: edge vs. cloud: Per le applicazioni in tempo reale e gli agenti IA, la prossimità fa la differenza. Se l'utilizzo dell'applicazione comporta una serie di scambi di rete continui (round trip) con l'utente, ad esempio, verificare un contesto, richiamare uno strumento, il recupero di una chiave segreta, il continuo andirivieni verso un server cloud centralizzato compromette le prestazioni. Gestire tale ciclo di orchestrazione dei dati a livello locale in prossimità dell'utente, mediante l'infrastruttura edge di Fastly, assicura un servizio ad alta reattività e un'eccellente esperienza utente.

Come rendiamo Python più sicuro

Il dibattito sull'IA si è evoluto notevolmente in pochissimo tempo. Come abbiamo potuto constatare nei percorsi dedicati all'IA e alla sicurezza in occasione del PyCon 2026 dello scorso mese, l'attenzione si è spostata dalla semplice ingegneria dei prompt all'implementazione in produzione di flussi di lavoro autonomi e basati su agenti.

Ciò comporta enormi sfide tecniche perché, essendo un linguaggio molto dinamico, Python è sempre stato difficile da isolare in una sandbox. Se si esegue un codice generato da LLM che non è del tutto affidabile, farlo all'interno dell'infrastruttura principale comporta gravi rischi per la sicurezza. Al contrario, il modello di isolamento di Fastly offre un ambiente a prova di errore in cui ospitare tale codice. Isoliamo l'esecuzione di ogni singola richiesta in una propria sandbox WebAssembly temporanea.

Nell'eventualità in cui il codice esegua operazioni non previste, a causa di errori programmatici o di attività malevole, il raggio d'azione del danno resta circoscritto all'edge della rete, escludendo qualsiasi potenziale minaccia per i backend aziendali critici. Inoltre, molti exploit, come il recente Copy Fail e varianti simili, risultano inapplicabili sulla nostra piattaforma grazie alla protezione della superficie delle API del kernel, una prerogativa assente nei sistemi di isolamento convenzionali basati su container.

Come preserviamo le caratteristiche distintive di Python

Su Fastly non è necessario scrivere codici wrapper ingombranti che coinvolgono più linguaggi. Sfruttando i componenti WebAssembly e il WIT IDL, che rispecchiano fedelmente la sintassi e l'operatività del Python moderno e puro, vengono messe a disposizione API type-safe garantendo al contempo un accoppiamento perfetto con il codice nativo ad alte prestazioni del backend.

Oltre al supporto WSGI menzionato in precedenza, rendiamo le chiamate HTTP aggiuntive semplici e veloci, grazie a un'implementazione compatibile della libreria requests, considerata lo standard de facto, che si avvale del nostro stack di rete ottimizzato. È sufficiente importarla in questo modo…

from fastly_compute import requests

…per poi eseguire le chiamate HTTP secondo le normali modalità.

Limitazioni attuali

Trattandosi di una versione beta e data la nostra massima focalizzazione su sicurezza e velocità, è importante tenere presenti i seguenti caveat:

  • I framework di calcolo ML nativi non sono ancora disponibili. NumPy, SciPy e Pandas necessitano di un ulteriore lavoro prima di poter essere eseguiti nel nostro ambiente. La logica pura di Python e tutte le estensioni native che supportano WASI sono attualmente disponibili.

  • È necessario importare i pacchetti al livello superiore. Affinché il nostro processo di build basato su snapshot di memoria possa intercettarli correttamente, i pacchetti devono essere importati al livello superiore di un modulo. (Se si dispone di codice di terze parti che utilizza importazioni interne, è possibile ovviare a questo problema importandole al livello superiore in un altro punto).

  • Assenza di filesystem e thread. Se carichi i template dal disco o utilizzi più thread all'interno di una richiesta web, dovrai modificare il tuo codice Al momento, nelle nostre sandbox non è ancora disponibile un filesystem virtuale né quel tipo di parallelismo.

Inizia oggi

Sei pronto a portare il tuo codice Python sull'edge? Ecco come iniziare:

Ti invitiamo a inviare pull request o a segnalare problemi sul repository GitHub. Facci sapere quali pacchetti Python ti stanno creando difficoltà, cosa stai sviluppando e come possiamo migliorare l'esperienza degli sviluppatori in vista del lancio ufficiale!

Pronto per iniziare?

Contattaci oggi