De Etesian Strava Challenge: samen bewegen voor een beter doel.

Middenin de uitdagingen van de Covid-pandemie bedachten we bij Etesian een initiatief dat niet alleen ons personeel in beweging hield, maar ook een gevoel van verbondenheid en welzijn creëerde: de Etesian Strava Challenge. Deze unieke uitdaging, exclusief voor het bevlogen personeel van Etesian, is uitgegroeid tot een bron van inspiratie en gezamenlijke inspanning.

Eenvoudige regels, grote resultaten

Wat deze interne uitdaging zo bijzonder maakt, zijn de eenvoudige regels die het voor al onze teamleden toegankelijk maken. Deelnemers verdienen één punt voor elke dag waarop ze minstens 20 minuten aan activiteit besteden. Hierbij geldt: één punt per dag, waardoor de uitdaging haalbaar is voor iedereen, ongeacht hun dagelijkse schema’s.

Daarnaast voegen we een extra dimensie toe met periodieke bonusuitdagingen. Deze uitdagingen variëren en bieden teamleden de kans om extra punten te verdienen, van 0 tot 5. Creativiteit en betrokkenheid worden beloond, waardoor elke periode een opwindende nieuwe draai aan de uitdaging krijgt.

Het doel achter de beweging

Bij Etesian geloven we sterk in het bevorderen van welzijn, zowel fysiek als mentaal. De Etesian Strava Challenge is niet alleen een wedstrijd; het is een gezamenlijke inspanning om gezondheid en positiviteit te bevorderen onder ons eigen team. Beweging is een krachtige manier om stress te verminderen, energie te verhogen en een gevoel van prestatie te ervaren.

Het goede doel aspect

Een van de meest opwindende aspecten van de Etesian Strava Challenge is de mogelijkheid om terug te geven. Deelnemers die de eerste en tweede plaats bereiken, hebben het voorrecht om een goed doel te kiezen waar Etesian geld aan zal doneren. Dit voegt een extra laag van betekenis toe aan de uitdaging en motiveert teamleden om niet alleen voor zichzelf, maar ook voor anderen te bewegen.

Iedereen heeft een kans

Bij Etesian geloven we in gelijke kansen. Om ervoor te zorgen dat elke medewerker de kans heeft om te winnen, hebben we een regel ingevoerd waarbij teamleden slechts één keer per 10 periodes kunnen winnen. Dit creëert een eerlijk speelveld en moedigt een gezonde competitie aan.

Doe mee en verander samen levens

Of je nu een doorgewinterde atleet bent of net begint met bewegen, als Etesian-teamlid nodigen we je uit om deel te nemen aan de Etesian Strava Challenge. Het gaat niet alleen om winnen, maar ook om de positieve impact die we samen kunnen hebben op onze gezondheid en de wereld om ons heen.

Doe mee, beweeg, en laten we samen levens veranderen!

Integrate 2022

Alweer een week of twee geleden vond Integrate 2022 plaats. Het is de grootste integratieconferentie die gericht is op integratie met Microsoft-producten en dan met name integratie met behulp van Azure. Het was de tiende keer dat de conferentie plaatsvond. Na twee lastige jaren, waarbij het alleen online plaatsvond, net als alle andere conferenties, kwamen er dit jaar weer een slordige 250 integratie-developers en architecten van over de hele wereld bij elkaar in Londen. Daarnaast volgden er ook nog meer dan 500 deelnemers Integrate 2022 op afstand via een livestream.

Wat vooral duidelijk werd is dat Microsoft nog steeds vol inzet op integratie in de cloud met behulp van Azure Integration Services. Maar het snapt ook dat het voorlopig nog een hybride wereld zal blijven.

Live in Londen versus streamend thuis

Rob Fox volgde Integrate vanuit Londen zelf, terwijl Sjoerd Alaerds de conferentie online volgde. Het werd ons al snel duidelijk dat het aanwezig zijn op het event zelf meerwaarde heeft.

1) Vragen worden direct beantwoord

Op locatie kun je direct je vragen stellen aan de juiste personen, bijvoorbeeld de spreker zelf. Online is er een chatforum opgezet, maar deze werd voornamelijk gebruikt om problemen met de stream aan te duiden. Je kon er ook vragen stellen aan de sprekers, maar deze bleven helaas (live) onbeantwoord. In plaats daarvan werden ze verzameld in een centrale blog wachtend op antwoord.

2) Aandacht erbij houden

In een volle zaal houd je toch beter je aandacht bij het verhaal dat verteld wordt dan dan thuis. Een plek waar je vaak veel afleiding hebt. Bovendien kun je de aandacht vestigen daar waar jij waarde aan hecht. Of het nu de spreker of de afgebeelde sheets of demo zijn. Helaas werd de keuze voor de mensen die via de stream keken voor hen gemaakt en was in het begin van de conferentie vaak alleen de spreker in beeld.

3) Storingen heb je niet

In Londen heb je dan ook nog eens geen last van storingen. Hoe anders is dat als je op afstand meekijkt. Ook in 2022 en na twee jaar een streamend event waren er nog steeds problemen met de stream en de verbinding.

4) Het sociale aspect

Behalve informatie-uitwisseling wordt het sociale aspect van zo’n evenement wel eens onderschat. Na twee jaar binnen zitten is het goed om weer mensen te kunnen ontmoeten.

Het uitwisselen van ideeën met gelijkgestemden, de organisatie en Microsoft zelf werkt inspirerend. Zeker als het mensen zijn die zich buiten je eigen bubbel bevinden. Het geeft je simpelweg nieuwe inzichten.

En na een dag veel luisteren trek je samen met een groep mensen de stad in om samen wat te eten en het ook eens over wat anders te hebben dan werk of Covid. Ondanks dat je geleefd wordt, kom je frisser thuis dan je vertrok met allerlei ideeën.

De conferentie

De eerste dag werd traditioneel geheel gevuld door Microsoft en de nodige nieuwigheden en aankondigingen. Daarbij viel op dat Microsoft veel feedback vroeg van haar klanten. Voor ieder product zijn er surveys die ingevuld kunnen worden, zodat de verschillende productteams weten of ze op de goede weg zijn of moeten bijsturen.

De tweede en derde dag kwamen veel meer praktijkvoorbeelden aan bod. Ze werden vooral gevuld door mensen uit het veld, de professionals, meestal Microsoft MVPs (Most Valuable Professionals). Deze blogpost zal vooral inzoomen op wat Microsoft te melden had, maar daarmee willen we de professionals vooral niet tekort doen. Ook de praktijkvoorbeelden zijn belangrijk om anderen te inspireren.

Integratie is hot

Integratie is hot en het zal de komende jaren alleen maar meer worden. Dat zegt Gartner. Ze verwachten een verdubbeling van de integratiemarkt tegen 2025. En dat is logisch. In de steeds meer interconnected wereld, moeten steeds meer systemen met elkaar kunnen communiceren.

Voor deze groei is het belangrijk om de juiste tools te kiezen. Voor Microsoft zit de toekomst in de cloud. Onder de noemer Azure Integration Services (AIS) bundelt Microsoft de verschillende services die het aanbiedt voor integratie in Azure. Denk hierbij aan Logic Apps, Service Bus, Event Grid en Api Management.

