Kafka: historien så långt

0
291
learn-kafka.jpg

Om du vill veta om real time data bearbetning, du bör veta om Kafka. Om du vill veta om Kafka, Jay Kreps är din man. Bild: Sammanflytande

Om du är i realtid och strömmande applikationer, är chansen Apache Kafka är en viktig del av din arkitektur. Nyligen, Sammanflytande, företaget byggt av skaparna av Kafka, meddelade stöd för Kafka som en hanterad tjänst i molnet.

Det var ett bra tillfälle att ha ett långt samtal med Jay Kreps, Sammanflytande VD och grundare, om allt från framtiden för applikationsutveckling till de subtila skillnaderna i streaming Api: er och paradigm.

Oavsett om du är en streaming-entusiast eller undrar vad all uppståndelse handlar om, du kommer troligtvis hitta något av intresse här.

Vara vänlig, spola tillbaka

Låt oss ta det från början. Kreps, tillsammans med co-grundarna Neha Narkhede och Jun Rao, började arbeta på Kafka under 2008, medan de var alla LinkedIn anställda. De problem de försöker lösa hade att göra med en kontinuerlig ström av data.

“Mycket lite data är parti i naturen, säger Kreps. “Data i verkliga livet är inte produceras när solen går upp eller ner-när ditt företag är digitala data håller kommer hela tiden”.

Ganska mycket varje företag är digitalt idag, men skillnaden är att LinkedIn: s kärna är digitala och dess behov och skala redan var en storleksordning utöver det vanliga företag då. Så Kreps och hans lag slog det problemet innan andra gjorde det.

LinkedIn hade några infrastruktur för transaktionshantering på plats, plus infrastruktur för analytisk bearbetning, bestående av standard komponenter för dessa stackar, såsom Oracle, Hadoop, och Nyckel-värde-butiker.

“Vi kan göra för bearbetning i några millisekunder och analys så snabbt som vi gör idag, men i mellan saknades, säger Kreps.

LinkedIn hade en messaging lager som accepteras program byggt på toppen av infrastrukturen för att kommunicera, och det ville göra detta centrum av applikationsutveckling.

Kreps och hans team har tillbringat en del tid på att försöka bygga på toppen av både proprietär och öppen källkod meddelanden infrastruktur, men vid en viss punkt, de insåg att ingen av dessa alternativ som fungerade för dem, så de var tvungna att bita ihop och gå för att bygga sitt eget system.

Kafka kanten

Vad var det som gjorde att befintliga lösningar olämpliga för LinkedIn syfte och hur har Kafka team tackla utmaningen? Med andra ord, vad som gör Kafka speciell? Kreps säger att de fokuserar på att förbättra tre viktiga områden.

Den första var att bygga Kafka som en moderna distribuerade system. “Vanligtvis behöver du inte tänka på din messaging system som ett kluster, du tänker på det som en mäklare system. Mäklare kan ansluta till varandra och det är typ av som delas ut.”

Men egentligen distribuerade system är bättre-enklare att expandera och fungera som en service och så vidare. Vi hade meddelanden och distribueras bakgrunder, så att vi förstod hur man använder sådana system, säger Kreps.

En annan aspekt Kreps betonar är lagring. Messaging system fungerar som samordnare av information, men vad händer om vissa mottagare inte kan ta emot deras budskap?

“Du kan inte förvänta dig att alla system ska vara igång vid varje ögonblick, säger Kreps. Och när systemen är offline, deras meddelanden som behövs för att hållas kvar i butiken tills det att de kan ta emot dem.

“Saker och ting inte fungerar riktigt bra i en sådan situation, LinkedIn,” Kreps fortsätter. “Förutom det är inte bara en fråga om att få tillbaka online smidigt, det finns ett antal arkitektoniska fördelar som kommer med garanterad lagring och leverans”.

Och sedan, naturligtvis, streaming-modell — kontinuerligt flöde av meddelanden. Kreps ” team trodde på denna modell och ville hjälpa till, men de kände befintliga messaging system inte var mycket väl ställa upp för det.

kafkalogo.png

Kafka avvek från konventionella visdomen i ett antal sätt, som Kreps poäng som ger den kanten över tidigare messaging plattformar. Bild: Apache Foundation

Streaming för tillämpning utveckling

Att ström har vuxit till en flod och en hel del vatten har runnit under bron sedan dess. Idag, Kafka är en stor del av data i realtid arkitekturer känd som Lambda och Kappa. Hur stor egentligen? För Kreps det finns två sätt för mätning: Hur många företag använder sig av Kafka och hur centralt det är för dem.

