Come funziona encore
Vantaggi dell'utilizzo dell'Encore.ts
Esperienza di sviluppo integrata per una maggiore produttività
- Sviluppo locale con infrastruttura istantanea : Encore configura automaticamente l'infrastruttura necessaria durante lo sviluppo.
- Feedback rapido : rileva tempestivamente i problemi con l'infrastruttura indipendente dai tipi, evitando cicli di distribuzione lenti.
- : Non è necessaria l'infrastruttura come codice. Il tuo codice è l'unica fonte di verità.
- Base di codice unificata : una base di codice per tutti gli ambienti: locale, di anteprima e cloud.
- Indipendente dal cloud per impostazione predefinita : fornisce un livello di astrazione Encore.ts parte superiore alle API del provider cloud, in modo da evitare di rimanere bloccati in un singolo cloud.
- Evolvere l'infrastruttura senza modifiche al codice : man mano che i requisiti si evolvono, è possibile Modificare l'infrastruttura di cui è stato effettuato il provisioning senza dover apportare modifiche al codice dell'applicazione. Utilizzando gli strumenti di self-hosting Open Source o con la piattaforma cloud opzionale, che automatizza completamente la gestione dell'infrastruttura nel proprio account AWS/GCP.
Runtime di Rust ad alte prestazioni
Per abilitare le funzionalità di Encore in TypeScript, abbiamo creato un runtime di sistemi distribuiti ad alte prestazioni in Rust. Si integra con il nodo standard. Compatibilità al 100% con l'ecosistema Node.js .
Offre una serie di vantaggi rispetto ai Node.js standard:
- gestisce la convalida delle richieste, fornisce la sicurezza del tipo di API, ha un'osservabilità integrata e si integra con database, Pub/Sub e altro ancora
- Throughput 9 volte superiore e latenza ridotta dell'85% rispetto ai Node.js/Express.js standard
- Maggiore sicurezza e build più veloci
How it works
Encore.ts è progettato per consentire al ciclo di eventi Node.js, che è a thread singolo, di concentrarsi sull'esecuzione della logica di business, mentre tutto il resto avviene nel runtime Rust multi-thread di Encore. Ecco una panoramica di alto livello di come funziona:
1. Node.js avvia e inizializza il runtime di Encore Rust. Il runtime di Rust quindi:
- Inizia ad accettare le richieste in arrivo
- Analizza e convalida queste richieste rispetto allo schema API
2. Per ogni richiesta, il runtime Encore:
- Passa la richiesta al codice dell'applicazione
- Attende che il codice elabori la richiesta
- Invia la risposta al client
3. Quando l'applicazione deve interagire con l'infrastruttura (ad esempio database o PubSub):
- delega queste attività al runtime di Rust
- Il runtime di Rust gestisce queste operazioni in modo più efficiente di quanto Node.js farebbe, fornendo un'esecuzione più rapida e una latenza inferiore
Sicurezza dei tipi migliorata per i sistemi distribuiti
Encore sfrutta l'analisi statica del codice per analizzare lo schema API e i tipi TypeScript definiti. Ciò abilita una serie di funzionalità:
- Dashboard di sviluppo locale integrato
- API Explorer, documentazione automatica e traccia locale
- Sicurezza del tipo di runtime, convalida automatica delle richieste in arrivo rispetto allo schema API
- Eliminazione degli errori di runtime dovuti alla mancanza di campi obbligatori
Non è richiesta
alcuna esperienza DevOps Encore fornisce strumenti open source per aiutarti a integrarti con la tua infrastruttura cloud, consentendoti di ospitare autonomamente la tua applicazione ovunque supporti i contenitori Docker. Per altre informazioni, vedere la documentazione relativa all'hosting autonomo.
Puoi anche utilizza Encore Cloud, che automatizza completamente il provisioning e la gestione dell'infrastruttura nel tuo cloud su AWS e GCP.
Questo approccio riduce drasticamente il livello di competenza DevOps necessario per utilizzare servizi cloud scalabili e pronti per la produzione come Kubernetes e Pub/Sub. Inoltre, poiché il codice dell'applicazione è la fonte di verità per i requisiti dell'infrastruttura, garantisce che l'infrastruttura in tutti gli ambienti sia sempre sincronizzata con i requisiti correnti dell'applicazione.
Semplicità senza rinunciare alla flessibilità
Encore.ts fornisce integrazioni per le primitive di infrastruttura comuni, ma consente anche flessibilità.
Ad esempio, è sempre possibile utilizzare qualsiasi infrastruttura cloud, anche se non è integrata nel framework Encore.ts. È possibile utilizzare qualsiasi database, broker di messaggi o altro servizio necessario per l'applicazione, è sufficiente configurare l'infrastruttura e quindi farvi riferimento nel codice come si farebbe tradizionalmente.
Se utilizzi Encore Cloud, automatizzerà l'infrastruttura utilizzando il tuo account cloud, in modo da avere sempre pieno accesso ai tuoi servizi dalla console del provider cloud.