<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cost-Optimization | The .NET Blog</title><link>https://thedotnetblog.com/tags/cost-optimization/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/cost-optimization/index.xml" rel="self" type="application/rss+xml"/><item><title>Your AI Experiments on Azure Are Burning Money — Here's How to Fix That</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</guid><description>AI workloads on Azure can get expensive fast. Let's talk about what actually works for keeping costs under control without slowing down your development.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;re building AI-powered apps on Azure right now, you&amp;rsquo;ve probably noticed something: your cloud bill looks different than it used to. Not just higher — weirder. Spiky. Hard to predict.&lt;/p&gt;
&lt;p&gt;Microsoft just published a great piece on &lt;a href="https://azure.microsoft.com/en-us/blog/cloud-cost-optimization-principles-that-still-matter/"&gt;cloud cost optimization principles that still matter&lt;/a&gt;, and honestly, the timing couldn&amp;rsquo;t be better. Because AI workloads have changed the game when it comes to costs.&lt;/p&gt;
&lt;h2 id="why-ai-workloads-hit-different"&gt;Why AI workloads hit different&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the thing. Traditional .NET workloads are relatively predictable. You know your App Service tier, you know your SQL DTUs, you can estimate monthly spend pretty accurately. AI workloads? Not so much.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;re testing multiple models to see which one fits. You&amp;rsquo;re spinning up GPU-backed infrastructure for fine-tuning. You&amp;rsquo;re making API calls to Azure OpenAI where token consumption varies wildly depending on prompt length and user behavior. Every experiment costs real money, and you might run dozens before you land on the right approach.&lt;/p&gt;
&lt;p&gt;That unpredictability is what makes cost optimization critical — not as an afterthought, but from day one.&lt;/p&gt;
&lt;h2 id="management-vs-optimization--know-the-difference"&gt;Management vs. optimization — know the difference&lt;/h2&gt;
&lt;p&gt;One distinction from the article that I think developers overlook: there&amp;rsquo;s a difference between cost &lt;em&gt;management&lt;/em&gt; and cost &lt;em&gt;optimization&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Management is tracking and reporting. You set up budgets in Azure Cost Management, you get alerts, you see dashboards. That&amp;rsquo;s table stakes.&lt;/p&gt;
&lt;p&gt;Optimization is where you actually make decisions. Do you really need that S3 tier, or would S1 handle your load? Is that always-on compute instance sitting idle on weekends? Could you use spot instances for your training jobs?&lt;/p&gt;
&lt;p&gt;As .NET developers, we tend to focus on the code and leave the infrastructure decisions to &amp;ldquo;the ops team.&amp;rdquo; But if you&amp;rsquo;re deploying to Azure, those decisions are your decisions too.&lt;/p&gt;
&lt;h2 id="what-actually-works"&gt;What actually works&lt;/h2&gt;
&lt;p&gt;Based on the article and my own experience, here&amp;rsquo;s what moves the needle:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Know what you&amp;rsquo;re spending and where.&lt;/strong&gt; Tag your resources. Seriously. If you can&amp;rsquo;t tell which project or experiment is eating your budget, you can&amp;rsquo;t optimize anything. Azure Cost Management with proper tagging is your best friend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set guardrails before you experiment.&lt;/strong&gt; Use Azure Policy to restrict expensive SKUs in dev/test environments. Set spending limits on your Azure OpenAI deployments. Don&amp;rsquo;t wait until the bill arrives to realize someone left a GPU cluster running over the weekend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rightsize continuously.&lt;/strong&gt; That VM you picked during prototyping? It&amp;rsquo;s probably wrong for production. Azure Advisor gives you recommendations — actually look at them. Review monthly, not yearly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Think about lifecycle.&lt;/strong&gt; Dev resources should spin down. Test environments don&amp;rsquo;t need to run 24/7. Use auto-shutdown policies. For AI workloads specifically, consider serverless options where you pay per execution instead of keeping compute warm.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Measure value, not just cost.&lt;/strong&gt; This one&amp;rsquo;s easy to forget. A model that costs more but delivers significantly better results might be the right call. The goal isn&amp;rsquo;t to spend the least — it&amp;rsquo;s to spend smart.&lt;/p&gt;
&lt;h2 id="the-takeaway"&gt;The takeaway&lt;/h2&gt;
&lt;p&gt;Cloud cost optimization isn&amp;rsquo;t a one-time cleanup. It&amp;rsquo;s a habit. And with AI workloads making spend less predictable than ever, building that habit early saves you from painful surprises later.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a .NET developer building on Azure, start treating your cloud bill like you treat your code — review it regularly, refactor when it gets messy, and never deploy without understanding what it&amp;rsquo;s going to cost you.&lt;/p&gt;</content:encoded></item><item><title>Azure Smart Tier Is GA — Automatic Blob Storage Cost Optimization Without Lifecycle Rules</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</guid><description>Azure Blob Storage smart tier is now generally available, automatically moving objects between hot, cool, and cold tiers based on actual access patterns — no lifecycle rules needed.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;ve ever spent time tuning Azure Blob Storage lifecycle policies and then watched them fall apart when access patterns shifted, this one&amp;rsquo;s for you. Microsoft just announced the &lt;a href="https://azure.microsoft.com/en-us/blog/optimize-object-storage-costs-automatically-with-smart-tier-now-generally-available/"&gt;general availability of smart tier&lt;/a&gt; for Azure Blob and Data Lake Storage — a fully managed tiering capability that automatically moves objects between hot, cool, and cold tiers based on real usage.&lt;/p&gt;
&lt;h2 id="what-smart-tier-actually-does"&gt;What smart tier actually does&lt;/h2&gt;
&lt;p&gt;The concept is straightforward: smart tier continuously evaluates the last access time of each object in your storage account. Frequently accessed data stays in hot, inactive data moves to cool after 30 days, and then to cold after another 60 days. When data is accessed again, it&amp;rsquo;s promoted back to hot immediately. The cycle restarts.&lt;/p&gt;
&lt;p&gt;No lifecycle rules to configure. No access pattern predictions. No manual tuning.&lt;/p&gt;
&lt;p&gt;During the preview, Microsoft reported that &lt;strong&gt;over 50% of smart-tier-managed capacity automatically shifted to cooler tiers&lt;/strong&gt; based on actual access patterns. That&amp;rsquo;s a meaningful cost reduction for large storage accounts.&lt;/p&gt;
&lt;h2 id="why-this-matters-for-net-developers"&gt;Why this matters for .NET developers&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re building applications that generate logs, telemetry, analytics data, or any kind of growing data estate — and honestly, who isn&amp;rsquo;t — storage costs add up fast. The traditional approach was writing lifecycle management policies, testing them, and then re-tuning when your app&amp;rsquo;s access patterns changed. Smart tier removes that entire workflow.&lt;/p&gt;
&lt;p&gt;Some practical scenarios where this helps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Application telemetry and logs&lt;/strong&gt; — hot when debugging, rarely accessed after a few weeks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data pipelines and ETL outputs&lt;/strong&gt; — accessed heavily during processing, then mostly cold&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User-generated content&lt;/strong&gt; — recent uploads are hot, older content gradually cools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backup and archival data&lt;/strong&gt; — accessed occasionally for compliance, mostly idle&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="setting-it-up"&gt;Setting it up&lt;/h2&gt;
&lt;p&gt;Enabling smart tier is a one-time configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New accounts&lt;/strong&gt;: Select smart tier as the default access tier during storage account creation (zonal redundancy required)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Existing accounts&lt;/strong&gt;: Switch the blob access tier from your current default to smart tier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Objects smaller than 128 KiB stay in hot and don&amp;rsquo;t incur the monitoring fee. For everything else, you pay standard hot/cool/cold capacity rates with no tier transition charges, no early deletion fees, and no data retrieval costs. A monthly monitoring fee per object covers the orchestration.&lt;/p&gt;
&lt;h2 id="the-tradeoff-to-know-about"&gt;The tradeoff to know about&lt;/h2&gt;
&lt;p&gt;Smart tier&amp;rsquo;s tiering rules are static (30 days → cool, 90 days → cold). If you need custom thresholds — say, moving to cool after 7 days for a specific workload — lifecycle rules are still the way to go. And don&amp;rsquo;t mix both: avoid using lifecycle rules on smart-tier-managed objects, as they can conflict.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;This isn&amp;rsquo;t revolutionary, but it solves a real operational headache. If you manage growing blob storage accounts and you&amp;rsquo;re tired of maintaining lifecycle policies, &lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-smart"&gt;enable smart tier&lt;/a&gt; and let Azure handle it. It&amp;rsquo;s available today in nearly all zonal public cloud regions.&lt;/p&gt;</content:encoded></item></channel></rss>