DA MASER A MONFUMO | MOTO GUZZI V85TT | PURE SOUND POV 4K

🏍️ Il mio nuovo canale YouTube: giri in moto in POV, solo audio, tra le Dolomiti in 4K. Niente musica, niente parole — solo il motore e le Alpi. Vieni a fare un giro!

Iscriviti

Cloud Pub/Sub

Cloud Pub/Sub fornisce funzionalità di messaggistica e ingestione per sistemi event-driven e analisi in streaming. I punti salienti dello strumento possono essere riassunti come segue:

  • Consegna dei messaggi scalabile e in ordine con modalità pull e push

  • Auto-scaling e auto-provisioning con supporto da zero a centinaia di GB/secondo

  • Quote e fatturazione indipendenti per publisher e subscriber

  • Routing globale dei messaggi per semplificare i sistemi multi-regione

Inoltre, Cloud Pub/Sub offre i seguenti vantaggi rispetto ai sistemi non gestiti da Google:

  • La replica sincrona dei messaggi tra zone e il tracciamento delle ricevute per singolo messaggio garantiscono una consegna affidabile a qualsiasi scala

  • L'auto-scaling e l'auto-provisioning senza partizioni eliminano la necessità di pianificazione e garantiscono che i workload siano pronti per la produzione fin dal primo giorno

  • Filtering, dead-letter delivery ed exponential backoff senza sacrificare la scalabilità aiutano a semplificare le applicazioni

  • L'integrazione nativa con Dataflow abilita un'elaborazione affidabile, espressiva ed exactly-once e l'integrazione di stream di eventi in Java, Python e SQL.

  • L'ordinamento opzionale per chiave semplifica la logica applicativa stateful senza sacrificare la scalabilità orizzontale — non sono richieste partizioni.

  • Pub/Sub Lite punta a essere l'opzione a costo più basso per l'ingestione di eventi ad alto volume. - Pub/Sub Lite offre storage zonale e ti mette in controllo della gestione della capacità.

Alcuni casi d'uso di Cloud Pub/Sub includono:

  • La stream analytics di Google rende i dati più organizzati, utili e accessibili dal momento in cui vengono generati. Costruita su Pub/Sub insieme a Dataflow e BigQuery, la soluzione di streaming effettua il provisioning delle risorse necessarie per ingerire, elaborare e analizzare volumi fluttuanti di dati in tempo reale per ottenere insight di business in tempo reale. Questo provisioning astratto riduce la complessità e rende la stream analytics accessibile sia agli analisti che agli ingegneri dei dati.

  • Pub/Sub funziona come middleware di messaggistica per l'integrazione tradizionale di servizi o come mezzo di comunicazione semplice per i moderni microservizi. Le push subscription consegnano eventi a webhook serverless su Cloud Functions, App Engine, Cloud Run o ambienti personalizzati su Google Kubernetes Engine o Compute Engine. La consegna pull a bassa latenza è disponibile quando esporre webhook non è un'opzione o per gestire in modo efficiente stream ad alto throughput.

Funzionalità

Cloud Pub/Sub offre le seguenti funzionalità:

  • At-least-once delivery: La replica sincrona dei messaggi tra zone e il tracciamento delle ricevute per singolo messaggio garantisce la consegna at-least-once a qualsiasi scala.

  • Open: API aperte e librerie client in sette linguaggi supportano deployment cross-cloud e ibridi.

  • Exactly-once processing: Dataflow supporta un'elaborazione affidabile, espressiva ed exactly-once degli stream Pub/Sub.

  • Nessun provisioning, tutto automatico: Pub/Sub non ha shard né partizioni. Basta impostare la quota, pubblicare e consumare.

  • Compliance e sicurezza: Pub/Sub è un servizio conforme a HIPAA, con controlli di accesso granulari e cifratura end-to-end.

  • Integrazioni native con Google Cloud: Sfrutta le integrazioni con molteplici servizi, come Cloud Storage, eventi di aggiornamento Gmail e Cloud Functions per il computing serverless event-driven.

  • Integrazioni di terze parti e OSS: Pub/Sub fornisce integrazioni di terze parti con Splunk e Datadog per i log, e con Striim e Informatica per l'integrazione dei dati. Sono inoltre disponibili integrazioni OSS tramite Confluent Cloud per Apache Kafka e Knative Eventing per i workload serverless basati su Kubernetes.

  • Seek e replay: Torna indietro nel backlog a qualsiasi punto nel tempo o a uno snapshot, con la possibilità di rielaborare i messaggi. Avanza veloce per scartare i dati obsoleti.

  • Dead letter topic: I dead letter topic consentono di mettere da parte per l'esame offline e il debug i messaggi che non possono essere elaborati dalle applicazioni subscriber, in modo che gli altri messaggi possano essere elaborati senza ritardi.

  • Filtering: Pub/Sub può filtrare i messaggi in base agli attributi per ridurre i volumi di consegna ai subscriber.