Integratie in Azure

Een van de grootste problemen in Azure is het managen van al je integraties die vaak meerdere services gebruiken. Bij veel grote klanten zijn er honderden en honderden integraties. Dat wordt in Azure heel lastig te managen. In BizTalk was dit een stuk gemakkelijker.

Kovai heeft daarvoor Serverless 360 in het leven geroepen, een tool waarmee het managen van integraties in Azure een stuk beter te doen is. Nu steekt Microsoft hand in eigen boezem en gaat er ook mee aan de slag. Het zal er nog niet heel snel aankomen, maar er wordt gewerkt aan een andere view in Azure, speciaal voor integraties.

Logic Apps

Sjoerd

Een van de belangrijkste integratieservices in Azure zijn Logic Apps. Het is daarom niet raar dat Microsoft er het afgelopen jaar weer flink in geïnvesteerd heeft. Verschillende problemen zijn aangepakt en er zijn uiteraard nieuwe features toegevoegd. Hieronder een overzicht van alle productupdates die het afgelopen jaar zijn doorgevoerd.

Naast de verbeteringen die de afgelopen tijd doorgevoerd zijn, is er ook een roadmap voor 2022 gedeeld. Men kijkt daarbij niet alleen naar nieuwe features, maar ook de designer wordt aangepakt. En dat is nodig. Er zijn toch wel wat tekortkomingen in de Designer voor developers waarvoor workarounds nodig zijn. Hieronder de roadmap voor 2022.

Zelf word ik het meest enthousiast van de Data mapper-functionaliteiten. In de integratiewereld is het vertalen van de data een van de belangrijkste onderdelen binnen ons vak. Door slimmere tools en technieken toegereikt te krijgen, worden deze stappen alleen maar makkelijker

Service Bus, Event Hubs & Stream Analytics

Rob

Service Bus was een van de eerste services die Microsoft ooit aanbood in Azure. Dat gaat terug tot 2008, alweer 14 jaar geleden. Maar dat wil niet zeggen dat men stil heeft gezeten. Behalve een nieuwe built-in portal om de berichten op je queues te kunnen managen, ligt de focus de laatste jaren en in de nabije toekomst met name op events. Dat wil niet zeggen dat queuing een “outdated” technologie is. Alles heeft zijn plek in de moderne architectuur. Queues garanderen onder andere vaak volgorde, waar event hubs dat niet doet.

Event Streaming is not “modern” and queues are not “traditional”. Both are patterns of state-of-the-art messaging infrastructures.

Service Bus

Voor Service Bus zijn er de laatste tijd wat updates uitgekomen:

  • Minimum TLS version
    De minimale default TLS-versie is voortaan 1.2, maar je kunt het terugzetten naar oudere versies als je applicaties nog geen gebruik kunnen maken van TLS 1.2.
  • Service Bus Explorer in de portal
    Voor ServiceBus is deze “Quality of Life”-update voor developers en support net uitgekomen in preview.
  • SAS token disablen
    Je kunt nu afdwingen dat je Service Bus alleen gebruikmaakt van Azure Active Directory. Een belangrijke security update.
  • JMS & large messages
    Je kunt nu JMS (Java Message Service) gebruiken om met Service Bus te communiceren. Je hoeft hierdoor bijna niets meer te doen om een applicatie die van JMS gebruikmaakt aan te sluiten op Service Bus.

Maar uiteraard zit het team niet stil en komen er ook nog enkele interessante updates uit de komende tijd:

  • Scale sets
    Je kunt partities maken om tot 256 messaging units te schalen (het waren er 16), waardoor de throughput vele malen groter wordt. De volgorde van berichten kan dan echter niet meer gegarandeerd worden.
  • Consistent low latency queues
    De storage van een queue gaat, net als bij Event Hubs, “lokaal” bij de Service Bus gehost worden. Dat betekent dat de storagelaag van Azure Storage verdwijnt en er minder latency is.
  • Queue purge vanaf een bepaalde tijd
    Ingebouwd in de nieuwe Service Bus Explorer.
  • Durable terminus
    Verbindingen met o.a. containers zullen hierdoor stabieler worden.

Event Hubs

Dat Event Hubs snel is, wisten we eigenlijk al. Kafka is daarbij een van de grootste concurrenten. Wat Microsoft daarbij slim doet is ervoor zorgen dat Kafka-gebruikers gemakkelijk aan kunnen sluiten op Event Hubs op dezelfde manier als ze gewend zijn. Er wordt zelfs gewerkt aan een beleving in de portal die nagenoeg hetzelfde is als de “Kafka-experience”.

Volgens de data van Microsoft zou Event Hubs wel consistenter zijn dan Kafka. Het is vooral consistenter in snelheid en throughput.

Heel lang wordt er echter niet stilgestaan bij Event Hubs. Men wil vooral door met Stream Analytics.

De meest recente toevoeging voor Event Hubs is Self Service dedicated clusters, waardoor je nu zelf je clusters kan upscalen en downscalen.

De roadmap van Event Hubs ziet er als volgt uit:

Stream Analytics

Met Stream Analytics kun je realtime analyses uitvoeren op gestreamde data. Je maakt onder andere gebruik van een vertrouwde SQL-achtige taal om deze analyses uit te kunnen voeren die ook nog eens uit te breiden is met behulp van C# en Javascript. Deze analyses kunnen onder andere gebruikt worden om anomalies in je systemen snel te ontdekken.

Stream Analytics is iets waar Microsoft duidelijk op tijd bij was. Microsoft staat samen met Google op eenzame hoogte volgens Forrester. Het is dan ook niet zo raar dat men hier meer over te vertellen heeft dan over Event Hubs.

Het is dan ook niet voor niets dat er veel nieuwe toevoegingen te zien zijn bij Stream Analytics, zoals het automatisch schalen en een mogelijkheid om geen code te gebruiken in een editor.

En ook voor de komende tijd zit je gebakken. Onder andere de performance krijgt een behoorlijke boost.

Power Automate

Rob

En dan is er nog het Power Platform van Microsoft met o.a. Power Automate. Tools voor de “citizen developers”. Het moet werknemers binnen een bedrijf de mogelijkheid bieden om zelf kleine taken te kunnen automatiseren, zonder dat er bijvoorbeeld een heel supportmodel voor opgetuigd hoeft te worden.

De sessie gaat vooral over het feit dat Azure Integration Services en het Power Platform elkaar aan moeten vullen. Het allermoeilijkste werk wordt gedaan in Azure Integration Services, waarbij bijvoorbeeld een systeem ontsloten wordt met behulp van API’s in API management. Vervolgens kan iemand met behulp van Power Apps of Power Automate gebruik maken van die API’s en de data gebruiken voor het automatiseren van de kleinere, vaak afdelingsspecifieke, taken.

Bicep script en Liquid maps

Twee zaken waar we nog even kort bij stil willen staan zijn Bicep en Liquid maps. Met name Bicep kwam heel veel voorbij. Het is een nieuwe manier van Microsoft om gemakkelijk je services te kunnen deployen naar Azure. Daarnaast kwamen ook soms nog Liquid Maps voorbij, waarvan ook hieronder nog een voorbeeldje te vinden is.

Bicep

Rob

