Knowledge session of DevOps

Ask GitHub Copilot for code review in your .NET project

In this blog post, I’ll share my experience building a .NET 8 Azure Function App that retrieves a user profile via the Microsoft Graph API. The function app is designed to run in Azure and return the user profile of the logged-in user via Microsoft Entra-ID. While the technical implementation was exciting, the interesting part of this journey was using GitHub Copilot as a code reviewer through Pull Requests in GitHub. It became generally available on April 4th. I’ll walk you through the process, share my thoughts on Copilot’s feedback, and highlight areas where it shines and where it could improve. ...

April 22, 2025 · 5 min · Arash Jalalat
Azure Bicep deployer function

Boost your Azure Pipeline with Bicep's deployer() function

Context Last month Microsoft released its newest Bicep version v0.32.4 which includes an interesting function called deployer(). This function can retrieve the ObjectId and TenantId of the deploying Service principal. This can be very helpful in certain cases such as assigning tags to Azure resources or to assign a role to the deploying Service principal. In my experience you have strong Infrastructure as Code (IaC) setup when you combine both Bicep with Azure Pipelines for deploying resources to Azure. Let’s have a look what we can do with the new deployer() function. ...

January 13, 2025 · 4 min · Arash Jalalat
NotebookLM overview

How to summarize a Git repository using NotebookLM

Exploring NotebookLM’s Audio Overview Feature Context Recently, Google introduced an exciting new feature for NotebookLM: Audio Overview. For those unfamiliar, NotebookLM is a personal AI-powered research assistant (powered by Gemini 1.5 Pro) designed for efficient summarization and note-taking. By uploading your documents, whether PDFs, websites, or text files, NotebookLM analyzes and organizes the content. This allows you to interact with it in various ways. The Audio Overview feature, in particular, caught my attention. It essentially creates a podcast-like experience where two AI hosts discuss your research topic in real time. This conversational format offers a unique way to engage with your content, which can make complex topics more accessible and enjoyable. What’s even better? You can guide the discussion by providing specific instructions, ensuring the conversation focuses on aspects most relevant to you. ...

November 11, 2024 · 2 min · Arash Jalalat
Azure resources overview

Building and deploying a chatbot with Azure Functions OpenAI Extension and model GPT-4o mini

Introduction In this blog post, we will explore how to integrate Azure Functions with the OpenAI extension. This integration allows you to use triggers and bindings with the powerful capabilities of OpenAI within your serverless functions. We will walk through the setup, configuration, and deployment of an Azure Functions project that uses the OpenAI extension, using Bicep templates for infrastructure as code. Prerequisites Before we begin, ensure you have the following tools and resources: ...

August 5, 2024 · 7 min · Arash Jalalat

Azure Functions on Container Apps

Recently, I created my first video about Azure Functions on Azure Container Apps, which you can find below. I also made a GitHub repository where you can find the source code, allowing you to set up the Azure Functions on ACA yourself.

June 18, 2024 · 1 min · Arash Jalalat

Extract text from image to AI project

In today’s digital age, extracting text from images has become a common task in various domains, from document digitization to text analysis. Optical Character Recognition (OCR) engines like Tesseract have played a significant role in making this process efficient and accessible. However, improving the accuracy and usability of OCR systems remains a challenge. In this blog post, we’ll explore (based on two examples) how to enhance text extraction from images using Tesseract in conjunction with OpenAI’s Generative AI capabilities. ...

March 18, 2024 · 5 min · Arash Jalalat
Semantic kernel overview

Semantic Kernel with C# minimal API

Are you keen on exploring the fusion of Artificial Intelligence (AI) and minimal APIs in the world of C#? If so, you’re in the right place! In this article, I’ll walk you through the integration of Semantic Kernel, an open-source SDK facilitating Large Language Models (LLMs) integration, into a minimal API built using ASP.NET Core in .NET 8. By using the power of OpenAI’s GPT-3, we’ll go on a journey to create a plugin that crafts narratives based on user input. ...

December 17, 2023 · 4 min · Arash Jalalat
ADO Terraform Azure

Smooth Sailing with DevOps: Deploying Azure Storage Account using Terraform and Azure YAML Pipelines

Introduction Hi 👋 my fellow tech enthusiasts. As a DevOps Engineer, I often find myself navigating the complex waters of IT challenges both at work and during my free time. Today, I want to share a recent journey into the world of DevOps where we’ll be deploying an Azure Storage Account using Terraform and Azure YAML Pipelines. So, grab your virtual life vests, and let’s embark on this adventure. Why Terraform and Azure YAML Pipelines? Terraform, an Infrastructure as Code (IaC) tool, is a powerful choice for provisioning and managing cloud resources. When combined with Azure DevOps YAML Pipelines, it becomes an even more powerful force for automating deployments, ensuring consistency, and facilitating collaboration within your DevOps team. ...

October 29, 2023 · 4 min · Arash Jalalat

Azure Workload identity federation with Azure DevOps

About 2 months ago I wrote a blog post about workload identity federation with GitHub Actions. When an application needs to access cloud based resources it often needs to think about authentication and authorization. Using workload identity federation there is no need to use any keys or secrets. For example, Google Cloud Platform and Microsoft Azure are providing this great feature. And now this feature has also been released for Azure DevOps! This means that organizations can now take advantage of this to provide an even more secure way to connect to Azure from Azure DevOps, or rather Azure Pipelines, via a Service Connection. ...

October 1, 2023 · 6 min · Arash Jalalat
Website design

Deploy VM instance with GCP and Terraform

You probably are wondering how this website is built and where it is hosted. Maybe you already find out the answer to the first question. This website is powered by Ghost. Ghost is a free and open source blogging platform. They have 2 versions, one managed and one self-hosted. I opted for the self-hosted solution since I usually like to deep dive into IT related projects. Also I wanted to learn how to deploy a blogging website to a self-hosted platform. My blog represents my company AJTech Consulting. This blog is hosted on Google Cloud Platform (GCP) and deployed via Terraform (which is an Infrastructure as Code tool) into Docker containers. A container running the Ghost engine, one running the MySQL database and a container running the reverse proxy with Traefik. A reverse proxy is a server that accepts a request from a client and then forwards the request to another server. So basically it sits in front of backend applications. To keep the containers up-to-date and receive important updates I regularly run a script on the Linux VM. ...

August 22, 2023 · 6 min · Arash Jalalat