Kreps påståenden som “Kafka har nära 100 procent av early adopters. Du kan gå till någon teknisk konferens och titta på folks arkitektur diagram, och du kommer att hitta Kafka det som en viktig komponent.”

Men Kafka går utöver vad som enligt Kreps:

“Vi börjar att se icke-tech företag att anta Kafka och bygga upp sin arkitektur runt det, och det är mycket spännande. Hur mycket kan världen rör sig mot streaming arkitektur och vad är chansen för att det ska hända? -Hundra procent. Det svåra är att få bollen i rullning, och bollen har börjat rulla. Tidslinjen är alltid längre tid än man tror ändå.

“Den nuvarande status är att det är stora plus och ett par nackdelar. Streaming är antogs mest där det gör mest känsla: I den finansiella sektorn, i sakernas internet — där du har stora strömmar av data. Nya projekt kommer att byggas på det sättet när vi når en nivå av mognad, enkelhet, bekvämlighet och funktion som gör den till den tipping point. När du kan ha kontinuerligt och i realtid typ av projekt utan stora kompromisser. Vi är fortfarande i färd med att göra det hända.”

Lita på

För Kreps, det handlar om att ta streaming från labbet och gör den lika enkel att använda som, säg, ÖVRIGA tjänster. En del av anledningen till att RESTEN är så framgångsrika är det faktum att det finns ramar och metoder som har lagt det i mainstream applikationsutveckling karta.

Kreps säger att det är fortfarande arbete för att få det, men “vi är på bana.” Och eftersom vi pratar om RESTEN, vad skulle du säga om du hört Kafka är på plats för att bygga din Microservices?

Inte precis det första du vill tänka på, förmodligen. Men för Kreps, exakt där de vill ha Kafka: “Om vi tittar på hur Microservices är utplacerade, det är faktiskt två olika typer,” säger han. Och han använder sig av detaljhandel som exempel.

I detaljhandeln, det är en linje av synkron interaktion som äger rum som har att göra med klientens handlingar-som visar poster, lägga till poster i korgen, och så vidare. Men det finns också åtgärder som äger rum i bakgrunden, till exempel uppdatering av lager, priser, logistik, etc.

Den första typen av insatser är synkron, medan den andra är asynkron, och Kreps hävdar att för asynkron tjänst som är kritiska (har du inte råd att släppa uppdateringar eller få dem i fel ordning, etc) en plattform som Kafka är rätt man att bygga vidare på.

“Vi hade Microservices att vidta snabba åtgärder för att stödja Api: er som använder RESTEN i LinkedIn, och RESTEN var en bra teknik att använda för dem. Kafka är inte särskilt lämpade för något som detta. Men då har du andra Microservices som är asynkron, och de utlöses av en händelse och att vidta någon form av åtgärd. Vilken typ av teknik som du bör använda för att bygga dem?

“Vi tror att nästa generation av sådana tjänster bör vara byggt på en koncerngemensam plattform snarare på per program, och abstraktion för att man bör använda stream behandling snarare än en låg nivå messaging API.”

broadcasting.jpg

Data i realtid i verkliga livet, och det är ju på plats också

Kafka vs världen

Är streaming inställd på att ta över världen då? Och när vi talar om streaming, är Kafka det enda spelet i stan?

Pro-streaming argument låter övertygande, och Kreps är inte den enda som stöder dem. Flink, till exempel, är ett stort dataunderlag som har människor som också brinner för real-time data program och strömmande, och deras åsikter och filosofi verkar komma från samma plats.

“Om du pratar med smarta tekniker i detta utrymme, svaren får du i dag bör vara ganska konsekvent, säger Kreps. “Kanske för några år sedan att du skulle få höra från folk saker som” streaming kan inte få dig ett korrekt svar, “det är inte effektivt,” det är förstörande, ” och så vidare.

Idag vet vi att det inte är sant. Ja, det finns nackdelar, men låt oss ta effektivitet, till exempel. Streaming kan vara 10 procent mindre effektivt, men som inte gör det ineffektivt.”

Det är intressant att Kreps ser Kafka i första hand som en streaming-plattform för att bygga tjänster, snarare än infrastruktur att skicka meddelanden. “Det ändras det förra året — vi lagt betydande ström processkapacitet för att Kafka. Vi har tänkt att lägga det här i flera år-nu har vi det,” Kreps anteckningar.

Så, streaming kan vara bra, men varför gå särskilt för Kafka då? Det finns andra strömmande plattformar där ute också, som Flink, Spark Streaming, eller Storm — alla Apache-open-source-projekt. Hur är Kafkas relation med dessa? Komplicerat, enligt Kreps.

