banner
Centro notizie
Implementiamo un sistema di qualità impeccabile per garantire un'eccellente resa del prodotto.

Cloudflare Workers presenta l'API connect() per creare socket TCP

Apr 13, 2023

InfoQ Homepage Notizie Cloudflare Workers presenta l'API connect() per creare socket TCP

28 maggio 2023 2 minuti di lettura

di

Renato Losio

Durante la recente settimana degli sviluppatori, Cloudflare ha annunciato un'API Worker per creare socket TCP in uscita. La nuova API socket consente agli sviluppatori di riconnettersi all'infrastruttura basata su TCP direttamente da un Worker, inclusi i database.

Disponibile come API runtime, la funzione connect() restituisce un socket TCP che consente agli sviluppatori di leggere e scrivere dati finché la connessione rimane aperta. I lavoratori potrebbero già interagire con endpoint HTTP e altri servizi Cloudflare, ma la stragrande maggioranza dei database richiede che i client si connettano aprendo un socket TCP diretto. Brendan Irvine-Broque, product manager di Cloudflare, e Matt Silverlock, direttore del prodotto di Cloudflare, spiegano:

Con Workers, miriamo a supportare API standard supportate da browser e ambienti non browser, ove possibile, (...) ma per i socket TCP abbiamo dovuto affrontare una sfida: non esisteva uno standard chiaro condiviso tra i runtime. Abbiamo cercato di incorporare gli elementi migliori delle API e delle proposte esistenti e intendiamo contribuire agli standard futuri.

Lo scorso autunno Cloudflare, insieme a Vercel e Shopify, ha avviato WinterCG, un nuovo gruppo comunitario, focalizzato sull'implementazione interoperabile di API web standardizzate in ambienti di sviluppo basati su browser non web e basati su JavaScript.

Si accede alla nuova API importando la funzione connect da cloudflare:sockets. Uno dei casi d'uso comuni è creare una connessione a un database, ad esempio:

Fonte: https://blog.cloudflare.com/workers-tcp-socket-api-connect-databases/

Mentre pg, il driver del database JavaScript per PostgreSQL, è già supportato, i driver MySQL mysql e mysql2 non sono ancora supportati. Irvine-Broque e Matt Silverlock avvertono:

Per ogni richiesta viene creata una nuova connessione. Questa è una delle maggiori sfide attuali legate alla connessione ai database da funzioni serverless, su tutte le piattaforme (...) stiamo già lavorando su approcci più semplici al pooling delle connessioni per i database più popolari.

La rete di distribuzione dei contenuti prevede di aggiungere ulteriori funzionalità in futuro, incluso il supporto per le connessioni TCP e UDP in entrata, come richiesto da alcuni sviluppatori, nonché protocolli applicativi basati su QUIC.

L'API connect() non è stata l'unica novità annunciata durante la Developer Week 2023: Cloudflare ha introdotto Secrets Store, una soluzione per la gestione sicura dei segreti delle applicazioni, miglioramenti a D1, il database serverless di Cloudflare, e la concorrenza consumer per il servizio di messaggistica Queues. Inoltre, Cloudflare ha annunciato integrazioni di database per Neon, PlanetScale e Supabase on Workers. Karl Horky, fondatore di UpLeveled, twitta:

Nessun proxy come Neon o altri provider serverless/edge, ti connetti semplicemente normalmente tramite TCP. Sembra fantastico, potenzialmente molto più grande degli altri recenti annunci di database edge.

Ogni socket TCP aperto viene conteggiato nel numero massimo di connessioni aperte che possono essere aperte simultaneamente in Worker e non è possibile creare connessioni TCP sulla porta 25 per inviare e-mail ai server di posta SMTP.

Migra facilmente al cloud e innova incredibilmente velocemente con Kalix! Crea microservizi e API ad alte prestazioni, è necessario NoOps. Saperne di più.

Scrivere per InfoQ ha aperto molte porte e aumentato le opportunità di carriera per me. Ho avuto la possibilità di interagire profondamente con esperti e leader di pensiero per saperne di più sugli argomenti trattati. E posso anche diffondere le mie conoscenze alla più ampia comunità tecnologica e capire come le tecnologie vengono utilizzate nel mondo reale.

Ho scoperto il programma per collaboratori di InfoQ all'inizio di quest'anno e da allora mi sono divertito! Oltre a fornirmi una piattaforma per condividere l'apprendimento con una comunità globale di sviluppatori di software, il sistema di revisione peer-to-peer di InfoQ ha migliorato significativamente la mia scrittura