Bicep is een Domain Specific Language (DSL) om Azure infrastructuur deployments te automatiseren, bijvoorbeeld voor het gebruik in je CICD pipelines. De taal verschilt van de ARM (JSON) templates in meerdere opzichten. Het duidelijkste verschil is de overzichtelijkere en gebruiksvriendelijkere code. Maar ook andere zaken zoals idempotentie, een orchestrator die automatisch de volgorde bepaalt en het feit dat je de deployment in aparte kleine modules kan schrijven, zijn allemaal erg handig.

Ik gebruikte het nog niet en gebruikte vooral Terraform, maar ik ga nu in ieder geval met Bicep aan de slag.

Hieronder een voorbeeld van een Bicep file, met daaronder de veel grotere JSON template.

Bicep

param location string = resourceGroup().location
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

JSON Template

{
  "$schema": "<https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#>",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('toylaunch{0}', uniqueString(resourceGroup().id))]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

Liquid Maps

Sjoerd

Ook in cloudintegratie is data mapping belangrijk, zodat de systemen onafhankelijk van elkaar blijven. Tevens kun je met data mapping ook “Messaging pattern” implementeren.

In de cloud zijn er verschillende mogelijkheden om de data mapping voor elkaar te krijgen

  • BizTalk maps (geconverteerd naar XSL 1.0)
  • XSLT mapping (2.0, 3.0)
  • Liquid Template

Waarbij BizTalk maps en XSLT mapping het beste werkt voor XML to XML, is Liquid mogelijk voor JSON, XML en text (oa. CSV). Bovenstaande mapping methodes zijn niet overal toe te passen, zo is bijvoorbeeld de BizTalk map alleen mogelijk in een Logic App, terwijl XSLT mapping en Liquid Template mogelijk zijn in zowel een Logic App als in Azure Function te gebruiken zijn.

Liquid is een data mapper gebaseerd op een template, zoals hieronder in het voorbeeld goed te zien is, is dat de JSON al wordt opgebouwd. Tussen de “{{}}” worden de parameters gevuld welke uitgelezen dienen te worden vanuit de bron. Wat je daarmee als voordeel hebt, is dat je gelijk ziet hoe het resultaat van de mapping eruit komt te zien.

Liquid map template

{%- assign deviceList = content.devices | Split: ', ' -%}

{
   "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}",
   "firstNameUpperCase": "{{content.firstName | Upcase}}",
   "phoneAreaCode": "{{content.phone | Slice: 1, 3}}",
   "devices" : [
      {%- for device in deviceList -%}
         {%- if forloop.Last == true -%}
         "{{device}}"
         {%- else -%}
         "{{device}}",
         {%- endif -%}
      {%- endfor -%}
   ]
}

Etesian op weg naar landelijke dekking met 50 medewerkers

Sinds mei 2022 heeft Etesian, een IT-Consultancy bedrijf van oorsprong uit hartje Kerkrade, maar liefst 50 vakbekwame professionals uit het hele land aan boord die maatwerkoplossingen leveren voor diverse IT-vraagstukken. Met deze enorme groei in medewerkers is het bedrijf op weg naar een landelijke dekking binnen Nederland. 

Ondanks de schaarste op de arbeidsmarkt is Etesian, met de inzet van verschillende kanalen, in staat geweest te blijven groeien. Van een groot eigen netwerk tot samenwerkingsverbanden met onderwijsinstellingen en recruitment partners die helpen met het vinden van professionals met de juiste kennis en ervaring. 

Actief in Nederland en België

Momenteel is Etesian actief in Nederland en België en helpen zij klanten met het implementeren van complexe IT-oplossingen. Het ontwikkelen van applicaties, e-Commerce oplossingen, de integratie van ERP-data of financiële gegevens met andere systemen, het implementeren van Microsoft 365 of het managen van diverse  IT-projecten. Een kleine greep uit de diensten die deze 50 professionals leveren aan klanten in binnen- en buitenland.  

Familiegevoel

Etesian is gebleken, ook in tijd van schaarste, op de werknemersmarkt een aantrekkelijke werkgever te zijn door marktconforme arbeidsvoorwaarden, persoonlijk ontwikkelplannen en extra opleidingsbudget. De meerdere teambuildingsactiviteiten naast het werk en een informele cultuur zorgen voor het onmiskenbare familiegevoel.  

Toekomst

In 2015 hebben Lars Schmitz en Sven Engels samen Etesian opgericht met als doel uit te groeien tot een middelgrote IT-dienstverlener. In Kerkrade begonnen als een kleine lokale IT-speler en in zeven jaar tijd uitgegroeid tot een graag geziene IT-partner in het zuiden en midden van het land. De komende periode wil Etesian doorgroeien naar een middelgrote speler zodat zij heel Nederland kunnen voorzien van hun expertise. 

Verschillende datums gebruiken op één pagina in Power BI?  Het kan!

Onze Business Intelligence Consultant, Andrew Tan, kreeg bij zijn opdrachtgever het verzoek een bestaand QlikView-dashboard om te zetten naar Power BI. De informatie uit het dashboard helpt de control room bij zaakgericht werken om de bedrijfsvoering verder te verbeteren.

“Een zaak is in dit verband een samenhangende hoeveelheid werk, met een duidelijke aanleiding (registratie-instroom) en een duidelijk resultaat zodra de zaak is uitgestroomd (beëindiging).” 

Hoe ziet het Power BI-dashboard eruit? 

Het nieuwe dashboard in Power BI bestaat uit drie pagina’s waarop de zaakfeiten op verschillende detailniveaus worden getoond.  

  • De eerste pagina bevat een dashboard waarin het aantal geregistreerde zaken en aantal beëindigde zaken in diverse visualisaties worden getoond.  
  • De tweede en derde pagina vormen een verdieping van het overzicht op de eerste pagina. Deze pagina’s bevatten meer details voor analysedoeleinden.  

In het onderliggend datamodel van Power BI zijn meerdere relaties gedefinieerd tussen de feittabel, waarin zaken worden geteld, en de datumtabel. Dezelfde datumtabel wordt gebruikt om de zaakfeiten te filteren op registratiedatum en beëindigingsdatum. Dit is een goed voorbeeld van een rollenspeldimensie of role-playing dimension. 

“De rollenspeldimensie is een dimensie waarin op een andere manier op gerelateerde feiten kan worden gefilterd.” 

In dit geval kan de datum betrekking hebben op de registratie of beëindiging van een zaak. In Figuur 1 is dit als volgt terug te zien. 

Figuur 1

Grijze lijnen = actieve koppeling

De eerste relatie tussen de feit- en datumtabel is de grijze lijn tussen respectievelijk Registratiedatum en Datumveld. De grijze kleur van deze lijn duidt aan dat de koppeling tussen feit- en datumtabel actief is. Dat wil zeggen: de telling van het aantal zaken geschiedt op basis van de Registratiedatum en wordt gerapporteerd met de meetwaarde ‘Aantal zaken geregistreerd’. Deze meetwaarde is direct bruikbaar in het dashboard. 

Gele gestippelde lijnen = inactieve koppeling

