Schaalbare data feed: Kafka met Terraform maakt het mogelijk

Op een grote luchthaven is het verstrekken van informatie een continu proces wat geheel geautomatiseerd verloopt. Maar hoe verhoog je de verwerkingscapaciteit zonder dat het toegenomen formaat en het groeiende volume van de berichten leidt tot scalability issues? Daar heeft Ivo Odijk van Conclusion Xforce wel een antwoord op. Ivo werkt op de luchthaven als Platform Engineer voor het Applications-team aan diverse producten: MarkLogic, Kafka en ActiveMQ. Door zijn uitgebreide kennis en ervaring op messaging gebied, ligt de focus van Ivo daarbij op de inzet van Kafka met Terraform.

6 oktober 2022   |   Blog   |   Door: Ivo Odijk

Deel

Kafka logo

Infrastructure as code

Het project op de luchthaven heeft inmiddels de MVP (minimal viable product)-fase bereikt en is zeer recent uitgerold bij de klant. Voordat het zover was, is er een compleet platform gebouwd inclusief configuratie en clusters. Dit wordt met Terraform geïnitieerd, zodat je per verandering of aanpassing kan aangeven of deze mag worden doorgevoerd of dat er nog een aanpassing nodig is. Met als grote voordeel dat je eenvoudig je eigen infrastructuur opzet zonder dat je alles zelf handmatig bij elkaar hoeft te klikken of te typen. “Dat maakt Terraform een van de leiders op Infrastructure as Code (IaC)-gebied”, aldus Ivo.

De inzet van Kafka met Terraform

De deployment van Kafka gebeurt met Terraform als cloud native fully managed service die de integratie met Kafka uitvoert. De klant ontvangt het Kafka-platform in feite als een building block dat bestaat uit vier clusters (development, test, acceptatie en productie) en topics. Dit uiteraard samen met hosting en support.

Met behulp van Terraform vult de klant zelf de benodigde topics, bijvoorbeeld voor vluchtinformatie. Deze configuratie gaat eenvoudig op basis van templates. Daarnaast komen de benodigde applicaties op het platform. In het geval van de luchthaven zijn dat applicaties die de berichten doorsturen. Het Kafka-platform zet berichten zoals vluchtinformatie om in een leesbaar formaat. Dit wordt doorgestuurd naar de subscribers via diverse presentatiemogelijkheden. Informatie uit meerdere bronnen kan via het Kafka-platform worden samengevoegd en zo dus eenvoudig als een geheel worden doorgestuurd.

Waarom Kafka?

Op de luchthaven handelde ActiveMQ voorheen de data feed af. Maar omdat het om steeds grotere berichten ging, is Kafka erbij gezet vanwege de horizontale schaalbaarheid. Kafka heeft namelijk een hoge verwerkingscapaciteit voor grotere volumes met meerdere subscribers. Een andere reden om Kafka voor messaging in te zetten, is dat deze de optie biedt om berichten een retentietijd mee te geven, zodat deze in een bepaalde frequentie worden herhaald. Een feature die ActiveMQ mist.

Kafka wordt als SaaS gehost door Azure. Deze laatste zorgt voor de onderste laag van computer services en resources. Azure zorgt als dat nodig is voor extra storage. Zo kan de performance worden gemaximaliseerd. Bovendien slaat Kafka berichten zo snel mogelijk op om deze verder te gebruiken voor batch consumptie. Dat maakt het platform schaalbaar en duurzaam.

Werken in modules

In plaats van te werken vanuit resources, is er bij dit Kafka-project gekozen om te werken in Terraform-modules. Waar je normaal gesproken een bepaald aantal resources in een file zet, bouw je nu je hele module in één directory en geef je argumenten mee. Denk aan een environment ID, cluster name, type, Azure resource group, en key vault. Zo voeg je als het ware de meerdere resources die worden gebruikt samen in één container van waaruit je deze direct kan deployen.

Meer weten?

AutomationNieuws & blogsOver onsOnze expertises