Project Hop - Een blik in de toekomst van data verwerking

Project Hop werd aangekondigd op KCM19 in november 2019. De eerste preview release is beschikbaar sinds 10 april. We hebben er al uitgebreid over gecommuniceerd op onze social media accounts, maar wat is Project Hop nu juist? In deze post overlopen we wat Project Hop is, waarom we met het project gestart zijn, en waarom wij als know.bi onze schouders mee onder Project Hop zetten. 

Wat is Project Hop?

hopZoals de slagzin van het project zegt, "Project Hop intends to explore the future of data integration", we willen de toekomst van data integration verkennen. Dat klinkt ambitieus, maar we nemen dat behoorlijk letterlijk. In het voorbije decennium hebben we enorme wijzigingen gezien in het data processing landschap, de snelle opkomst en al even snelle aftocht met stille trom van het Hadoop ecosysteem, om er maar eentje te noemen. Al deze wijzigigingen moeten opgevangen en geïntegreerd worden in je data engineering en data processing systemen. 

Los van deze puur technische uitdagingen is de levenscyclus van dataverwerkingsprocessen meer dan ooit die van een software project geworden. Robuuste en betrouwbare dataverwerking vraagt testen, een snel en flexibel proces voor het uitrollen van nieuwe versies, en een strikte scheiding tussen data en metadata.

Project Hop wil je Zwitsers zakmes voor data verwerking worden. Onze belangrijkste doelen zijn:

  • Open Source: hiermee trappen we een open deur in. De enige manier om in de huidige omstandigheden een innovatief software platform te bouwen is door te werken met open standaarden en open source software. Dat laat een open source ontwikkelingsmodel als de enige optie.
  • Visuele ontwikkeling: processen voor dataverwerking moeten eenvoudig zijn om te ontwerpen, te testen, uit te rollen en uit te voeren. Wij geloven, en hebben de ervaring, dat een visueel ontwikkelingsmodel de productiviteit van een data ontwikkelaar aanzienlijk verhoogt. Hoewel ze visueel ontworpen zijn,  kunnen alle objecten binnen Project Hop behandeld worden zoals elke ander software-element: version control, testen, CI/CD, documentatie worden allemaal met de hoogste prioriteit behandeld binnen het Hop Platform. Laat ons voor eens en voor altijd afrekenen met het vooroordeel: visueel ontwikkelde code blijft code, en kan binnen een project behandeld en verwerkt worden zoals elke andere vorm van code in een project.
  • Metadata driven: een strikte scheiding tussen data en metadata laat toe data altijd op dezelfde manier te verwerken, ongeacht de daadwerkelijke data die verwerkt wordt.
  • Runtime agnostisch: één keer ontwerpen, overal uitvoeren! We werken allemaal om problemen rond data verwerking op te lossen, niet om met Spark, Flink, AirFlow of gelijk welk ander platform te werken. We willen je in staat te stellen om een proces voor dataverwerking te ontwerpen en dat op elk moment uit te voeren op een platform naar keuze.
  • Pluggable: alle componenten in het Hop platform moeten pluggable zijn. Als software-ontwikkelaar maakt dat het eenvoudig om nieuwe functionaliteit toe te voegen. Als systeembeheerder geeft het je de volledige controle over welke functionaliteit je wil toelaten op je (productie) systemen, als data ontwikkelaar laat het je toe elke gewenste functionaliteit te selecteren. 

Waarom Project Hop?

Als gebruikers en system integrators met Kettle (Pentaho Data Integration of PDI) van het eerste uur, is er veel dat we met Kettle hebben kunnen doen om de eerder genoemde doelen te realiseren. Kettle heeft echter een geschiedenis van bijna twee decennia en een grote groep gebruikers en klanten die stabiliteit en compatibiliteit over versies heen verwachten.

Om een platform te bouwen dat klaar is voor de volgende twee decennia wilden we vooruit, niet achteruit kijken. Na lange gesprekken met Matt Casters, de initiële ontwikkelaar en voormalige lead architect van het Kettle platform, besloten we een andere weg in te slaan en afscheid te nemen van Kettle. 

