
Se vuole conoscere in tempo reale di elaborazione dei dati, si dovrebbe sapere su Kafka. Se volete sapere di Kafka, Jay Kreps è il tuo uomo. Immagine: Confluenti
Se sono in tempo reale di dati e applicazioni per lo streaming, le probabilità sono Apache Kafka è un componente chiave dell’architettura. Recentemente, Confluenti, l’azienda ha costruito dai creatori di Kafka, ha annunciato il supporto per Kafka come un servizio gestito nel cloud.
Che è stata una grande opportunità per avere un lungo colloquio con Jay Kreps, Confluenti CEO e co-fondatore, su ciò che il futuro dello sviluppo di applicazioni per le sottili differenze in streaming Api e paradigmi.
Se siete in streaming appassionato o chiedendo che cosa tutto questo trambusto è di circa, sarà più probabile trovare qualcosa di interessante qui.
Be kind rewind
Cominciamo dall’inizio. Kreps, insieme con il co-fondatori Neha Narkhede e Giu Rao, ha iniziato a lavorare su Kafka nel 2008, mentre tutti erano LinkedIn dipendenti. Il problema si sta cercando di risolvere aveva a che fare con flussi continui di dati.
“Molto poco dei dati è il lotto in natura”, spiega Kreps. “I dati nella vita reale non è prodotto quando il sole va su o giù, quando il vostro business è in dati digitali continua a venire per tutto il tempo”.
Praticamente ogni azienda è digitale di oggi, ma la differenza è LinkedIn core è digitale e dei suoi bisogni e della misura erano già un ordine di grandezza al di là di quella dei normali commerci. Così Kreps e il suo team a colpire il problema, prima degli altri.
LinkedIn avuto qualche infrastruttura per l’elaborazione delle transazioni in atto, più infrastrutture per l’elaborazione analitica, composti da elementi standard per quelle pile, come Oracle, Hadoop, e Key-value store.
“Si poteva fare di elaborazione in pochi millisecondi e analisi veloce come facciamo noi oggi, ma in-tra mancava”, dice Kreps.
LinkedIn avuto una messaggistica strato di applicazioni che permettevano costruito sulla cima di quella infrastruttura per la comunicazione, e si è voluto fare questo il centro di sviluppo di applicazioni.
Kreps e il suo team hanno trascorso qualche tempo a cercare di costruire, sia proprietari che open-source per l’infrastruttura di messaggistica, ma a un certo punto, si sono accorti che nessuna di queste opzioni lavorato per loro, così hanno dovuto ingoiare il rospo e andare per la costruzione di un proprio sistema.
Kafka bordo
Cosa è stato che ha fatto di soluzioni esistenti non idonei per LinkedIn scopo e come ha fatto il Kafka squadra di affrontare la sfida? In altre parole, ciò che rende Kafka speciale? Kreps dice che si sono concentrati sul miglioramento della tre aree chiave.
Il primo è stato la costruzione di Kafka, di un moderno sistema distribuito. “In genere non pensi del sistema di messaggistica come cluster, pensare di esso come un broker di sistema. Broker in grado di connettersi tra loro e distribuiti.”
Ma in realtà i sistemi distribuiti sono meglio è, più facile da espandere e funzionare come un servizio e così via. Abbiamo avuto la messaggistica e distribuito sfondi, così abbiamo capito come il funzionamento di tali sistemi,” dice Kreps.
Un altro aspetto Kreps sottolinea è l’archiviazione. Sistemi di messaggistica agire come gli spedizionieri di informazioni, ma cosa succede se alcuni destinatari non possono ricevere i loro messaggi?
“Non si può pretendere di ogni sistema sia in esecuzione in ogni momento”, dice Kreps. E quando i sistemi sono offline, i loro messaggi necessari per essere conservati fino a che non possono ricevere.
“Le cose non stavano andando molto bene in queste situazioni, LinkedIn,” Kreps continua. “Oltre a questo, non è solo una questione di tornare online senza problemi, ci sono un certo numero di benefici architettoniche che vengono con la garanzia di stoccaggio e di consegna”.
E poi, naturalmente, il modello di flusso — il flusso continuo di messaggi. Kreps la squadra ha creduto in questo modello e ha voluto sostenere, ma si sono sentiti sistemi di messaggistica esistenti non erano molto ben impostato.
Kafka partì dalla saggezza convenzionale in un numero di modi, che Kreps crediti di dare una marcia in più già esistenti piattaforme di messaggistica. Immagine: Apache Foundation
Streaming per il mainstream di sviluppo di applicazioni
Tale flusso è cresciuto a un fiume e un sacco di acqua è volato sotto i ponti da allora. Oggi, Kafka è una parte importante di dati in tempo reale architetture noto come Lambda e Kappa. Quanto è grande esattamente? Per Kreps ci sono due modi per misurare questo: Come molte aziende utilizzano Kafka e quanto è per loro.
Kreps sostiene che “Kafka ha quasi il 100% di early adopters. Si può andare a qualsiasi conferenza tecnica e guardare la gente architettura di diagrammi, e troverete Kafka c’è come una componente chiave.”
Ma Kafka si sta muovendo al di là che secondo Kreps:
“Stiamo iniziando a vedere i non-tech adozione di Kafka e di costruire la loro architettura intorno ad esso, e che è molto eccitante. Quanto può muovere il mondo verso streaming di architettura e qual è la probabilità che questo accada? Al cento per cento. La parte più difficile è quello di ottenere la palla, e la palla ha iniziato a rotazione. La linea temporale è sempre più di quanto si pensi però.
“Lo stato attuale è che ci sono grandi vantaggi e un paio di cons. Lo Streaming è adottato più dove si rende il senso più: Nel settore finanziario, nell’IoT-ovunque si dispone di grandi flussi di dati. Nuovi progetti stanno per essere costruito in quel modo una volta che si raggiunge un livello di maturità, la semplicità, la praticità e la funzionalità che lo rende un punto di svolta. Una volta che si può avere in continuo e in tempo reale natura dei progetti, senza grandi compromessi. Siamo ancora nel processo di fare che questo accada.”
Il RIPOSO è assicurato
Per Kreps, è tutta una questione di prendere in streaming dal laboratorio, e la rendono facile da utilizzare, per esempio, i servizi REST. Parte della ragione per il RESTO è così tanto successo è il fatto che ci sono i quadri e le metodologie che hanno messo nel mainstream di sviluppo di applicazioni mappa.
Kreps dice che c’è ancora lavoro per arrivare, ma “siamo su quella traiettoria.” E poiché stiamo parlando di RIPOSO, cosa diresti se avete sentito parlare di Kafka è il luogo per costruire il tuo Microservices?
Non esattamente il primo luogo si dovrebbe pensare, probabilmente. Ma per Kreps, questo esattamente dove si desidera che Kafka: “Se guardiamo a come Microservices sono distribuiti, ci sono in realtà due diversi tipi di”, dice. E lui usa vendita al dettaglio come un esempio.
Nel dettaglio, c’è una linea di interazione sincrona, che ha a che fare con azioni di client — mostrare gli elementi, aggiungendo gli articoli al carrello, e così via. Ma ci sono anche le azioni che si svolgono in background, come ad esempio l’aggiornamento di magazzino, i prezzi, logistica, etc.
Il primo tipo di azioni sono sincroni, mentre il secondo è asincrona, e Kreps sostiene che per i servizi asincroni che sono critici (che non può permettersi di rilasciare aggiornamenti o farli nell’ordine sbagliato, ecc), una piattaforma come Kafka è la persona giusta per costruire.
“Abbiamo avuto Microservices che fare veloci azioni di supporto per le Api che utilizzano RESTO in LinkedIn, e il RESTO era una buona tecnologia per coloro che. Kafka non è particolarmente adatto per qualcosa di simile a questo. Ma poi ci sono altri Microservices che sono asincrone, e sono innescati da un evento e prendere qualche tipo di azione. Che tipo di tecnologia da utilizzare per costruire quelle?
“Noi crediamo che la prossima generazione di tali servizi dovrebbe essere costruita su una piattaforma piuttosto in base all’applicazione, e l’astrazione da utilizzare deve essere flusso di elaborazione piuttosto che un basso livello di messaging API.”
Dati in tempo reale, nella vita reale, e tutto il luogo anche
Kafka vs il mondo
Streaming insieme per conquistare il mondo? E quando si parla di streaming, Kafka è l’unico gioco in città?
Pro-streaming argomenti suono convincente, e Kreps non è l’unico che li supporta. Flink, per esempio, è una grande piattaforma per i dati che ha la gente che sono anche un appassionato di dati in tempo reale e applicazioni di streaming, e il loro punto di vista e filosofia sembrano provenire dallo stesso luogo.
“Se si parla di smart tecnologi in questo spazio, le risposte vi saranno mostrati oggi dovrebbe essere abbastanza coerente”, spiega Kreps. “Forse un paio di anni fa si sarebbe sentito da persone, cose come “streaming non può ottenere la risposta corretta’ “non efficiente”, ” è lossy,’ e così via.
Oggi, noi sappiamo che non è vero. Sì, ci sono dei compromessi, ma diamo efficienza energetica, per esempio. Lo Streaming può essere del 10 per cento meno efficiente, ma che non lo rende inefficiente.”
È interessante che Kreps vede Kafka principalmente come piattaforma di streaming per costruire servizi, piuttosto che le infrastrutture per l’invio di messaggi. “Che ha cambiato l’anno scorso, abbiamo aggiunto notevole flusso di capacità di elaborazione di Kafka. Abbiamo pensato di aggiungere questo per anni, e ora siamo” Kreps note.
Così, streaming può essere grande, ma perché andare specificamente per Kafka? Ci sono altre piattaforme di streaming anche lì, come Flink, Scintilla in Streaming, o Tempesta — tutte Apache open-source. Come è Kafka rapporto con questi? Complicato, secondo Kreps.
Kafka visione è di servire come una piattaforma di streaming per collegare tutte le piattaforme, e per fare questo, è necessario essere in grado di fare tre cose, come per Kreps. Devi essere in grado di collegare e integrare i flussi e le Api e della loro conservazione, per la loro elaborazione, e di trasformare e costruire applicazioni su di loro.
Kreps dice che esiste una sovrapposizione solo nell’ultimo punto. “Ora siamo in grado non solo di leggere/scrivere i flussi, ma anche di fare trasformazioni su di loro, anche complesse SQL elaborazione, l’unione e aggregazione. Il modo in cui abbiamo immaginato e costruito è un po ‘ diversa rispetto alle altre piattaforme.”
Come? In Kreps parole:
- No cluster richiesto. Per costruire un flusso di applicazione, basta farlo come qualsiasi altra applicazione-nessuna necessità di un Kafka flussi di cluster. Kafka non toccare la distribuzione, ma i delegati di uno strato esterno piace Mesos o Kubernetes.La piena integrazione. Kafka dovrebbe essere come un database, dove c’è un livello di elaborazione e di un livello di archiviazione e di accendere le caratteristiche-come la sicurezza, per esempio — opere tra di loro.Supporto di Database. La maggior parte dei dati vive in tabelle di database relazionali, e Kafka supporta il flusso di integrazione con loro per essere in grado di avere una visione olistica.
In tipico di dati in tempo reale architetture, Kafka è il punto di ingresso per altre piattaforme di streaming, così ora si capisce il perché le cose sono sempre complicate. Kreps dice che sono felice di lavorare con persone che utilizzano Kafka come un gateway o di propria iniziativa, e assicurarsi che l’integrazione con altre piattaforme opere.
Parlando di integrazione, che cosa circa la Trave di supporto quindi? Il Fascio di API è uno sforzo sostenuto da Google di unificare in streaming attraverso le piattaforme. Kreps, tuttavia, dice di non vedere “una tonnellata di domanda” e non è nei loro piani immediati salvo Fascio aggiunge il supporto per le tabelle.
Quando Kafka squadra ha iniziato a lavorare, la costruzione di una società non era sulla loro mente, ma la dominazione del mondo. Immagine: Confluenti.
La dominazione del mondo? Controllare
Quindi, ricapitoliamo. In tempo reale di elaborazione dei dati è in aumento. Kafka è un componente chiave di dati in tempo reale architetture. E ‘ ora di ampliare la sua portata a fare quello che in altre parti dell’architettura che sta facendo, e si vuole affermarsi come una comune piattaforma di sviluppo. E va in cloud e di prendere su Amazon.
Fa che il suono come un piano per la dominazione del mondo?
Kreps dice che hanno una grande visione per Kafka-il sistema nervoso centrale per le aziende. “Quando abbiamo iniziato a lavorare su di esso, noi non stavamo pensando di costruire una società o in borsa e il come, ma il dominio del mondo è stato nel nostro elenco.”
Sono stati Kreps e il suo team le persone giuste al posto giusto al momento giusto? Tutte le altre organizzazioni di LinkedIn grandezza erano di fronte a sfide simili e l’utilizzo di simili sistemi internamente allo stesso tempo, quindi perché? Forse è una combinazione di inquadratura, di strategia e di visione.
“Questo problema non sembrare molto sexy da esterno a quel tempo,” Kreps ricorda. “I database sono fresco, Hadoop era fresco, ma lo spostamento di dati e di messaggistica è stato molto scortese. Persone sono state chiedendo perché stiamo lavorando su quella roba e non si fa qualcos’altro.
“Le altre organizzazioni sono state guardando come risolvere problemi come il modo di aggregare i file di log o come la gestione di sistemi di messaggistica. Così finiranno per uso relativamente basso soluzioni, anche se la loro dimensione è simile.” Inoltre, essi non open source. Così, che cosa ora?
“Quando abbiamo iniziato la società, c’era una grande richiesta di un’offerta software”, dice Kreps. “Abbiamo iniziato con quello, che ci ha permesso di costruire molti degli strumenti necessari per iniziare a utilizzare Kafka e di aggiungere funzionalità di auto adozione.
Siamo ora in seguito con un SaaS, che abbiamo utilizzato internamente per un po’, quindi siamo davvero entusiasti di rendere disponibile al mondo. È un modo migliore per noi di offrire un servizio, persone in esecuzione di Kafka nel cloud ottenere licenze e supporto e il loro funzionamento è gestito da noi.
La risposta è stata travolgente, ed è un passo essenziale per qualsiasi attività se non siete in grado di effettuare la transizione, non esiste in 10 anni. Inoltre, non si può essere schizzinosi riguardo la nostra offerta-è più difficile come una startup, ma vogliamo solo offrire le cose il modo in cui la gente desidera utilizzarli.”
Chi davvero possiede il vostro Internet delle Cose?
In un mondo dove sempre di più gli oggetti sono in linea e i fornitori coinvolti nella catena di fornitura, come si può tenere traccia di ciò che è tuo e ciò che non lo è?