De tweede relatie tussen de feit- en datumtabel is de gele gestippelde lijn tussen Beëindigingsdatum en Datumveld. De gestippelde lijn duidt erop dat de koppeling tussen feit- en datumtabel niet actief is. De datumtabel heeft immers al een actieve relatie met de feittabel via de Registratiedatum. Het is namelijk zo dat in Power BI slechts één relatie actief kan zijn tussen twee tabellen.

Problemen op de weg?

De beperking in het datamodel levert een praktisch probleem op. Dit zou betekenen dat het aantal beëindigde zaken niet tegelijkertijd gerapporteerd kan worden met het aantal geregistreerde zaken in het dashboard van de eerste pagina. Daarom is de meetwaarde ‘Aantal zaken beëindigd’ niet direct bruikbaar en geel gemarkeerd in Figuur 1.

DAX formule lost het op

Genoemd probleem is opgelost door voor beëindigde zaken een berekende meetwaarde (measure) aan te maken in Power BI, dus geen berekende kolom (calculated column). De DAX formule, die aan de nieuwe meetwaarde wordt toegevoegd, zorgt ervoor dat bij de telling van het aantal beëindigde zaken toch gebruik gemaakt kan worden van de beëindigingsdatum ondanks dat de koppeling met de datumtabel niet actief is.  

De gebruikte DAX formule bestaat uit twee delen.  

  1. Het eerste deel telt met behulp van CALCULATE() alle beëindigde zaken bij elkaar op.  
  1. Het tweede deel gebruikt USERELATIONSHIP() om de inactieve koppeling tussen feit- en datumtabel op basis van beëindigingsdatum te activeren voor de berekening in het eerste deel.  

 
In Figuur 1 is te zien dat de nieuwe meetwaarde ‘Aantal zaken beëindigd’ voorafgegaan wordt door een icoon met rekenmachine. Dit geeft aan dat het gaat om een berekende meetwaarde of measure.

Rollenspeldimensies als best practice

Voor de oplossing in het datamodel is de rollenspeldimensie ingezet als best practice. Het resultaat is tweeledig. Voor het dashboard op de eerste pagina kunnen Aantal beëindigde zaken en Aantal geregistreerde zaken tegelijkertijd gerapporteerd worden zonder dat ze elkaar bijten. Vanuit beheeroogpunt is een werkafspraak toegevoegd aan het data fundament zodat rollenspeldimensies altijd geïmplementeerd worden met een measure in Power BI. Dit heeft als voordeel dat de werkwijze bij Power BI is gestandaardiseerd en werkzaamheden overdraagbaar maakt.

Microsoft Purview: die hadden we toch al?

Wat is Microsoft Purview?

Om maar meteen met de deur in huis te vallen: nu denk je waarschijnlijk aan Azure Purview, Microsoft’s cloud-native oplossing voor data governance. Logisch, want Azure Purview werd nog niet zo lang geleden gelanceerd. Of misschien denk je aan een merk kattenvoer maar daar gaat het hier niet over :-). Maar wat is Microsoft Purview nu?

Rebranding

Onlangs doopte Microsoft een heel scala security-oplossingen om en bracht ze onder bij de Microsoft Defender familie. Het lijkt erop dat ze in Redmond nog niet klaar zijn met het stroomlijnen van hun aanbod, want nu is de volgende pilaar aan de beurt: governance en compliance.  

Op 19 april jl. kondigde Microsoft aan dat een hele verzameling diensten onder de naam Microsoft Purview gaan vallen. De lijst van diensten die hierdoor geraakt worden, is behoorlijk lang maar gelukkig gemakkelijk samen te vatten. De lijst is iets verderop te vinden.

De Azure Purview oplossing (nu dus onderdeel van – maar niet te verwarren met – Microsoft Purview) en de beschikbare oplossingen binnen Microsoft 365 E5 Compliance, gaan door onder dezelfde familienaam.  Wil je meer weten over Azure, lees dan hier verder.

What’s in the name

Zoals verwacht, wordt ook de naamgeving van de diensten aangepast om deze nieuwe familienaam te reflecteren. In onderstaande lijst kun je zien dat het in dit geval ook echt nodig was, want het productgamma is in de loop der tijd flink versplinterd.  

Oude naam Nieuwe naam 
Microsoft 365 Basic Audit Microsoft Purview Audit (Standard) 
Microsoft 365 Advanced Audit Microsoft Purview Audit (Premium) 
Microsoft 365 Communication Compliance Microsoft Purview Communication Compliance 
Microsoft Compliance Manager Microsoft Purview Compliance Manager 
Office 365 Customer Lockbox Microsoft Purview Customer Lockbox 
Azure Purview Data Catalog Microsoft Purview Data Catalog 
Microsoft 365 Data Connectors Microsoft Purview Data Connectors 
Microsoft Information Governance Microsoft Purview Data Lifecycle Management 
Office 365 Data Loss Prevention Microsoft Purview Data Loss Prevention 
Azure Purview Data Map Microsoft Purview Data Map 
Double Key Encryption for Microsoft 365 Microsoft Purview Double Key Encryption 
Records Management in Microsoft 365 Microsoft Purview Records Management 
Office 365 Core eDiscovery Microsoft Purview eDiscovery (Standard) 
Office 365 Advanced eDiscovery Microsoft Purview eDiscovery (Premium) 
Microsoft 365 Information Barriers Microsoft Purview Information Barriers 
Microsoft Information Protection Microsoft Purview Information Protection 
Microsoft 365 Insider Risk Management Microsoft Purview Insider Risk Management 
Azure Purview portal Microsoft Purview governance portal 
Microsoft 365 compliance center Microsoft Purview compliance portal 
Azure Purview Data Insights Microsoft Purview Data Estate Insights 
Microsoft 365 Customer Key Microsoft Purview Customer Key 
Microsoft purview

Uniformiteit en integratie

Ik denk dat Microsoft zich ten doel heeft gesteld om met deze productfamilie aan alle governance- en compliance-doelstellingen van een organisatie te kunnen voldoen.  

Veel organisaties blijken namelijk (veel) meer dan één product in te zetten om die doelstellingen te behalen. Tot overmaat van ramp, werken die producten niet goed samen. Dit zorgt voor onnodige complexiteit en inefficiëntie.  

Juist daarin wil Microsoft tegemoet komen. Een logische keuze, want Azure Purview (de oude dus) werd toch al vaak in combinatie met de diensten uit Microsoft 365 E5 Compliance gebruikt.  

Zoals je in de lijst ziet, is zelfs Microsoft’s eigen productgamma door de versnipperaar gehaald. Deze (her)structurering is volgens mij slechts het begin van een traject waarin al deze diensten flink uitgebreid, verbeterd en mogelijk zelfs samengevoegd gaan worden. Ik verwacht dat er snel grote stappen gemaakt worden op het gebied van uniformiteit en integratie om organisaties een nog beter en completer beeld van hun datalandschap te bieden. Want als de eigen producten net zo versnipperd blijven, is de meerwaarde ervan natuurlijk ver te zoeken.  

Dit streven schemert ook in de aankondiging door: er worden per direct nieuwe functionaliteiten aangekondigd. Zo zijn onder andere Data Loss Prevention for macOS en een drastische uitbreiding van eDiscovery mogelijkheden met Microsoft Teams per direct beschikbaar. Verdere verbeteringen, zoals co-authoring van (via Microsoft Information Protection) beschermde documenten op mobiles en nieuwe mogelijkheden voor dataretentie worden al meteen in public preview toegevoegd.

