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 -%}
   ]
}