Leveraging Azure Serverless to build Event-driven applications
Yesterday I had the pleasure to talk to the Azure Dublin Meetup community about Leveraging Azure Serverless to build Event-driven Applications. It was an amazing opportunity to share some of my knowledge related to Azure and also explain how it can be used in real life scenarios that we face on day a day basis.
There was a really nice audience, committed to learn and share their experience and knowledge as well, including few Microsoft staff that contributed to the different discussions.
Presentation
The presentation was delivered by some PowerPoint slides I prepared, where I explained all the benefits of using Azure Serverless, comparing to the other hosting options such as Platform-as-a-Service, Infrastructure-as-a-Service and more.
During this exploratory process around Azure Serverless, I explained details about some of the Serverless options available, such as Azure Functions, Durable Functions, Event Grid, Event Hub, Service Bus, Logic Apps and more.
Each of these services are meant to be used in specific scenarios, so I iterate few real scenarios where we need to build solutions using some of these services, and I explained why we should consider to use a given service as opposed to other services.
I believe sometimes it is important to abstract from the different options we have available, so we can try to visualize the big picture and try to “connect the dots” in order to build a solution using the right services available.
I would like to invite you to have a look to the presentation, so you can understand some of the details that were discussed.
Demo
Then we end-up doing a quick game using a demo built by Ben Coleman, and then i adapted it to be able to perform the game. Basically this demo is leveraging Azure Serverless and Cognitive Services (Vision API) to allow the users to access a HTML5 Web App and take or upload a photo from their mobile phone or computer. Then, the photo is stored in a Storage Account, and there is an Azure Function that detects the new photo in the Storage account, and it will process it. During the processing, it will call the Vision API to detect faces in the photo and classify them. All the results are stored as JSON objects in another container in the same Storage account.
Last, there is a Vue.js app that allows to view all photos uploaded and for each photo all the results obtained from the Vision API.
This demo is a great example of how you can leverage Artificial Intelligence services available in Azure, to perform automated tasks, in real scenarios, such as content classification, content moderation and more. Follows the architecture diagram of the app as reference.
To summarize, this post is focused in highlight important information when using Azure Serverless to build your Event-driven applications, mentioning some of the benefits of using this approach, but also some challenges that you can eventually face.