Uiteindelijk moet de optelsom van de Microsoft Purview diensten een uniform, transparant en beheersbaar datalandschap binnen een organisatie opleveren. Ook buiten Microsoft’s cloud en devices.

Licenties Microsoft Purview

Op het gebied van licenties lijkt er (voorlopig) nog niks te veranderen. Er zijn in ieder geval geen wijzigingen aangekondigd of doorgevoerd in de documentatie.

Aangezien Azure Purview en de Microsoft 365 E5 Compliance oplossingen verschillende rekenmodellen hanteren, acht ik de kans klein dat daar überhaupt een consolidatie in doorgevoerd wordt.

Experiment: een nepprofiel op LinkedIn

Aangenaam, ik ben Renée. En ik besta niet. 

Toch is Renée vanaf 23 januari jongstleden te vinden op LinkedIn. Renée is een creatie van Yorerdi Habets die het profiel heeft aangemaakt als experiment. Heb jij je wel eens afgevraagd hoeveel nepprofielen er op LinkedIn zijn? En of jij zelf een of meerdere nepprofielen tussen je connecties hebt? En wat je precies met zo’n nepaccount kunt doen? Met die vragen als leidraad is Yordi het experiment begonnen.

Stap 1: Een naam en een gezicht

Het eerste dat er moest gebeuren was Renée bedenken. Want toen het experiment startte, bestond Renée natuurlijk nog niet. Op de site https://this-person-does-not-exist.com kun je met behulp van artificiële intelligentie een neppersoon aanmaken. 

Na een aantal keren proberen, kwam Yordi uiteindelijk op het gezicht dat je hierboven ziet. Bij de creatie kan het namelijk voorkomen dat de personen vreemde looks hebben of net niet echt genoeg zijn. Vervolgens was het tijd voor een naam. Daarbij was de voornaam niet zo belangrijk en Yordi kwam al snel op Renée uit. ‘De achternaam vond ik  belangrijker. Het is natuurlijk gemakkelijk om een veelvoorkomende naam te kiezen zoals Jan de Jong. Want als je die naam googelt, krijg je vast en zeker voldoende resultaten. Maar het moest wel een beetje een pakkende naam zijn. Daarom is er gekozen voor een achternaam die niemand heeft: dat werd ‘Draagsvlak’. Hierdoor zal er, bij een eventuele Google zoekopdracht, nauwelijks tot geen ander resultaat opduiken. Zou iemand dit doen, dan kan diegene meteen ontdekken dat het om een nepaccount gaat. Ik moet zelf ook eerlijk toegeven dat ik nog nooit iemand heb gegoogeld die mij een Linkedin bericht heeft gestuurd, maar ik vroeg mij af of andere het misschien wel doen,’ aldus de creator van Renée.

Stap 2: Een geloofwaardige carrière

De neppersoon had nu een gezicht en een naam dus het werd tijd om het LinkedIn account aan te maken. Voor het gemak werd gekozen voor een profiel dat ook enigszins bij Yordi’s eigen functie binnen Etesian past. ‘Op die manier krijgt hij niet opeens vragen over onderwerpen waar hij niks vanaf weet. Uiteindelijk werd de functie “Senior Database Engineer”, iets dat als een redelijk belangrijke functie klinkt. Vervolgens heeft Renée natuurlijk een carrière nodig. Waar werkt hij nu? En wat waren zijn vorige werkgevers?

Voor zijn huidige baan is ABN AMRO gekozen, een grote organisatie waar veel mensen werken. Dan valt het een stuk minder op dat Renée niet echt is. Daarnaast geeft een bank net iets meer statuur mee waardoor mensen eerder een uitnodiging zullen accepteren. Voor de rest van Renée’s carrière zijn wat willekeurige bedrijven gekozen. Maar zeg nou zelf, het is toch wel imposant wat Renée bereikt heeft! Hij werkte voor V&D, Stater, PLUS, BIC (van die pennen ja) en uiteindelijk ABN AMRO, dat is niet het minste lijstje. Vervolgens heeft Renée een aantal willekeurige certificaten gekregen en wat interesses geliket.’

Stap 3: Een netwerk opbouwen

Het profiel was nu geloofwaardig genoeg. Tijd om de eerste connectieverzoeken te versturen. LinkedIn kwam direct al met suggesties op te proppen. Yordi hoefde alleen maar een flink aantal keren op ‘connect’ te klikken. ‘Ik moet toegeven dat ik in het begin nogal paranoïde was. Een profiel met geen connecties dat niemand kent, gaat dat überhaupt connecties krijgen? Wat als iemand mij nu al in de gaten heeft, zal die persoon het account proberen te rapporteren? Ik ben daardoor in het begin ook niet meteen doorgeslagen met het aantal connectieverzoeken. Mijn idee was dat, als ik eenmaal een kleine basis had, de uitnodigingen echt de deur uit konden. Daarnaast heb ik geen verzoeken verstuurd naar mensen die bij ABN AMRO werken. Zij zouden misschien wel eens vraagtekens kunnen hebben.

Ik heb op de eerste dag ongeveer 40 uitnodigingen gestuurd. Deze uitnodigingen werden her en der geaccepteerd, maar veel waren het niet. Ongeveer één acceptatie per uur. Renée had ook niet echt een persoonlijkheid, dus ik besloot om een post te maken. Dat geeft toch iets meer menselijkheid aan het profiel. Na het maken van de post ben ik weer connectieverzoeken gaan versturen, Renée zat op dat moment op 10 connecties. Toen ging het opeens hard, ik durf niet te zeggen of het door de post komt of door het feit dat ik nu al een aantal connecties had. De acceptaties schoten omhoog en ik bleef connectieverzoeken sturen. Tot ik opeens tegen een limiet aan liep. Je mag maar 100 uitnodigingen per week versturen op LinkedIn, waarschijnlijk om bots tegen te gaan.’

Yordi begrijpt wel waarom die limiet er is: ‘Ik moet eerlijk toegeven dat ik het ook wel fijn vond dat er een limiet van 100 connectieverzoeken is. Ik was de connectieverzoeken klakkeloos aan het versturen, zonder bij te houden hoeveel ik er al verstuurd had. Door deze limiet had ik een basis en aan het einde van de week kon ik bekijken hoeveel procent van de personen mijn verzoek hadden geaccepteerd. 

Stap 4: De succesformule

Het was tijd voor Renée om even te rusten en alles z’n gang te laten gaan. Aan het einde van de week had het profiel 61 connecties, waarvan er één direct binnen was gekomen van iemand. Zestig procent van de connectieverzoeken werd geaccepteerd. Yordi: ‘Ik moet toegeven dat ik nooit had verwacht na een week al op 61 connecties te zitten, waarbij het ook nog eens gelimiteerd werd door LinkedIn. Door dit succes besloot ik om weer 100 extra connecties te versturen, zonder ook maar iets te doen aan het profiel. En ja hoor, na twee weken zat ik op 160 connecties waarvan deze keer 8 direct van iemand die ik geen verzoek had gestuurd. Dit heb ik een aantal weken doorgezet, elke week weer 100 connectie verzoeken de deur uit.

