Edi Wang

Microsoft MVP for Azure

Posts in 2026

Modernizing My Azure Deployment Script with PowerShell and Bicep

I refactored Moonglade's Azure deployment from a single, all‑in‑one PowerShell script to a PowerShell + Bicep setup. PowerShell now handles orchestration and user input, while Bicep declaratively defines the App Service Plan, Web App, SQL Server, database, firewall rule, and storage account. This keeps the same one-click experience, but makes the infrastructure easier to maintain, review, and reuse.
Azure PowerShell Bicep

Migrating this Blog to Docker on Linux with Azure App Service

This blog runs on my open-source project Moonglade, a blogging platform built with ASP.NET Core and hosted on Azure. Recently, I migrated it from a Windows Server environment to Docker on Linux, still running on Azure App Service. It’s been running smoothly in production for about two months now. In this post, I’ll walk through that migration journey: what I changed, a few tips and tricks along the way, and some lessons learned that might help you if you’re considering a similar move.
.NET Azure App Service Docker Container

Deploying a Remote Chrome Browser with Azure Container Instance

Running a full desktop browser in the cloud and accessing it remotely can be surprisingly useful. You might want a disposable browser for testing and automation, a sandboxed environment isolated from your local machine or a remote browser you can get to from any device with a decent network connection. In this post, I'll walk through how I deployed a remote Chrome browser running in a Docker container on Azure Container Instances, and how I access it from a regular web browser.
Azure Docker Container