Showing posts with label Bicep. Show all posts
Showing posts with label Bicep. Show all posts

Friday, 11 September 2026

Create a single View of all your tenants subscriptions - easily identify Azure Credit availability

One Azure Dashboard for all Subscriptions in Your Azure Tenant

A production subscription. A development environment. A Microsoft for Startups sponsorship. Perhaps a Visual Studio subscription, a trial subscription, or a subscription dedicated to experimentation.

The information you need is scattered across Azure:

💰 Cost Management for spend
📦 Resource Graph for inventory
💳 Billing for credits and subscriptions
🔍 Individual subscription pages for everything else

I wanted a single place to answer three simple questions:

✅ What is running?
✅ What is it costing?
✅ How much Azure credit is left?

This solution creates an Azure Portal dashboard covering every subscription in a tenant.  Barclays Eagle Labs is amazing for startups, and they have helped me immensely, including getting Microsoft Startup Credits, and I think this will help a lot of people with their Startups.

What the dashboard shows

• Monthly cost per subscription
• Resource counts by subscription
• Resources grouped by type
• Complete resource inventory across all subscriptions
• Subscription offer type (Pay-As-You-Go, Sponsorship, Visual Studio, etc.)
• Billing account details
• Remaining Azure credit and expiry dates where available
• Direct links into Subscription Overview and Cost Analysis

Deployment in Four steps

1. Download the file:

  • New-SubscriptionsDashboard.ps1

2. Open Azure Cloud Shell and select PowerShell

3. Upload the New-SubscriptionsDashboard.ps1 file into your Cloud Shell home directory

4. Get your tenant ID, set the dashboard location and run the creation PowerShell script:

PS> $tenant = (az account show --query tenantId -o tsv)
PS> $region = "uksouth"   // Set your region for the new dashboard
PS> ./New-SubscriptionsDashboard.ps1 -Tenant $tenant -Location $region

5. Open the dashboard URL returned by the deployment.

Why I like this approach

The dashboard continuously updates resource inventory, resource counts and subscription costs using Azure Resource Graph and Cost Management, while also providing a snapshot of credit balances and billing information.

For organisations using multiple subscriptions, especially Azure Sponsorship or Microsoft for Startups credits, this gives a genuine single pane of glass across the entire tenant. No more jumping between Cost Management, Billing, Resource Graph and Subscription Overview pages. One dashboard. One view.



Sunday, 20 November 2022

ARM Templates vs Bicep vs Terraform vs Pulumi

ARM templates, they are instructions that run against Azure to create resources.  

ARM templates will update settings such as tags when added, deleted or updated using json.
If a dependent resource is called e.g. storage, the ARM template creates the storage and if variables are supplied it shall use them.  Removing or changing the dependency won't update the dependent resource, it will create a new storage resource and point to the new storage. 
Note: Templates don't remove dependent resources if they are pulled from the ARM template. It will not upgrade to the latest instructions. I.e. it does not take the infrastructure to desired state config (DSC).
There is a DSC modules for ARM templates, but i believe this is more for VM's.

Bicep is a domain specific language which is DSC, it's json and way easier to build up your infrastructure.
Bicep will run ARM templates "under the hood" and provide the full desired state.  Bicep is a Microsoft Azure only concept and can be used for private cloud infrastructure.  

Terraform is an open source DSL to build IaC, and it works on AWS, Azure and GCP (and Oracle ...).
Terraform is created by HashiCorp, HashiCorp have an amazing tooling set that uses the Terraform language to build, and changes Infrastructure.  Uses the HCL Language.

AWS CloudFormation is the native way to build IaC on AWS.  Supports json and YAML.

Pulumi is an exciting competitor to Terraform.  Can us multiple languages and easy to write new modules.  Code is compiled and uses appropriate cloud API's to create IaC.   Compare Terraform to Pulumi.  Uses TypeScript/JS, Python or C#.  Pulumi is Open Source, and there is a free tier SaaS offering on Pulumi Cloud.

Common Dev setup could be: TypeScript with Pulumi created using VS code npm for packages.  
Pulumi needs a program yaml file, tells it the language to use and other setup.  2 types of providers: Terraform bridge providers and native provides.  There are over 150 connectors most are Terraform .  Support multiple languages e.g. TypeScript, C#, Python Java, GO, YAML.  Easy to integrate into CI/CD/DevOps.  Pulumi is basically a command line tool that can be called from DevOps including Pulumi Cloud.


Pulumi (Any) vs Terraform (HCL lang) vs AWS: CDK (TS, C#, Py, Go, Java) or CloudFormations (YAML)  vs Azure: ARM/Bicep (DSL).

Nutanix - new to me but looks like VMWare using IaC for multi-cloud basically Terraform but manage and monitor.  Very likely to be wrong here.

Summary:
Use what the organisation uses, Bicep is great if you only are using Azure, and for smaller work/specific DTAP IAC using ARM templates is a well trodden route.  If the organisation wants multi-cloud (do not take multi-cloud lightly) then Terraform and even Hashicorp using Terraform is the way to go.  Terraform and Pulumi are for multi-cloud/run at a higher level than CloudFormation, ARM/Bicep.

Note: Resist multi-cloud at all costs, I've heard ridiculous reasoning like we don't want to be tied to only AWS or Azure.  That's cool but costs go up exponentially with multi-cloud, it's not even the infra that costs, it's the management overhead and testing/verification.  Which parts can be changed.  A business would need a really good reason to go to multiple vendors.