Yordi gebruikte de volgende formule om het percentage te berekenen: (aantal connecties – directe connectieverzoeken) / totaal aantal verstuurde connectieverzoeken

  • Week 1: (61-1) / 100 = 60%;
  • Week 2: (160 – 9) / 100 = 75,5%;
  • Week 3: (260 – 24) / 100 = 78,6%;
  • Week 4: (333 – 36) / 400 = 74,25%;
  • Week 5: (431 – 54) / 500 = 75,4%.

Yordi: ‘Ik sta nog altijd versteld van de percentages, dit had ik nooit gedacht toen ik aan dit experiment begon.’

Tot slot: De belangrijke vraag, wat kun je met zo’n nepprofiel?

  1. Je kunt het profiel verkopen. Via Google was een site te vinden die profielen verkoopt, waaronder eentje met 300-400 connecties. Deze is volgens die site verkocht voor 25$. Het is lastig te verifiëren of dit ook klopt, de enige manier om dit te doen is door Renée proberen te verkopen. Maar dat gaat niet gebeuren, Renée is maar een experiment en niet te koop.
  2. Je kunt mensen benaderen als medewerker van het bedrijf. Zo kun je proberen om mensen om de tuin te leiden, bijvoorbeeld door te doen alsof een betaling niet gelukt is en of die toch nog even gedaan kan worden met een nep link.
  3. E-mailadressen vergaren en verkopen.
  4. Renée zich voor laten doen als iemand anders. Het veranderen van een identiteit is heel makkelijk op LinkedIn. Zo kan de eigenaar van dit profiel zich opeens voordoen als iemand anders om zo mensen te misleiden. Sinds dit profiel toch al 300+ connecties heeft, is het opeens een stuk geloofwaardiger.

En zo zijn er nog veel meer manieren te bedenken om dit nepaccount in te zetten. De belangrijkste les van dit experiment? Wees je ervan bewust met wie je connecties aangaat. Wees kritisch als je een verzoek krijgt van iemand die je niet kent en accepteer het niet zomaar!

F1 is meer dan alleen een autosport

Een vraag die ik als Integration Consultant geregeld krijg, is wat het verschil is tussen systeemintegratie en data-integratie. Laat ik Formule 1, een sport die tegenwoordig wel tot de verbeelding spreekt, eens gebruiken om dat verschil uiteen te zetten. In deze blog leg ik uit waarom het één veelal niet zonder het ander kan.

Rollende computer

Het is alweer ruim een week geleden dat “onze” Max wereldkampioen werd in de Formule 1. Ooit was dat een autosport. Maar het is tegenwoordig zo veel meer. De auto waarmee Max wereldkampioen werd, is een rollende computer met een motor erin.

Een Formule 1 auto heeft tegenwoordig meer dan 300 sensoren aan boord. Vervolgens zijn er langs de baan én in de pit duizenden sensoren aanwezig. We krijgen daarmee steeds meer “Insights” te zien als we een Formule 1 race bekijken. Hoe efficiënt was de pitstop? Hoe snel reageerde een coureur bij de start? Wie nam het meeste risico tijdens een race? Deze Insights zijn mogelijk door alle data zo snel mogelijk vanuit de auto en de baan bij de kijker te krijgen. Voor veel mensen is dat de normaalste zaak van de wereld. Maar het hart van een Integration of Data Analytics Developer gaat daar stiekem toch harder van kloppen.

De Insights van F1 zijn Powered by AWS. Dat betekent dat Amazon Web Services wordt gebruikt voor het verwerken en interpreteren van alle data. AWS geeft toegang tot ontzettend veel rekenkracht, Machine Learning (ML) en Artificial Intelligence (AI). Toch moet het harde werk nog steeds gedaan worden door ons, de architecten en ontwikkelaars. Je kunt nog zo veel data opsturen, als je het niet slim verwerkt, komt de data nog steeds niet op een snelle en juiste manier bij de kijkers. Het gebruik van de juiste technieken, die je ter beschikking hebt binnen de cloud waarin je opereert, is hierbij de belangrijkste factor.

Het integratieprobleem: Data zo snel mogelijk op de juiste plek

Als je het over het transport van de data hebt, dan gaat het vooral over de problematiek die te maken heeft met systeemintegratie. De sensoren sturen events (hele kleine berichten) met data. Je wilt deze berichten zo snel mogelijk op de juiste plek laten landen. Dit hoeft niet op een gestructureerde, maar wel op een integere en veilige manier.

Als System Integrator kun je bijvoorbeeld de volgende vraag stellen: Moeten berichten in de juiste volgorde worden verwerkt? Of is een parallelle verwerking, en daarmee veel snellere verwerking, de beste keuze? Daarnaast moeten deze berichten zo snel mogelijk gebruikt kunnen worden om weer te geven. Hoe nauwkeurig moet deze data zijn voor de kijker thuis op de bank? Is alle data nodig, of voldoet een klein deel van de enorme set aan berichten ook? Laten we er even vanuit gaan dat de plas- en bierpauzes de enige strategische keuzes van kijkers zijn. Dan mag er gerust wat afwijking in de berichtgeving zitten. Voor de kijker maakt het echt niet uit of Hamilton Verstappen over 5 rondes of 7 rondes in zal halen (tenzij dat vlak voor de finish lukt). Je kunt hiervoor dus met een kleinere dataset werken dan een F1 team dat de strategische keuzes hierop baseert.

Azure Event Grid functional model
Event Grid in Azure is een van de speelplaatsen van een integratie developer (Microsoft docs)

Het data analytics probleem: De juiste weergave van die data

Maar met ruwe data alleen kan een kijker vrij weinig. Het is niet zo interessant om een berichtje te zien met wat ’timestamps’ en waardes erin. Data moet op een juiste manier weergegeven worden.

De Data Integrator zorgt ervoor dat data op een juiste manier getransformeerd wordt en in een gestructureerde vorm wordt klaargezet voor weergave.

Een Data Integrator zal zich dus afvragen wat de beste manier is om de ruwe gegevens op te slaan. Daarbij is het van belang dat ze op een snelle en juiste manier geïnterpreteerd en weergegeven kunnen worden op een tv scherm. Het maakt dus uit waarvoor deze data gebruikt wordt.

Een Integration Developer maakt zich echter totaal niet druk om hoe berekend wordt dat de banden van Max ‘bijna op’ zijn. Of wanneer Hamilton er voorbij steekt. Een Data Integrator daarentegen kan zich hier wel degelijk druk om maken. Het slim klaarzetten van de data kan betekenen dat het systeem het in enkele seconden tevoorschijn tovert, of er een half uur voor nodig heeft.

Architecture diagram for automated enterprise BI with Azure Synapse and Azure Data Factory
Data Factory is dan weer de speelplaats van de data integrator (Microsoft docs)

En het gaat veel, veel verder

Op bijna iedere Formule 1 auto prijkt tegenwoordig een IT-partner. Denk hierbij aan Oracle (Red Bull), Microsoft (Renault), Splunk (McLaren) en Tibco (Mercedes). Het geeft aan hoe belangrijk deze partners voor ze zijn. En dat is zeker niet alleen om data heen en weer te schuiven of weer te geven. Zonder de IT van deze organisaties is het niet meer mogelijk om de auto te ontwikkelen. En al helemaal niet om wedstrijden te winnen.

