Create an AI Assistant with your own data

The current large language models, like GPT-4, GPT-4 Turbo and GPT-4o are great when you need some output generated based on data you feed in the prompt. Even the small language models, like Phi-3, are doing a great job at this. However, these models often don’t know a lot about the data within your company. Because of this, they can’t do a good job at answering questions that required data from your organization. Read more →

Let Azure API Management its identity authenticate with your backend services

Aside from Azure Traffic Manager, Azure Functions, and Azure Service Bus, Azure API Management (APIM) is one of my favourite services to use in just about any solution. A useful little nugget for APIM is it’s able to have its own Managed Identity. You can choose to use a System Managed Identity or a User Managed Identity. Both options have pros and cons. When you have configured APIM with a managed identity, this identity can be used to authenticate with the backend services. Read more →

Create and configure Azure Traffic Manager using Bicep

There are a ton of useful Azure resources, and one that I don’t read or hear a lot about is Azure Traffic Manager. According to the docs: Azure Traffic Manager is a DNS-based traffic load balancer. This service allows you to distribute traffic to your public facing applications across the global Azure regions. Traffic Manager also provides your public endpoints with high availability and quick responsiveness. Meaning it’s a very good service to make sure the requests to your backend are routed to the backend that’s able to respond the fastest. Read more →

Use Azure API Management (APIM) to rewrite a response

Have you ever been on a project where an API returns a response that you can’t, or don’t want to, handle in your own application? Or a customer asks to generate a different response? Yeah, me neither… If you ever come across a project, where they want you to return a response like this: HTTP/1.1 200 OK Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: application/json Date: Wed, 10 Jan 2024 20:59:21 GMT { "error": 404, "status": "NotFound", "description": "Could not find the object" } This post is for you! Read more →

Adding Open AI to an existing solution with Semantic Kernel

For those of you who are reading my posts from time to time, you probably know one of my side projects is a URL minifier solution. It’s one of those services which I’ve created to learn about specific Azure services. I’m still making improvements to it and sometimes adding new features to it altogether. With the focus on AI and large language models in just about everything nowadays, it is time for me to add it to the URL minifier too. Read more →

Using deploymentScripts to do additional IaC work

Most people who are professionally working with any of the cloud providers use some kind of infrastructure-as-code solution. For Microsoft Azure, I’m mostly working with ARM- or Bicep templates to describe the resources necessary. While I’ve written ARM templates for years now, I’m enjoying creating Bicep templates a bit more due to the tooling it offers. There is at least one downside to using these solutions, and that’s the fact most operations are happening on the Azure control plane. Read more →

Create a Service Principal to create and manage other Service Principals

When you need to work with service principals in your Azure environment, you are probably creating them via some script using the az ad sp command. This works quite well, but these are created with your account. The account you used to log in with the Azure CLI. The same goes when using PowerShell, it’s always running in the context you used to log in. Most of the time your personal or environment administrator account. Read more →

Creating a native Teams app with Dataverse integration

I’ve been working with the Power Platform for a couple of weeks now, and I’m pretty impressed by the functionality it offers. Lots of scenarios can be covered by using these tools as a frontend for applications we need to serve to our customers, and there’s also a very nice integration with Microsoft Teams! However, there’s always this special little snowflake that can’t easily be accomplished within a Power App. The keyword over there is ’easily'. Read more →

Manage Azure Container Instances in Azure Functions based on running pipelines in Azure DevOps

In my previous post, I wrote how to create & host private build agents for Azure DevOps running in Azure Container Instances. One of the reasons for doing so is to eliminate creating build agent VM’s and performant pipelines for my side projects. But, of course, the build agents also need to be as cheap as possible. Azure Container Instances have per-second billing, which is excellent for build agent containers. Read more →

Create a private build agent using Azure Container Instances

I’ve been complaining for a while about how slow the hosted build agent in Azure DevOps is. The reason for this is simple, as it’s a shared, free, hosted agent. A solution for this is to host your agents, for example, via a virtual machine. I’m not a big fan of maintaining virtual machines, and then it struck me that we now have containers that are sort of the same but easier to manage. Read more →