Prezzi

Cloud Pub/Sub è gratuito fino a 10 GB/mese di traffico; superata questa soglia, si applica una tariffa fissa di 40,00 $/TB/mese.

Riepilogo di Cloud Pub/Sub

Cloud Pub/Sub è la scelta predefinita per le applicazioni cloud-native in esecuzione su Google Cloud. In generale, i pro e i contro dello strumento possono essere riassunti con i seguenti punti:

Principali vantaggi

  • Gestito da Google. Non è necessaria alcuna configurazione complessa per usarlo.

  • Integrazioni. Cloud Pub/Sub si integra perfettamente con altri servizi Google Cloud, ad esempio Kubernetes Engine.

  • Sicuro. Cifratura end-to-end abilitata di default e conformità HIPAA integrata.

Principali svantaggi

Per ulteriori informazioni, consulta https://cloud.google.com/pubsub/docs/overview.

NATS

NATS è un message broker che consente alle applicazioni di comunicare in modo sicuro attraverso qualsiasi combinazione di cloud provider, on-premise, edge, web e mobile, e dispositivi. NATS è composto da una famiglia di prodotti open-source strettamente integrati ma che possono essere distribuiti facilmente e indipendentemente. NATS facilita la costruzione di applicazioni distribuite e fornisce API client in oltre 40 linguaggi e framework, tra cui Go, Java, JavaScript/TypeScript, Python, Ruby, Rust, C#, C e NGINX. Inoltre, lo streaming di dati in tempo reale, l'archiviazione di dati altamente resiliente e il recupero flessibile dei dati sono supportati tramite JetStream, integrato nel server NATS.

I punti salienti dello strumento possono essere riassunti come segue:

  • Con modelli di deployment flessibili usando cluster, supercluster e leaf node, ottimizza le comunicazioni per le tue esigenze di deployment specifiche. L'architettura NATS Adaptive Edge consente un adattamento perfetto alle esigenze uniche di connettere dispositivi, edge, cloud o deployment ibridi.

  • Con la vera multi-tenancy, isola e condividi i tuoi dati in modo sicuro per soddisfare pienamente le esigenze aziendali, mitigando i rischi e ottenendo un time-to-value più rapido. La sicurezza è separata dalla topologia, quindi puoi connetterti da qualsiasi punto di un deployment e NATS farà la cosa giusta.

  • Con la capacità di elaborare milioni di messaggi al secondo per server, troverai un'efficienza senza pari con NATS. Risparmia denaro minimizzando i costi cloud con un ridotto utilizzo di risorse di calcolo e rete per stream, servizi ed eventing.

  • NATS si auto-ripara e può scalare su, giù o gestire cambiamenti di topologia in qualsiasi momento senza downtime per il tuo sistema. I client non devono essere a conoscenza della topologia NATS, permettendoti di preparare il sistema per le esigenze di oggi e di domani.

Alcuni casi d'uso di NATS includono:

  • Cloud Messaging

  • Servizi (microservizi, service mesh)

  • Event/Data Streaming (observability, analytics, ML/AI)

  • Command and Control

  • IoT ed Edge

  • Telemetria / Dati di Sensori / Command and Control

  • Sostituzione o Potenziamento di Sistemi di Messaggistica Legacy

Funzionalità