Onderstaand filmpje geeft een goed beeld van hoe belangrijk IT, en met name de cloud, tegenwoordig is voor een sport als Formule 1. Rob Smedley van Formula 1 laat zien hoe AWS cruciaal is geweest voor de ontwikkeling van de nieuwe regelgeving voor 2022.

Photo header by Grahampurse (CC0 license) https://commons.wikimedia.org/wiki/File:Max_Verstappen_(Austin_2021).jpg


Een vliegende start bij Etesian

Van derdejaars IT student tot software engineer

In 2017 was Yannic van de Kuit (26) op zoek naar een bedrijf waar hij zijn derdejaars stage kon lopen. Die stage beviel hem zo goed, dat hij sindsdien niet meer bij Etesian is weggegaan. We spraken Yannic over hoe dat zo is gekomen en waarom hij zo graag bij Etesian werkt.

Hoe ben je bij Etesian terechtgekomen?
Als student aan Zuyd Hogeschool was ik op zoek naar een IT-bedrijf om mijn derdejaars stage uit te voeren. Niet wetende waar ik moest beginnen ging ik rondvragen bij bekenden of zij mij konden helpen. Zo ben ik in contact gebracht met Etesian IT Consulting. Vanaf dat moment begon het balletje snel te rollen. Binnen enkele weken had ik een sollicitatiegesprek bij Etesian om te kijken of zij mij wilden aannemen als stagiair.’

Hoe verliep dat eerste contact?
Tijdens dat gesprek was er van beide kanten een goed gevoel. Samen met de opdrachtgever waarvoor ik de stageopdracht zou gaan uitvoeren, werd een tweede gesprek gepland. Voor dat tweede gesprek was ik best wel zenuwachtig. Omdat ik nog maar net was begonnen met programmeren, had wat twijfels over mijn programmeerkennis. Tijdens het gesprek lieten beide partijen mij weten dat dit geen enkel probleem was. Zij waren bereid om mij de kans te geven. Dit was voor mij een hele opluchting en haalde direct veel druk weg.’ 

Hoe vond je het om stage te lopen bij Etesian?
Mijn derdejaars stage heb ik, onder begeleiding van Mark vermeulen, uiteindelijk goed afgerond. Etesian bood mij zelfs een een afstudeerplek én bijbaan aan. Deze kans heb ik met beide handen aangegrepen. Tijdens mijn studie heb daarmee ook nog kennis opgedaan in het bedrijfsleven bij Etesian.’ 

Hoe was het om bij Etesian af te studeren?
Mijn afstudeerstage heb ik, onder begeleiding van Rob Fox, ook bij Etesian uitgevoerd. Etesian voelde voor mij heel fijn aan. Ik wist dat dit de plek was waar ik mij verder wil ontwikkelen en later mijn loopbaan wil starten. Na een vliegende start, kwamen er op de helft van mijn afstuderen enkele obstakels op de weg. Nu ga ik die zelf niet uit de weg. Maar hier kon ik niet omheen. Etesian heeft mij hierin ontzettend gesteund. Samen keken we naar mogelijkheden en oplossingen. En die werden gevonden! Mede door deze steun vanuit Etesian, heb ik mijn afstuderen alsnog succesvol afgerond.’ 

En hoe ging het daarna verder?
Na mijn afstuderen ben ik ook mijn loopbaan begonnen bij Etesian. Na 1,5 jaar in dienst ben ik nog steeds blij met de gemaakte keuze om bij Etesian mijn loopbaan te starten. Het bedrijf heeft vele groeimogelijkheden en een prachtige bedrijfscultuur. Bij Etesian voel je je al snel thuis. Er worden regelmatig leuke activiteiten met collega’s georganiseerd om elkaar te ontmoeten. Zo nam ik onlangs met een aantal collega’s deel aan de Viva la Vida Run in Kerkrade (zie foto, ik had startnummer 368).’

Yannic met collega’s tijdens de Viva la Vida Run

Wat zijn nu je plannen binnen Etesian?
‘Momenteel ben ik bezig om de begeleiding van stagiaires op te pakken. De reden daarvoor is dat ik heel graag met mensen werk. Ook lever ik graag een bijdrage aan de begeleiding van potentieel nieuwe collega’s. Net zoals dat ook bij mij het geval was. Daarnaast is het plan om Junior Software Developers, die bij Etesian aan de slag gaan, te ondersteunen in hun werkzaamheden. Ik verwacht nog jaren mee te blijven draaien bij Etesian!’

Je website beveiligen met SRI en CSP

Het internet, en het name het World Wide Web (www), was nooit ontworpen met het oog op veiligheid. Alle aanvullende veiligheidsprotocollen die we kennen zijn eigenlijk later toegevoegd. Zo is de HTTPS-verbinding die we kennen als ‘het groene slotje’ pas de laatste jaren gemeengoed geworden. Tegenwoordig zijn er vele andere manieren om je website te beveiligen.

Kwaadwillenden vinden steeds nieuwe manieren om hun doel te bereiken. Daarop worden steeds nieuwe manieren gevonden om dit te mitigeren. We zien de laatste jaren een opkomst van JavaScript, Single Page Applications (SPA’s) en FrontEnd frameworks zoals Angular en React om snelle, interactieve en mooie websites en webapplicaties te bouwen. Vanzelfsprekend dienen deze technieken op een juiste en vooral veilige manier toegepast te worden. Echter zien we dat dit nog regelmatig misgaat. Het meest sprekende voorbeeld hiervan is de campagnewebsite van voormalige president Donald Trump. Deze bevatte een dusdanig groot ‘lek’ dat verregaande consequenties had kunnen hebben indien dit misbruikt zou zijn. Beveiligingsonderzoeker Troy Hunt heeft er deze mooie blogpost aan gewijd.

In deze blog beschrijven we twee technieken om je website te beveiligen, namelijk Subresouce Integritity (SRI) en Content Security Policies (CSP). Deze technieken zijn de afgelopen jaren ontwikkeld en worden momenteel ondersteund door het overgrote merendeel van de browsers zoals Firefox, Edge, Chrome, Opera en Safari. Helaas zien we dat deze technieken nog niet consequent worden geïmplementeerd in websites en webapplicaties.

Subresource Integrity (SRI)

Stel je voor dat je een nieuwe website maakt en hiervoor wil je functionaliteit gebruiken die door een derde partij beschikbaar wordt gemaakt, bijvoorbeeld voor een nieuwsbrief. Met JavaScript kan dat vaak eenvoudig door het opnemen van een stukje code zoals in het voorbeeld hieronder:

<script src="https://www.
SomeOtherParty.com/NewsLetter/embed.js"
type="text/javascript"></script>

Zoals je kunt zien maken we gebruik van een JavaScript bestand genaamd embed.js afkomstig van SomeOtherParty. Maar wat kan er nu gebeuren wanneer SomeOtherParty mijn bedrijf niet gezind is, of wanneer SomeOtherParty wordt gehackt? Dan kan het bestand embed.js worden
misbruikt om slechte code uit te voeren zoals een keylogger of cryptominer. Iedere bezoeker van jouw website zou dan worden blootgesteld aan deze slechte code zonder dat jij het door kan hebben.

