Softwareontwikkeling bij KPN

Ik deel graag mijn recente opdracht binnen het AuraPortal Team bij KPN, waar innovatie en efficiëntie hand in hand gaan. Ik heb met succes een efficiëntere ontwikkelingsaanpak geïntroduceerd met behulp van de Elsa workflow tool library. Deze aanpak heeft ons in staat gesteld om interfaces tussen verschillende systemen op te zetten, zelfs met beperkte technische kennis en middelen.

Huidige situatie

Het AuraPortal Team bij KPN werd geconfronteerd met verschillende uitdagingen met betrekking tot het beheer van interfaces. Een afnemend team leidde tot het verlies van technische kennis, terwijl de complexiteit van de verschillende interfaces toenam. Daarnaast werd de snelle time-to-market vanuit de business als een uitdaging ervaren.

Nieuwe situatie

Om deze uitdagingen aan te pakken, hebben we met succes een workflow-tool geïmplementeerd, waardoor het AuraPortal Team nu in staat is workflows te ontwikkelen zonder diepgaande technische kennis. Hierdoor is de gebruiker in staat om door middel van bouwblokken een workflow te creëren voor de afhandeling van de order. 

We hebben de complexiteit verminderd door een generieke order workflow in het server component te ontwikkelen die zorgt voor de afhandeling en validatie van binnenkomende orders van de verschillende partners. 

Dit heeft geleid tot een versnelde time-to-market vanuit de business, omdat aanpassingen in de workflow direct zichtbaar zijn. Bovendien heeft de implementatie van een CI/CD-ontwikkelstraat het ontwikkelproces gestroomlijnd en versneld, waardoor het team sneller wijzigingen in de code kan doorvoeren en implementeren.

Architectuur

Onze multi-tenant applicatie, inclusief dashboard en server-component, draait dankzij Blazor WebAssembly en .NET 8 (C#), geïntegreerd met KPN Grip voor identiteitsbeheer.

 

 

Elsa is een workflow tool die bestaat uit een dashboard en server gedeelte. Binnen het dashboard kun je de workflows beheren en de server zorgt voor de afhandeling hiervan. 

Elsa Dashboard

Deze website is gebouwd met behulp van Microsoft-technologie en draait in de webbrowser dankzij het gebruik van de Blazor-framework, specifiek de Blazor WebAssembly-technologie. Blazor WebAssembly maakt het mogelijk om C#-code rechtstreeks in de webbrowser uit te voeren met behulp van WebAssembly, waardoor een krachtige en interactieve gebruikerservaring ontstaat. 

Binnen deze website hebben we het Elsa-component geïntegreerd, dat naadloos samenwerkt met het Blazor-framework.

Door middel van het dashboard is het mogelijk om toegang te krijgen tot de workflows en kun je deze met de juiste rechten beheren. Verder biedt het dashboard toegang tot het bekijken van de workflows die zijn uitgevoerd en welke stappen zijn doorlopen.

Elsa Server

Door middel van een API-koppeling, die zorgt voor gegevensuitwisseling tussen de dashboard en de server, communiceert de website met de server. De techniek om de API-koppeling te realiseren is gebruik gemaakt van Microsoft .NET 8 (C#).

Er is binnen de tool een generieke workflow ontwikkeld in het server component die zorgt voor de afhandeling en validatie van binnenkomende orders van de verschillende partners. Het aansluiten van een nieuwe partner in de tool is hierdoor tot het minimale beperkt. Daarnaast is binnen de tool een connector ontwikkeld om gebruik te maken van nServiceBus.

Identity Provider (KPN Grip)

Als identity provider hebben wij gebruik gemaakt van KPN grip die zorgt voor authenticatie en autorisatie binnen de applicatie. Door gebruik te maken van verschillende diensten en rollen binnen het systeem wordt er toegang gegeven tot de juiste tenant.

 

Logging Provider (ELK)

 

Als logging provider hebben wij gebruik gemaakt van het ELK Stack platform. Het ELK platform bestaat uit drie hoofd componenten Elastic Search, LogStash en Kibana. Het gebruik van deze producten zorgt ervoor dat erop een gecentraliseerde manier inzicht is in de logging van de verschillende omgevingen. 

MessageBroker Provider (Amazon SQS)

Er is gekozen voor nServiceBus als middleware icm Amazon SQS vanwege verschillende redenen. Ten eerste, gezien het gebruik van Amazon als cloud provider, biedt het integreren met Amazon SQS een efficiënte oplossing. Daarnaast waren wij al bekend met nServiceBus en zijn integratie in c# wat zorgde voor een snelle implementatie.

Data Provider (PostgreSQL)

Als dataprovider hebben we bewust gekozen voor PostgreSQL, omdat deze goed aansluit bij Amazon als cloud provider. Door PostgreSQL te gebruiken binnen de Amazon Web Services (AWS) omgeving, kunnen we profiteren van een efficiënte en kosteneffectieve oplossing binnen onze cloud-infrastructuur.

D-Nitro toolset

Daarnaast hebben wij gebruik gemaakt van de D-Nitro toolset voor het opzetten van CI/CD binnen het KPN domein. We hebben hiervoor een scala aan tools gebruikt, waaronder Katka, Jenkins, Git, Helm, JFrog, CheckMarx, SonarQube, Docker en Kubernetes, waardoor we niet alleen tijd hebben bespaard, maar ook de betrouwbaarheid van onze software hebben verbeterd.

Outsystems

 

Echter, vaak merkte ik dat mijn focus meer lag op het onderhoud van de CD/CI ontwikkelstraat, de tools en het oplossen van programmeer problemen waardoor er kostbare tijd verloren ging die anders besteed had kunnen worden.
Deze ervaring heeft me geïnspireerd om me verder te verdiepen in OutSystems. 
Met een snel veranderende marktvraag, het ontwerpen van intuïtieve gebruikerservaringen en het snel reageren op veranderende marktomstandigheden zie ik dit als een essentiële stap vooruit in het leveren van meerwaarde voor onze klanten.

Laatste woord

De positieve feedback die ik heb ontvangen van Paul Vlieger bij KPN bevestigt de waarde van ons werk. Samen hebben we complexe migraties uitgevoerd en ons team diepgaande ervaring opgedaan op het gebied van de D-Nitro toolset en AWS
Het was een waar genoegen om met het AuraPortal Team bij KPN samen te werken en ik kijk ernaar uit om mijn expertise en passie voor technologie verder te delen.

Mark Barto

OUTSYSTEMS- / .NET DEVELOPER at LowQode