NATS offre le seguenti funzionalità:

  • Copertura di Linguaggi e Piattaforme: Core NATS: 48 tipi di client noti, 11 supportati dai manutentori, 18 contribuiti dalla community. NATS Streaming: 7 tipi di client supportati dai manutentori, 4 contribuiti dalla community. I server NATS possono essere compilati su architetture supportate da Golang. NATS fornisce distribuzioni binarie.

  • Pattern Integrati: Stream e Servizi tramite pattern integrati publish/subscribe, request/reply e load-balanced queue subscriber. Il permissioning dinamico delle richieste e l'offuscamento del subject delle richieste sono supportati.

  • Garanzie di Consegna: At most once, at least once ed exactly once sono disponibili in JetStream.

  • Multi-tenancy e Condivisione: NATS supporta la vera multi-tenancy e la sicurezza decentralizzata tramite account e definizione di stream e servizi condivisi.

  • AuthN: NATS supporta TLS, credenziali NATS, NKEYS (chiavi NATS ED25519), username e password, o semplice token.

  • AuthZ: Limiti di account incluso numero di connessioni, dimensione dei messaggi, numero di import ed export. Permessi di pubblicazione e sottoscrizione a livello utente, restrizioni di connessione, restrizioni di indirizzo CIDR e restrizioni orarie.

  • Retention e Persistenza dei Messaggi: Supporta persistenza in memoria, su file e su database. I messaggi possono essere riprodotti per tempo, conteggio o numero di sequenza, e le sottoscrizioni durevoli sono supportate. Con NATS streaming, gli script possono archiviare i vecchi segmenti di log su cold storage.

  • Alta Disponibilità e Fault Tolerance: Core NATS supporta il clustering full mesh con funzionalità di auto-healing per fornire alta disponibilità ai client. NATS streaming ha server di backup warm failover con due modalità (FT e full clustering). JetStream supporta la scalabilità orizzontale con mirroring integrato.

  • Deployment: L'elemento di rete NATS (server) è un piccolo binario statico che può essere distribuito ovunque, dalle grandi istanze cloud ai dispositivi con risorse limitate come un Raspberry PI. NATS supporta l'architettura Adaptive Edge che consente deployment grandi e flessibili. Server singoli, leaf node, cluster e supercluster (cluster di cluster) possono essere combinati in qualsiasi modo per un deployment estremamente flessibile adatto a cloud, on-premise, edge e IoT. I client non sono a conoscenza della topologia e possono connettersi a qualsiasi server NATS in un deployment.

  • Monitoring: NATS supporta l'esportazione di dati di monitoraggio su Prometheus e dispone di dashboard Grafana per monitorare e configurare gli alert. Sono disponibili anche strumenti di monitoraggio per lo sviluppo come nats-top. È supportato il deployment sidecar robusto o un semplice modello connect-and-view con NATS surveyor.

  • Management: NATS separa le operazioni dalla sicurezza. La gestione di utenti e account in un deployment può essere decentralizzata e gestita tramite CLI. La configurazione del server (elemento di rete) è separata dalla sicurezza con una riga di comando e un file di configurazione che può essere ricaricato con le modifiche a runtime.

  • Integrazioni: NATS supporta WebSocket, un bridge Kafka, un bridge IBM MQ, un connettore Redis, Apache Spark, Apache Flink, CoreOS, Elastic, Elasticsearch, Prometheus, Telegraf, Logrus, Fluent Bit, Fluentd, OpenFAAS, HTTP e MQTT, e altro ancora.

Prezzi

Non ci sono costi per il deployment di NATS, tuttavia bisogna tenere in considerazione i costi delle istanze che eseguono il sistema e della manutenzione correlata (e il relativo costo in termini di tempo). Il costo finale dipende dal numero e dal tipo di istanze scelte per eseguire NATS.

Riepilogo di NATS

NATS è un message broker riconosciuto dalla CNCF. In generale, i pro e i contro dello strumento possono essere riassunti con i seguenti punti:

Principali vantaggi

  • Supporta più pattern. Stream e Servizi tramite pattern integrati publish/subscribe, request/reply e load-balanced queue subscriber. Il permissioning dinamico delle richieste e l'offuscamento del subject delle richieste sono supportati.

Principali svantaggi

  • Gestito dall'utente. Sebbene NATS possa essere distribuito come soluzione Google Cloud Marketplace, scenari più complessi come i cluster multi-regionali richiedono una quantità considerevole di configurazione fornita dall'utente, sia per NATS stesso che per le risorse correlate (ad esempio, le regole del firewall). Tuttavia, usare i chart Helm forniti da NATS per eseguirlo su Kubernetes semplifica molti aspetti del processo (vedere https://docs.nats.io/nats-on-kubernetes/nats-kubernetes)

Per ulteriori informazioni, consulta https://docs.nats.io/.

Conclusione

Cloud Pub/Sub e NATS sono entrambi ottimi message broker, collaudati in produzione. La scelta tra l'uno e l'altro dipende spesso dai requisiti e dalle preferenze specifiche. Consiglierei sempre Cloud Pub/Sub quando i requisiti lo permettono, grazie all'elevato grado di integrazione con altri prodotti Google Cloud e perché, essendo gestito da Google, Cloud Pub/Sub libera gli ingegneri dal complesso e dispendioso processo di configurazione e manutenzione di una soluzione di terze parti.