Met de mitigerende maatregel SRI creëer je een digitale vingerafdruk van een bestand. Er wordt een cryptografische berekening uitgevoerd en op het moment dat het bestand zou wijzigen in de toekomst wordt voorkomen dat de gewijzigde code wordt uitgevoerd. Voor het genereren van deze digitale vingerafdruk zijn talloze websites en applicaties beschikbaar. Ik gebruik meestal de SRI Generator van Report-URI: https://report-uri.com/home/sri_hash

<script
src="https://www.SomeOtherParty.com/NewsLetter/embed.js"
type="text/javascript" integrity="sha256-
z2gyg8OpoUm1c8wqrYKqR63Hm87PC5MTa6NwpzDMEJ0= sha384-
Bnd++T0hmJJIB1RlfM20nAZfWAamM5jM8iQ/PMkQnUibNc1f14J2gqS9YQ9xS
G3q sha512-2URiUcHGmY2tyMuEhs/cYmsnkDyjSZF6DgtPiHy+N2wProrZssl9UxhBp1g0X
mq9w/P2QM6zbQOqgVB9xqwTSQ==></script>

Het gebruik van SRI heeft wel consequenties voor je website. Wanneer SomeOtherParty bijvoorbeeld besluit om een nieuwe release van hun nieuwsbrief functionaliteit aan te bieden, kan dit gevolgen hebben voor de functionaliteit op jouw eigen website.

Content Security Policies (CSP)

Een andere maatregel om je website of webapplicatie te beveiligen tegen slechte code is door gebruik te maken van zogenaamde Content Security Policies (of CSPs). Met een CSP kan worden bepaald welke bronnen worden vertrouwd als bron voor afbeeldingen, JavaScript code, stijl-bestanden, etc. CSP is geen alternatief of vervanging voor SRI. Door beide technieken te combineren maak je het kwaadwillenden al zeer moeilijk om slechte code uit te voeren op jouw website. Zo biedt CSP een prima eerste defensie-linie tegen Cross Script Scripting (XSS).

Een CSP begint met een header, een stukje additionele informatie, die door de webserver wordt meegestuurd naar de bezoeker van de website. Bijvoorbeeld:

Content-Security-Policy: default-src 'none'; script-src
'self' https://www.SomeOtherParty.com

Deze header beschrijft dat (Java)script bestanden enkel vertrouwd worden indien deze geladen worden vanuit de website zelf (script-src 'self') of vanuit SomeOtherParty. Andere JavaScript bestanden worden niet vertrouwd en dus niet uitgevoerd. Net zoals bij SRI zijn er websites en applicaties beschikbaar om deze CSP header te genereren, waaronder https://report-uri.com/home/generate.

Tot slot

De beschreven technieken SRI en CSP zijn geen silver bullit om je website te beveiligen, maar vormen een goede aanvulling op de reeds bestaande maatregelen die je waarschijnlijk al getroffen hebt. Wil je meer weten over SRI, CSP of over (cyber)security in het algemeen, neem dan gerust contact met ons op.

Power BI en Azure Data Factory

Een goede klant van ons was aan de slag gegaan met Microsoft Power BI. Na verloop van tijd kwam het besef dat de weg die ze waren ingeslagen niet houdbaar was. In een korte periode waren veel rapporten gerealiseerd. Door de snelheid van de realisatie was er te weinig aandacht besteed aan de het onderhoud van de rapporten. Tijd om ze op te schonen en te verbeteren was er niet. Voor het genereren van de rapporten waren bovendien handmatige handelingen nodig op de laptop van een medewerker. Daarmee was er te veel afhankelijkheid van één persoon. Daarom besloten ze om toch een volledige datawarehouse oplossing te implementeren. Aangezien wij als Etesian ook al de website ontwikkelen en beheren, vroegen zij ons om ook dit datawarehouse project met meerdere van onze consultants vorm te geven. In deze blog lees je hoe wij dat hebben opgepakt.

Te veel informatie

Alleen al voor de afdelingen Marketing en E-commerce zijn ruim 100 Power BI rapporten gemaakt waarin zij door de bomen het bos niet meer zagen. Bovendien bevatten al deze rapporten niet alle stuurinformatie waarover de Marketing afdeling graag zou willen beschikken. Ook andere afdelingen wisten niet meer om te gaan met de overvloed aan informatie. Door de creatieve inborst van medewerkers en toepassing van huisstijl en logo waren het fraaie rapporten geworden, maar de indeling verschilde nogal per rapport. Het werd langzaamaan zaak om te optimaliseren, rapporten gebruikersvriendelijk te maken en herijken van de informatiebehoefte. 

De handmatige werkzaamheden die nodig waren voor het genereren van de rapporten vormden een risico. Mocht deze medewerker uitvallen dan was geen overdracht mogelijk en valt de rapportageproductie stil. Data uit het bronsysteem verzamelen en opslag vonden plaats in een AWS (Amazon Web Services) omgeving. Hierdoor zijn extra veelal handmatige handelingen nodig om de data klaar te zetten in de Azure (Microsoft) omgeving voor gebruik door Power BI. De klant zag dit als een aanzienlijk risico voor de lange termijn en heeft ons om advies gevraagd.

Azure Data Factory

We hebben de klant geadviseerd, een projectplan opgesteld en dit opgepakt met meerdere consultants. Allereerst is een back-up van de brondata uit AWS overgezet op een SQL Server database in een eigen Azure omgeving. Vervolgens wordt alle benodigde data voor Power BI geladen in een Azure datawarehouse. Dit laden gebeurt met behulp van data pijplijnen in Azure Data Factory. Dat is een component van Azure waarmee data van de ene naar andere database gekopieerd kan worden en eenvoudig in te stellen is. Voor dit project hebben we in de Azure Data Factory een aantal best practices meegenomen:

  • Per object (binnen de bron) een enkele pijplijn;
  • Snel laden, om bronsystemen minimaal te belasten;
  • Incrementeel laden, om grote gegevensobjecten niet elke keer volledig in te laden.

Voordeel van de ondersteuning met Azure Data Factory is dat geen handmatige acties meer nodig zijn om Power BI rapporten te verversen. Dit gebeurt rechtstreeks in Power BI Service aangezien nu ook de brondata online, dus in Azure, staat. Bijkomend voordeel is dat diverse andere handmatige werkzaamheden overbodig zijn geworden. Ook is de rapportenproductie minder afhankelijk van een specifieke persoon aangezien alle voorbereidingen van data voor gebruik in Power BI online plaatsvinden.

Vermindering van het aantal rapporten

Door automatisering van datastromen aan de ‘achterkant’ kunnen we de hoeveelheid Power BI rapporten voor de Marketing afdeling drastisch verminderen. Dat levert ruimte en inhoud op voor verdere afstemming over de informatiebehoefte aan de ‘voorkant’. Doordat definities nu eenduidig zijn, stelt het de klant in staat om de kracht van Power BI in te zetten. Dit resulteert in dashboards die op visueel aantrekkelijke wijze inzicht geeft in de bedrijfsvoering. De klant kan stuurinformatie gebruiken waar het voor bedoeld is: handelen naar inzicht uit data.

Dit project met Power BI en Data Factory loopt gestaag. We vertellen je er graag meer over.