Kafka ‘ s vision är att fungera som en strömmande plattform för att ansluta alla plattformar, och för att göra det, du behöver för att kunna göra tre saker, enligt Kreps. Du måste kunna ansluta till och integrera strömmar och Api: er och lagra dem, hantera dem och omvandla dem och bygga applikationer ovanpå dem.

Kreps säger att överlappning finns bara i den senaste punkten. “Nu kan vi inte bara läsa/skriva strömmar, utan också göra förändringar av dem, även komplicerade SQL-bearbetning, att gå eller att sammanföra dem. Det sätt vi tänkt och byggt det är lite annorlunda än andra plattformar.”

Hur? I Kreps’ ord:

    Inget kluster som krävs. Att bygga upp en stream program, kan du bara göra det som alla andra program-ingen anledning för en Kafka strömmar kluster. Kafka inte berör distribution, men delegerar det till ett externt lager gillar Mesos eller Kubernetes.Full integration. Kafka ska vara som en databas, där det är en behandling lager och ett lager lager och sätta på funktioner-som säkerhet, till exempel-fungerar över dem.Databas support. Majoriteten av data liv i tabeller i relationsdatabaser och Kafka stream stödjer integration med dem för att kunna ha en helhetssyn.

I typiska data i realtid arkitekturer, Kafka är inkörsport för andra streaming-plattformar, så nu kan du se varför saker och ting blir komplicerade. Kreps säger att de är glad för att arbeta med människor med Kafka antingen som en gateway eller på egen hand, och de ser till integration med andra plattformar fungerar.

På tal om integration, vad om Strålen stöd då? Balken API är ett försök backas upp av Google för att förena streaming över plattformar. Kreps, men säger att de inte ser “en ton av efterfrågan” för det och det är inte i deras omedelbara planer om inte Balken lägger till stöd för tabeller.

copy-of-2016429groupfounders56.jpg

När Kafka laget började arbeta, att bygga upp ett företag var inte på sina sinnen, men världsherravälde var. Bild: Sammanflytande.

Världsherravälde? In

Så, låt oss sammanfatta. Realtid bearbetning av data är på uppgång. Kafka är en viktig del av data i realtid arkitekturer. Och nu gäller det att utöka dess räckvidd till att göra vad andra delar av arkitektur gör, och det vill etablera sig som en naturlig utveckling av plattformen. Och det kommer moln och ta på Amazon.

Låter det som en plan för världsherravälde för dig?

Kreps säger att de har en stor vision för Kafka-att vara det centrala nervsystemet för företag. “När vi började jobba på det, vi var inte tänker på att bygga ett företag eller Börsintroduktioner och liknande, men världsherravälde var med i vår lista.”

Var Kreps och hans team rätt personer på rätt plats vid rätt tidpunkt? Alla övriga organisationer LinkedIn magnitud var inför liknande utmaningar och att använda liknande system internt på samma gång, så varför dem? Kanske är det en kombination av inramning, strategi och vision.

“Detta problem inte ser mycket sexig från utsidan på den tiden,” Kreps påminner om. “Databaser var cool, Hadoop var cool, men att flytta data och meddelanden var mycket häftig. Folk frågade varför vi arbetar på att saker och inte göra något annat.

“Andra organisationer var att titta på det som att lösa problem som hur man sammanlagda loggfiler eller hur man ska hantera messaging system. Så att de skulle sluta med relativt låg-end-lösningar, även om deras omfattning var liknande.” Plus, de gjorde inte gå öppen källkod. Så, vad nu?

“När vi startade företaget var det en stor efterfrågan för en mjukvara som erbjuder”, säger Kreps. “Vi började med att, som tillät oss att bygga många av de verktyg som människor behöver för att börja använda Kafka och att lägga till funktioner för att driva på införandet.

Vi följer nu upp med en SaaS-erbjudande, som vi har använt internt för ett tag, så vi är verkligen glada att göra den tillgänglig för världen. Det är ett bättre sätt för oss att erbjuda våra tjänster, människor som kör Kafka i molnet få licensiering och support och drift sköts av oss.

Responsen har varit överväldigande, och det är ett viktigt steg för alla företag — om du inte har möjlighet att göra denna övergång, du kan inte existera i 10 år från nu. Plus, vi kan inte vara kräsen om vårt erbjudande-det är svårare som en start, men vi vill bara erbjuda det som folk vill använda dem.”

Who really owns your Internet of Things data?

Vem som egentligen äger din Internet of Things data?

I en värld där fler och fler objekt kommer online och leverantörer får delta i leveranskedjan, hur kan du hålla koll på vad som är ditt och vad är inte?