Laat nu je applicaties simpel met elkaar communiceren: Azure Functions en Azure Service Bus maken het mogelijk

Hoe kunnen applicaties simpel met elkaar communiceren en data uitwisselen? In dit artikel nemen we je mee in Azure Integration Services die je mogelijk kunnen helpen wanneer je jouw applicaties met elkaar wilt laten communiceren. Dit doen we aan de hand van Azure Functions en Azure Service Bus, die we hieronder zullen bespreken.

Azure Integration Services 

Eerst een stukje achtergrond. Want wat houdt Azure Integration Services precies in? 

De Azure Integration Services is een verzameling services voor het verbinden van cloud-gebaseerde applicaties en on-premise applicaties. Deze services maken synchrone en asynchrone communicatie tussen applicaties mogelijk en daarnaast biedt het ondersteuning voor workflows. Hiervoor zijn verschillende oplossingen, waarin Azure Integration Service allerlei mogelijkheden biedt.  

Azure Service Bus is een betrouwbare messaging service binnen Azure. Hiermee zijn applicaties te ontkoppelen van elkaar en kunnen schaalbare architecturen worden gerealiseerd.  

Azure Functions is een serverless compute platform binnen Azure. De focus bij serverless ligt op het schrijven van de code, Azure zorgt voor een snelle en schaalbare uitvoering. Azure Functions kunnen eenvoudig gekoppeld worden aan Azure Service Bus en reageren op nieuwe berichten die binnenkomen.

 

Asynchrone berichten verwerken 

Cloud Adventures is een fictief bedrijf wat reizen verkoop naar de maan en verder. Deze reizen worden uitgevoerd door een derde partij. De webshop van Cloud Adventures kent dan ook een integratie met deze partij en tijdens het kopen van een reis wordt de geboekte reis doorgestuurd. Wanneer dit succesvol is gebeurd, dan ontvangt de gebruiker een email met de bevestiging van zijn boeking. Voor het versturen van deze email wordt ook weer geïntegreerd met een derde partij.  

Overview of relevant Azure Resources 

 

Met behulp van Azure Service Bus en Azure Functions wordt de integraties met de derde partijen gerealiseerd. Bij iedere geboekte reis wordt een bericht op een queue in de Service Bus geplaatst met alle relevante informatie over de reis. De datum van vertrek, hoeveel personen mee gaan en voor welke aanbieder is gekozen.  

De berichten op de Service Bus worden asynchroon afgehandeld door een Azure Function. Wanneer de hoeveelheid berichten groeit en de afhandeling dit niet bij kan werken, zullen er meer instanties van de Azure Function worden gestart om gezamenlijk de berichten af te handelen. Op deze manier schaalt de oplossing automatisch, volgens ingestelde richtlijnen. 

Bij het afhandelen van het bericht wordt een api van de derde partij aangeroepen. Alle communicatie met deze partij vindt daarmee plaats op één plek in de applicatie. Iets wat vanuit architectuur oogpunt wenselijk is. Wanneer de aanroep van de api succesvol is geweest, wordt een nieuw bericht geplaatst op een tweede queue in de Service Bus. Er is een tweede Azure Function die dit bericht uitleest en de bevestiging van de boeking naar de gebruiker mailt. Hiervoor wordt gecommuniceerd met de derde partij die het versturen van de email voor zijn rekening neemt.

 

Kosten 

Naast de voordelen van een ontkoppelde integratie met derde partijen, kent het gebruik van serverless oplossingen ook een kostenvoordeel. Er wordt alleen betaald voor het daadwerkelijke gebruik. Dus wordt je code niet uitgevoerd, omdat er geen berichten zijn om af te handelen, dan worden er ook geen kosten in rekening gebracht. Overigens zijn hier meerdere modellen van hosting mogelijk.

 

Nadelen 

Het gebruik van Azure Functions en Azure Service Bus kent ook uitdagingen. Door het gebruik van diverse kleinere services is het bijvoorbeeld uitdagender om inzicht te blijven houden in de werking. Wanneer fouten optreden is het zoeken van de oorzaak complexer. Zoals altijd met Cloud Native software is het bouwen voor Observability dus iets om vanaf de start rekening mee te houden. 

 

Conclusie 

In dit artikel hebben we je meegenomen in hoe je jouw applicaties met elkaar kunt laten communiceren. Door het gebruik van Azure Integration Services is het mogelijk om applicaties simpel met elkaar te verbinden. Of deze applicaties nu in de Cloud draaien of on-premise maakt niet uit. We hebben laten zien dat Azure Functions en Azure Service Bus krachtige en schaalbare oplossinggen zijn voor het asynchroon communiceren met api’s.

Benieuwd wat we voor u kunnen betekenen?

Nieuwsgierig geworden?

Ben jij klaar om de stap te zetten naar de Cloud of te accelereren op de Cloud? Plan dan een afspraak met ons in of neem contact met ons op.

Tags

  • CNSD

Geschreven door

Arian Geertsema

Arian Geertsema

Head of DevOps at Intercept

Wellicht ook interessant:

  • App Configuration

    Efficiëntie in App configuratie: Een diepgaande kijk op Cloud Native Software Development met Azure

    In dit artikel gaan we in op het configureren van jouw app. We bieden handige tricks om deze configuratie zo efficient mogelijk uit te voeren. Bij het ontwikkelen van een applicatie is het vraagstuk ‘hoe je het beste om kunt gaan met configuratie waarden’ een belangrijk onderwerp. In dit artikel gaan we dieper in op hoe dit toegepast kan worden aan de hand van de Azure App Configuration en Azure Key Vault.

    • Leesduur 4min
    Meer over Efficiëntie in App configuratie: Een diepgaande kijk op Cloud Native Software Development met Azure