We zijn gestart van Kettle (release 8.2.0.7) als basis, maar hebben een aantal drastische wijzigingen doorgevoerd: 

  • naming conventions zijn in lijn gebracht met modern platformen. Transformations zijn nu pipelines, jobs zijn nu workflows en zo verder. Dit zijn niet enkel nieuwe namen, we hebben stevige wijzigingen doorgevoerd in de code en software architectuur van Hop
  • Lenteschoonmaak en herwerken van code: we hebben een hoop verouderde code verwijderd, bergen dependencies bijgewerkt naar recentere versies  en diepgaande wijzigingen doorgevoerd in de software architectuur van Hop, onder meer om pluggable runtimes te ondersteunen, en elk aspect van het platform pluggable te maken. 
  • Documentatie is een eersterangsburger in Hop. We behandelen documentatie net als elk ander aspect van onze code (als asciidoc). Documentatie wordt per versie opgenomen in onze versies, kan bugs bevatten en zo verder.
  • Nieuwe UI: de User Interface van Kettle (Spoon) voldeed niet langer aan de eisen die we aan onze nieuwe architectuur stellen. Om een pluggable en uitbreidbare omgeving te hebben is de volledige user interface herschreven. We geloven sterk dat de nieuwe user interface flexibeler en gebruiksvriendelijker is. De tijd die nodig is voor het starten van de nieuwe Hop GUI is daarbovenop een aantal seconden en niet langer een aantal minuten.

Tenslotte, maar daarom zeker niet minder belangrijk, geloven we sterk dat open source software beschikbaar moet zijn in het publieke domein. We moeten nog een aantal stappen zetten, maar we zijn van plan binnenkort het "incubation" proces bij de Apache Software Foundation (ASF) te starten en liever vroeger dan later de Hop code aan de ASF te doneren.
Met Apache Hop zijn we ervan overtuigd dat een groot aantal organisaties baat kan hebben bij de beschikbaarheid van een eenvoudig en krachig metadata-gedreven platform.

Hop is een reis, geen bestemming.

Hop zal nooit "af" zijn. We komen dichter bij een eerste release, maar er zal altijd werk aan de winkel blijven.

Een aantal volgende stappen op onze roadmap zijn

  • Ondersteuning voor verschillende omgevingen zal je toelaten vlot en eenvoudig te wisselen tussen projecten en omgevingen (OTAP-straat). Wanneer je een nieuwe omgeving laadt zal je volledige configuratie, laatste gebruikte bestanden etc bijgewerkt worden.
  • Ondersteuning voor Pluggable Runtimes zal toelaten Hop workflows en pipelines in de Hop Gui te ontwikkelen en uit te rollen of uit te voeren in een runtime naar keuze. De eerste engine die we zullen ondersteunen is Apache Beam, waarmee je onmiddellijk je pipelines kan uitvoeren op bv. Spark, Flink, Google DataFlow
  • Met geïntegreerde testen wordt het mogelijk regression tests uit te voeren voor je workflow en pipeline code, en kan je een “golden” data definieren waartegen je je verwerkte data kan testen

We hebben nog op de langere termijn nog erg veel plannen waar we zeker over zullen communiceren wanneer de tijd daar rijp voor is.

We nodigen je in elk geval warm uit om samen met ons van Project Hop een succes te maken, en we hopen dat je er plezier aan beleeft om het project te zien groeien, zowel qua functionaliteit als qua community.

Wat houdt dit in voor mij als PDI/Kettle gebruiker?

Hop is een nieuw platform, met een eigen roadmap en een eigen plan voor de toekomst. Bij de drastische keuzes die we willen maken qua architectuur hoort onvermijdelijk dat we moeten breken met compatibiliteit met Kettle.

Dat betekent niet dat we breken met de bestaande Kettle community en onze gebruikers in de kou zullen laten staan. Binnenkort starten we met de ontwikkeling van een migratie-tool die je zal toelaten je bestaande Kettle/PDI code in Hop te importeren.

Project Hop en know.bi

Know.bi heeft sinds 2012 op tientallen internationale Pentaho projecten gewerkt. Kettle/PDI komt daarbij steeds terug als de rode draad, en maakt in zo goed als alle gevallen het grootste deel van het te verrichten werk uit. Kettle is voor ons een onmisbaar instrument, maar na bijna 20 jaar ontwikkeling werd het tijd voor een grondige opknapbeurt. Project Hop is veel meer dan een facelift voor Kettle, we willen op de solide funderingen van Kettle een nieuw platform voor data integration bouwen dat helemaal klaar is voor de toekomst.

Hoewel Hans en Bart actief meewerken aan de ontwikkeling van Project Hop blijft know.bi in de eerste plaats een system integrator en team van consultants. We zijn ervan overtuigd dat Project Hop voor ons een hefboom is om onze klanten sneller en beter te helpen, en dat is uiteindelijk waar het voor ons als dienstverlener om draait. 

Onze bestaande Pentaho en Kettle services blijven vanzelfsprekend nog een hele tijd doorlopen. Wanneer de tijd daar rijp voor is beschouwen we een volledige overstap naar Hop echter als een logische en natuurlijke evolutie. 

We hopen dat jullie ons enthousiasme rond Project Hop delen, en kijken er naar uit om samen succesvolle projecten te realiseren! 

Project Hop - Een blik in de toekomst van data integration, met know.bi

Ontdek wat Project Hop is en hoe het jou kan helpen in het realiseren van je data integration processen. 

Project Hop