Global Azure 2026 Istanbul is done and it was a great event. Here's the recording and a quick recap of my session on GitHub Copilot Agent Skills: Automating Cloud Workflows.

Session Recording
The full recording is now available. Watch it below:
Global Azure 2026 Istanbul is done and it was a great event. Here's the recording and a quick recap of my session on GitHub Copilot Agent Skills: Automating Cloud Workflows.

The full recording is now available. Watch it below:
I'll be taking the stage at Global Azure 2026 Istanbul to present a session on GitHub Copilot Agent Skills: Automating Cloud Workflows.

Hello Folks,
Welcome to the Part 2. In Part 1, we covered the fundamentals of CI/CD for Microsoft Fabric: why it matters, how workspaces and branches map to environments, the flow from dev to test to prod, and the common mistakes to avoid. Now it is time to get practical.
In this part, we will set up everything you need in Azure DevOps to build a working CI/CD pipeline for Fabric. We will go through variable groups, environments with approval gates, the pipeline YAML, the Python deployment script, and the parameter file that handles GUID replacement across environments. By the end, you will have a clear picture of how all the pieces connect.
Hello Everybody,
In these two series, I want to walk you through how CI/CD works for Microsoft Fabric deployments. This is a topic that comes up a lot, and I think the best way to understand it is to start from scratch and build up step by step. In this first part, we will cover the fundamentals: what CI/CD means in the context of Fabric, why it matters, and how the basic building blocks fit together. In Part 2, we will go hands-on with Azure DevOps, the fabric-cicd Python package, parameter files, and a full end-to-end deployment walkthrough.
If you are working with Microsoft Fabric and your team is still deploying things manually, copying items between workspaces, or making changes directly in production, this article is for you.
Bicep parameter files allow you to define values in an individual file that are then passed to your main Bicep Templates file. The parameter file exposes values that may change from a given subscription, environment, and/or region. Leveraging a parameter file drives consistency in your IaC deployments while providing flexibility. For example, an organization can use these files to right-size nonproduction environments to save costs while maintaining the same core infrastructure across all deployments.

In addition, these parameter files streamline the CI/CD deployment process. Since each parameter file is under source control and passed into the appropriate automated deployment steps, they ensure a consistent and repeatable deployment experience. In this article, we will explore how to create, read, and use a Bicep parameters file via PowerShell.
In Part 1 of this series, we built a PowerShell script that automates the process of pulling a public Docker image from Docker Hub and pushing it to your Azure Container Registry (ACR). In this second part, we'll focus on integrating that script into a CI/CD pipeline using GitHub Actions. This logic will ensure that our image management process is fully automated and runs on a scheduled basis.
With GitHub Actions, you can schedule the execution of your script, monitor its output, and ensure that your ACR is always updated with the latest image—without any manual intervention. Let’s walk through how to configure your GitHub Actions workflow.
Keeping your container images up to date is a critical part of managing modern deployments. In this article, I'll explain how you can automate the process of pulling a public Docker image from Docker Hub and pushing it to your Azure Container Registry (ACR) using a PowerShell script. This approach is especially useful for overcoming Docker Hub’s rate limits by storing the image in your ACR.

This article is part of a two-part series where I demonstrate how to build an automated process that leverages a Service Principal with Federated Credentials and strict Role-Based Access Control (RBAC) assigment. With RBAC in place, only the necessary permissions are granted, ensuring that the Service Principal has the least privileges required for this operation. In this example, we'll use the Cloudflare image as our reference, but you can adapt the process for any public image.
In the previous blog post, we have covered how to create a deploymentScript resource with Bicep. In this blog post, we will continue with the deployment script and talk about how to execute the script for accesing a private network from the deployment script.
Imagine that you have a scenario where you have resources they locked down to a private network and you need to access them from your deployment script. In this case, you can use the deploymentScripts resource to run a script that accesses the private network.
When you are working on a project, sometimes you need to deploy your resources to Azure using a script. In this blog post, we will try to cover if we need to execute script for the pre and post deployment how we can achieve this with Bicep while we are deploying our resources to Azure using Bicep.
DeploymentScripts are a powerful feature that allows you to run either PowerShell or Bash scripts as part of your Bicep deployment. These scripts execute in a Docker container, providing a flexible way to add custom behavior to your deployment process. With either Azure CLI or Azure PowerShell at your disposal, so you can automate almost anything you need to do in your deployment if you have to execute a script before or after the deployment.
Her yıl Nisan ayında tüm Dünya üzerindeki ülkelerde eş zamanlı gerçekleşen en büyük Azure etkinliği bu sene de 25 Nisan 2020 Cumartesi günü gerçekleştiriliyor. Bu sene ise MsHowto ekibi olarak, Covid-19 sebebi ile Virtual olarak gerçekleştiriyor olacağız.Global Azure Virtual BootCamp 2020 için etkinlik haritasını ve session detaylarını aşağıda görebilirsiniz. Bu etkinlikte Azure Blueprints servisi hakkında edindiğim tecrübelerimi aktarıyor olacağım.
