<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Azure Architecture topics</title>
    <link>https://techcommunity.microsoft.com/t5/azure-architecture/bd-p/AzureArchitecture</link>
    <description>Azure Architecture topics</description>
    <pubDate>Wed, 22 Apr 2026 21:39:16 GMT</pubDate>
    <dc:creator>AzureArchitecture</dc:creator>
    <dc:date>2026-04-22T21:39:16Z</dc:date>
    <item>
      <title>[Architecture Pattern] Scaling Sync-over-Async Edge Gateways by Bypassing Service Bus Sessions</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/architecture-pattern-scaling-sync-over-async-edge-gateways-by/m-p/4510919#M832</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I wanted to share an architectural pattern and an open-source implementation we recently built to solve a major scaling bottleneck at the edge: bridging legacy synchronous HTTP clients to long-running asynchronous AI workers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Problem: Stateful Bottlenecks at the Edge&lt;/P&gt;&lt;P&gt;When dealing with slow AI generation tasks (e.g., 45+ seconds), standard REST APIs will drop the connection resulting in 504 Gateway Timeouts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The standard integration pattern here is Sync-over-Async. The Gateway accepts the HTTP request, drops a message onto Azure Service Bus, waits for the worker to reply, and maps the reply back to the open HTTP connection.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, the default approach is to use Service Bus Sessions for request-reply correlation. At scale, this introduces severe limitations:&lt;/P&gt;&lt;P&gt;1. Stateful Gateways: The Gateway pod must request an exclusive lock on the session. It becomes tightly coupled to that specific request.&lt;/P&gt;&lt;P&gt;2. Horizontal Elasticity is Broken: If a reply arrives, it must go to the specific pod holding the lock. Other idle pods cannot assist.&lt;/P&gt;&lt;P&gt;3. Hard Limits: A traffic spike easily exhausts the namespace concurrent session limits (especially on the Standard tier).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Solution: Stateless Filtered Topics&lt;/P&gt;&lt;P&gt;To achieve true horizontal scale, the API Gateway layer must be 100% stateless. We bypassed Sessions entirely by pushing the routing logic down to the broker using a Filtered Topic Pattern.&lt;/P&gt;&lt;img /&gt;&lt;P&gt;How it works:&lt;/P&gt;&lt;P&gt;1. The Gateway injects a CorrelationId property (e.g., Instance-A-Req-1) into the outbound request.&lt;/P&gt;&lt;P&gt;2. Instead of locking a session, the Gateway spins up a lightweight, dynamic subscription on a shared Reply Topic with a SQL Filter: CorrelationId = 'Instance-A-Req-1'.&lt;/P&gt;&lt;P&gt;3. The AI worker processes the task and drops the reply onto the shared topic with the same property.&lt;/P&gt;&lt;P&gt;4. The Azure Service Bus broker evaluates the SQL filter and pushes the message directly to the correct Gateway pod.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;No session locks. No implicit instance affinity. Complete horizontal scalability. If a pod crashes, its temporary subscription simply drops—preventing locked poison messages.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Open Source Implementation&lt;/P&gt;&lt;P&gt;Implementing dynamic Service Bus Administration clients and receiver lifecycles is complex, so I abstracted this pattern into a Spring Boot starter for the community. It handles all the dynamic subscription and routing logic under the hood, allowing developers to execute highly scalable Sync-over-Async flows with a single line of code returning a CompletableFuture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;GitHub Repository:&amp;nbsp; https://github.com/ShivamSaluja/sentinel-servicebus-starter&lt;/P&gt;&lt;P&gt;Full Technical Write-up: https://dev.to/shivamsaluja/sync-over-async-bypassing-azure-service-bus-session-limits-for-ai-workloads-269d&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I would love to hear from other architects in this hub. Have you run into similar session exhaustion limits when building Edge API Gateways? Have you adopted similar stateless broker-side routing, or do you rely on sticky sessions at your load balancers?&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2026 17:25:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/architecture-pattern-scaling-sync-over-async-edge-gateways-by/m-p/4510919#M832</guid>
      <dc:creator>ssaluja72</dc:creator>
      <dc:date>2026-04-13T17:25:35Z</dc:date>
    </item>
    <item>
      <title>Proyecto Escolar Tecnológico</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/proyecto-escolar-tecnol%C3%B3gico/m-p/4510881#M831</link>
      <description>&lt;P&gt;Estamos haciendo un trabajo de investigación sobre las nuevas tecnologías aplicadas a la gestión empresarial ya que estamos desarrollando un proyecto de software para el sector de &lt;STRONG&gt;odontología&lt;/STRONG&gt; y me gustaría preguntarle a los expertos: ¿Qué tecnologías se consideran "el estándar de oro" o &lt;STRONG&gt;esenciales&lt;/STRONG&gt; para aplicar en 2026, y que ustedes ya han utilizado?.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Apr 2026 15:43:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/proyecto-escolar-tecnol%C3%B3gico/m-p/4510881#M831</guid>
      <dc:creator>Mabs1</dc:creator>
      <dc:date>2026-04-13T15:43:30Z</dc:date>
    </item>
    <item>
      <title>Detecting ACI IP Drift and Auto-Updating Private DNS (A + PTR) with Event Grid + Azure Functions</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/detecting-aci-ip-drift-and-auto-updating-private-dns-a-ptr-with/m-p/4507667#M830</link>
      <description>&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="width: 100%; height: 80px; border-width: 1px;"&gt;&lt;colgroup&gt;&lt;col style="width: 17.6661%" /&gt;&lt;col style="width: 82.3339%" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 45px;"&gt;&lt;td style="height: 45px;"&gt;&lt;STRONG&gt;Solution Author&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 45px;"&gt;
&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="3434528" data-lia-user-login="Aditya_AzureNinja" class="lia-mention lia-mention-user"&gt;Aditya_AzureNinja​&lt;/a&gt; , &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="2842216" data-lia-user-login="Chiragsharma30" class="lia-mention lia-mention-user"&gt;Chiragsharma30​&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 35px;"&gt;&lt;td style="height: 35px;"&gt;&lt;STRONG&gt;Solution Version&lt;/STRONG&gt;&lt;/td&gt;&lt;td style="height: 35px;"&gt;&amp;nbsp;v1.0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2&gt;TL;DR&lt;/H2&gt;
&lt;P&gt;Azure Container Instances (ACI) container groups can be recreated/updated over time and may receive &lt;STRONG&gt;new&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG&gt;private IPs&lt;/STRONG&gt;, which can cause DNS mismatches if forward and reverse records aren’t updated. This post shares an &lt;STRONG&gt;event-driven pattern&lt;/STRONG&gt; that detects &lt;STRONG&gt;ACI IP drift&lt;/STRONG&gt; and automatically reconciles &lt;STRONG&gt;Private DNS A (forward)&lt;/STRONG&gt; and &lt;STRONG&gt;PTR (reverse)&lt;/STRONG&gt; records using &lt;STRONG&gt;Event Grid + Azure Functions&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Key requirement: &lt;/STRONG&gt;Event delivery is &lt;STRONG&gt;at-least-once&lt;/STRONG&gt;, so the solution must be &lt;STRONG&gt;idempotent&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H2&gt;Problem statement&lt;/H2&gt;
&lt;P&gt;In hub-and-spoke environments using &lt;STRONG&gt;per-spoke Private DNS zones&lt;/STRONG&gt; for isolation, ACI workloads created/updated/deleted over time can receive new private IPs. We need to ensure:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Forward lookup&lt;/STRONG&gt;: aci-name.&amp;lt;spoke-zone&amp;gt; (A record) → current ACI private IP&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reverse lookup&lt;/STRONG&gt;: IP → aci-name.&amp;lt;spoke-zone&amp;gt; (PTR record)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Two constraints drive this design:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Private DNS auto-registration is VM-only and does not create PTR records&lt;/STRONG&gt;, so ACI needs explicit A/PTR record management.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Reverse DNS is scoped to the VNet&lt;/STRONG&gt; (reverse zone must be linked to the querying VNet, otherwise reverse lookup returns NXDOMAIN).&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Design principle:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This solution was designed with the following &lt;STRONG&gt;non‑negotiable engineering goals&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Event‑driven&lt;/STRONG&gt;&lt;BR /&gt;DNS updates must be triggered directly from &lt;STRONG&gt;resource lifecycle events&lt;/STRONG&gt;, not polling or scheduled jobs. Container creation, restart, and deletion are the only reliable sources of truth for IP changes in ACI.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Idempotent&lt;/STRONG&gt;&lt;BR /&gt;Azure Event Grid delivers events with &lt;STRONG&gt;at‑least‑once semantics&lt;/STRONG&gt;. The system must safely process duplicate events without creating conflicting DNS records or failing on retries.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Stateless&lt;/STRONG&gt;&lt;BR /&gt;The automation must not rely on in‑memory or persisted state to determine correctness. DNS itself is treated as the baseline state, allowing functions to scale, restart, and replay events without drift or dependency on prior executions.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Clear failure modes&lt;/STRONG&gt;&lt;BR /&gt;DNS reconciliation failures must be explicit and observable. If DNS updates fail, the function invocation must fail loudly so the issue is visible, alertable, and actionable—never silently ignored.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Components&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Event Grid&lt;/STRONG&gt; subscriptions (filtered to ACI container group lifecycle events)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure Function App (Python)&lt;/STRONG&gt; with &lt;STRONG&gt;System Assigned Managed Identity&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Private DNS forward zone&lt;/STRONG&gt; (A records)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Private DNS reverse zone&lt;/STRONG&gt; (PTR records)&lt;/LI&gt;
&lt;LI&gt;Supporting infra (typical):
&lt;UL&gt;
&lt;LI&gt;Storage account (function artifacts / operational needs)&lt;/LI&gt;
&lt;LI&gt;Application Insights + Log Analytics (observability)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Event-driven flow&lt;/H3&gt;
&lt;OL&gt;
&lt;LI&gt;ACI container group is created/updated/deleted.&lt;/LI&gt;
&lt;LI&gt;Event Grid emits a lifecycle event (delivery can be repeated).&lt;/LI&gt;
&lt;LI&gt;Function is triggered and reads the &lt;STRONG&gt;current ACI private IP&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Function reconciles DNS:
&lt;UL&gt;
&lt;LI&gt;Upsert A record to current IP&lt;/LI&gt;
&lt;LI&gt;Upsert PTR record to FQDN&lt;/LI&gt;
&lt;LI&gt;Remove stale PTR(s) for hostname/IP as needed&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Function logs reconciliation outcome (updated vs no-op).&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;Architecture overview (INFRA)&lt;/H2&gt;
&lt;P&gt;This follows the&lt;STRONG&gt;“Event-driven registration”&lt;/STRONG&gt; approach: &lt;STRONG&gt;Event Grid → Azure Function&lt;/STRONG&gt; that reconciles DNS on ACI lifecycle events.&lt;/P&gt;
&lt;H2&gt;RBAC at a glance (Managed Identity)&lt;/H2&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Role&lt;/th&gt;&lt;th&gt;Scope&lt;/th&gt;&lt;th&gt;Purpose&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Storage Blob Data Owner&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Function App deployment storage account&lt;/td&gt;&lt;td&gt;Access function artifacts and operational blobs (required because shared key access is disabled).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Reader&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Each ACI workload resource group&lt;/td&gt;&lt;td&gt;Read container group state and determine the current private IP.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Private DNS Zone Contributor&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Private DNS forward zone(s)&lt;/td&gt;&lt;td&gt;Create, update, and delete &lt;STRONG&gt;A records&lt;/STRONG&gt; for ACI hostnames.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Private DNS Zone Contributor&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Private DNS reverse zone(s)&lt;/td&gt;&lt;td&gt;Create, update, and clean up &lt;STRONG&gt;PTR records&lt;/STRONG&gt; for ACI IPs.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Monitoring Metrics Publisher&lt;/STRONG&gt; &lt;EM&gt;(optional)&lt;/EM&gt;&lt;/td&gt;&lt;td&gt;Data Collection Rule (DCR)&lt;/td&gt;&lt;td&gt;Upload structured IP‑drift events to Log Analytics via the ingestion API.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;---&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;---&lt;/H3&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Architecture overview (APP)&lt;/H2&gt;
&lt;img /&gt;
&lt;H1&gt;Event‑Driven DNS Reconciliation for Azure Container Instances&lt;/H1&gt;
&lt;H2&gt;1. Event contract: what the function receives&lt;/H2&gt;
&lt;P&gt;Azure Event Grid delivers events using a consistent envelope (Event Grid schema). Each event includes, at a minimum:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;topic&lt;/LI&gt;
&lt;LI&gt;subject&lt;/LI&gt;
&lt;LI&gt;id&lt;/LI&gt;
&lt;LI&gt;eventType&lt;/LI&gt;
&lt;LI&gt;eventTime&lt;/LI&gt;
&lt;LI&gt;data&lt;/LI&gt;
&lt;LI&gt;dataVersion&lt;/LI&gt;
&lt;LI&gt;metadataVersion&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;In Azure Functions, the &lt;STRONG&gt;Event Grid trigger binding&lt;/STRONG&gt; is the recommended way to receive these events directly.&lt;/P&gt;
&lt;H3&gt;Why the subject field matters&lt;/H3&gt;
&lt;P&gt;The subject field typically contains the &lt;STRONG&gt;ARM resource ID path&lt;/STRONG&gt; of the affected resource.&lt;BR /&gt;This solution relies on subject to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;verify that the event is for an &lt;STRONG&gt;ACI container group&lt;/STRONG&gt;&lt;BR /&gt;(Microsoft.ContainerInstance/containerGroups)&lt;/LI&gt;
&lt;LI&gt;extract:
&lt;UL&gt;
&lt;LI&gt;subscription ID&lt;/LI&gt;
&lt;LI&gt;resource group name&lt;/LI&gt;
&lt;LI&gt;container group name&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Using subject avoids dependence on publisher‑specific payload fields and keeps parsing fast, deterministic, and resilient.&lt;/P&gt;
&lt;H2&gt;2. Subscription design: filter hard, process little&lt;/H2&gt;
&lt;P&gt;The solution follows a strict &lt;STRONG&gt;runbook pattern&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;subscribe only to &lt;STRONG&gt;ARM lifecycle events&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;filter aggressively so &lt;STRONG&gt;only ACI container groups&lt;/STRONG&gt; are included&lt;/LI&gt;
&lt;LI&gt;trigger reconciliation only on &lt;STRONG&gt;meaningful state transitions&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Recommended Event Grid event types&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft.Resources.ResourceWriteSuccess&lt;/STRONG&gt;&lt;BR /&gt;(create / update / stop state changes)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft.Resources.ResourceDeleteSuccess&lt;/STRONG&gt;&lt;BR /&gt;(container group deletion)&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft.Resources.ResourceActionSuccess&lt;/STRONG&gt; &lt;EM&gt;(optional)&lt;/EM&gt;&lt;BR /&gt;(restart / start / stop actions, environment‑dependent)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This keeps the Function App simple, predictable, and low‑noise.&lt;/P&gt;
&lt;H2&gt;3. Application design: two functions, one contract&lt;/H2&gt;
&lt;P&gt;The application is intentionally split into &lt;STRONG&gt;authoritative mutation&lt;/STRONG&gt; and &lt;STRONG&gt;read‑only validation&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3&gt;Component A — DNS Reconciler (authoritative writer)&lt;/H3&gt;
&lt;P&gt;A thin &lt;STRONG&gt;Python v2 model wrapper&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;receives the Event Grid event&lt;/LI&gt;
&lt;LI&gt;validates this is an ACI container group event&lt;/LI&gt;
&lt;LI&gt;parses identifiers from the ARM subject&lt;/LI&gt;
&lt;LI&gt;resolves DNS configuration from a JSON mapping (environment variable)&lt;/LI&gt;
&lt;LI&gt;delegates DNS mutation to a deterministic worker script&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;DNS changes are not implemented inline in Python. Instead, the function:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;constructs a controlled set of environment variables&lt;/LI&gt;
&lt;LI&gt;invokes a worker script (/bin/bash) via subprocess&lt;/LI&gt;
&lt;LI&gt;streams stdout/stderr into function logs&lt;/LI&gt;
&lt;LI&gt;treats non‑zero exit codes as &lt;STRONG&gt;hard failures&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This &lt;STRONG&gt;thin wrapper + deterministic worker&lt;/STRONG&gt; pattern isolates DNS correctness logic while keeping the event handler stable and testable.&lt;/P&gt;
&lt;H3&gt;Component B — IP Drift Tracker (stateless observer)&lt;/H3&gt;
&lt;P&gt;The drift tracker is a &lt;STRONG&gt;read‑only&lt;/STRONG&gt;, stateless validator designed for correctness monitoring.&lt;/P&gt;
&lt;P&gt;It:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;parses identifiers from the event subject&lt;/LI&gt;
&lt;LI&gt;exits early on delete events (nothing to validate)&lt;/LI&gt;
&lt;LI&gt;reads the &lt;STRONG&gt;live ACI private IP&lt;/STRONG&gt; using the Azure SDK&lt;/LI&gt;
&lt;LI&gt;reads the &lt;STRONG&gt;current DNS A record baseline&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;compares live vs DNS state and emits drift telemetry&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Core comparison logic&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;No DNS record exists&lt;/STRONG&gt; → emit first_seen&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DNS record matches live IP&lt;/STRONG&gt; → emit no_change&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DNS record differs from live IP&lt;/STRONG&gt; → emit drift_detected (old/new IP)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Optionally, drift events can be shipped to &lt;STRONG&gt;Log Analytics&lt;/STRONG&gt; using DCR‑based ingestion.&lt;/P&gt;
&lt;H2&gt;4. DNS Reconciler: execution flow&lt;/H2&gt;
&lt;H3&gt;Step 1 — Early filtering&lt;/H3&gt;
&lt;P&gt;Reject any event whose subject does not contain: Microsoft.ContainerInstance/containerGroups.&lt;/P&gt;
&lt;P&gt;This avoids unnecessary processing and ensures strict contract enforcement.&lt;/P&gt;
&lt;H3&gt;Step 2 — ARM subject parsing&lt;/H3&gt;
&lt;P&gt;The function splits the subject path and extracts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;resource group&lt;/LI&gt;
&lt;LI&gt;container group name&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This approach is fast, robust, and avoids publisher‑specific schema dependencies.&lt;/P&gt;
&lt;H3&gt;Step 3 — Zone configuration resolution&lt;/H3&gt;
&lt;P&gt;DNS configuration is resolved from a &lt;STRONG&gt;JSON map stored in an environment variable&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;If no matching configuration exists for the resource group:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;the function logs the condition&lt;/LI&gt;
&lt;LI&gt;exits without error&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Why this matters&lt;/STRONG&gt;&lt;BR /&gt;This keeps the solution &lt;STRONG&gt;multi‑environment&lt;/STRONG&gt; without duplicating deployments.&lt;BR /&gt;Only configuration changes — not code — are required.&lt;/P&gt;
&lt;H3&gt;Step 4 — Delegation to worker logic&lt;/H3&gt;
&lt;P&gt;The function constructs a deterministic runtime context and invokes the worker:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;forward zone name&lt;/LI&gt;
&lt;LI&gt;reverse zone name(s)&lt;/LI&gt;
&lt;LI&gt;container group name&lt;/LI&gt;
&lt;LI&gt;current private IP&lt;/LI&gt;
&lt;LI&gt;TTL and execution flags&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The worker performs reconciliation and exits with explicit success or failure.&lt;/P&gt;
&lt;H2&gt;5. What “reconciliation” actually means&lt;/H2&gt;
&lt;P&gt;Reconciliation follows clear, idempotent semantics.&lt;/P&gt;
&lt;H3&gt;Create / Update events&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Upsert A record&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;if record exists and matches current IP → no‑op&lt;/LI&gt;
&lt;LI&gt;else → create or overwrite with new IP&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Upsert PTR record&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;compute PTR name using IP octets and reverse zone alignment&lt;/LI&gt;
&lt;LI&gt;create or overwrite PTR to hostname.&amp;lt;forward-zone&amp;gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Delete events&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;delete the A record for the hostname&lt;/LI&gt;
&lt;LI&gt;scan PTR record sets:
&lt;UL&gt;
&lt;LI&gt;remove targets matching the hostname&lt;/LI&gt;
&lt;LI&gt;delete record set if empty&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;All operations are safe to repeat.&lt;/P&gt;
&lt;H2&gt;6. Why IP drift tracking is separate&lt;/H2&gt;
&lt;P&gt;DNS reconciliation enforces correctness &lt;STRONG&gt;at event time&lt;/STRONG&gt;, but drift can still occur due to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;manual DNS edits&lt;/LI&gt;
&lt;LI&gt;partial failures&lt;/LI&gt;
&lt;LI&gt;delete / recreate race conditions&lt;/LI&gt;
&lt;LI&gt;unexpected redeployments or restarts&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The drift tracker exists as a &lt;STRONG&gt;continuous correctness validator&lt;/STRONG&gt;, not as a repair mechanism.&lt;/P&gt;
&lt;P&gt;This separation keeps responsibilities clear:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Reconciler&lt;/STRONG&gt; → fixes state&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Drift tracker&lt;/STRONG&gt; → observes and reports state&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;7. Observability: correctness vs runtime health&lt;/H2&gt;
&lt;P&gt;There is an important distinction:&lt;/P&gt;
&lt;H3&gt;Runtime health&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;container crashes&lt;/LI&gt;
&lt;LI&gt;image pull failures&lt;/LI&gt;
&lt;LI&gt;restarts&lt;/LI&gt;
&lt;LI&gt;platform events&lt;BR /&gt;(visible in standard ACI / Container logs)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;DNS correctness&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;A record != live IP&lt;/LI&gt;
&lt;LI&gt;missing PTR records&lt;/LI&gt;
&lt;LI&gt;stale reverse mappings&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The IP Drift Tracker provides this &lt;STRONG&gt;correctness layer&lt;/STRONG&gt;, which complements — not replaces — runtime monitoring.&lt;/P&gt;
&lt;H2&gt;8. Engineering constraints that shape the design&lt;/H2&gt;
&lt;H3&gt;At‑least‑once delivery → idempotency&lt;/H3&gt;
&lt;P&gt;Event Grid delivery must be treated as &lt;STRONG&gt;at‑least‑once&lt;/STRONG&gt;.&lt;BR /&gt;Every reconciliation action is safe to execute multiple times.&lt;/P&gt;
&lt;H3&gt;Explicit failure behavior&lt;/H3&gt;
&lt;P&gt;If the worker script returns a non‑zero exit code:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;the function invocation fails&lt;/LI&gt;
&lt;LI&gt;the failure is visible and alertable&lt;/LI&gt;
&lt;LI&gt;incorrect DNS does not silently persist&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Apr 2026 11:35:49 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/detecting-aci-ip-drift-and-auto-updating-private-dns-a-ptr-with/m-p/4507667#M830</guid>
      <dc:creator>Chiragsharma30</dc:creator>
      <dc:date>2026-04-01T11:35:49Z</dc:date>
    </item>
    <item>
      <title>Help wanted: Refresh articles in Azure Architecture Center (AAC)</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/help-wanted-refresh-articles-in-azure-architecture-center-aac/m-p/4503060#M825</link>
      <description>&lt;P&gt;I’m the Project Manager for architecture review boards (ARBs) in the Azure Architecture Center (AAC).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We’re looking for subject matter experts to help us improve the freshness of the AAC, Cloud Adoption Framework (CAF), and Well-Architected Framework (WAF) repos. This opportunity is currently limited to&amp;nbsp;&lt;STRONG&gt;Microsoft employees only.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As an ARB member, your main focus is to &lt;STRONG&gt;review, update, and maintain content to meet quarterly freshness targets.&amp;nbsp; &lt;/STRONG&gt;Your involvement directly impacts the quality, relevance, and direction of Azure Patterns &amp;amp; Practices content across AAC, CAF, and WAF. The content in these repos reaches&amp;nbsp;&lt;STRONG&gt;almost 900,000 unique readers per month&lt;/STRONG&gt;, so your time&lt;STRONG&gt; &lt;/STRONG&gt;investment has a big, global impact. The expected commitment is 4-6 hours per month, including attendance at weekly or bi-weekly sync meetings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Become an ARB member to gain:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Increased visibility and credibility as a subject‑matter expert by contributing to Microsoft‑authored guidance used by customers and partners worldwide.&lt;/LI&gt;
&lt;LI&gt;Broader internal reach and networking without changing roles or teams.&lt;/LI&gt;
&lt;LI&gt;Attribution on Microsoft Learn articles that you own.&lt;/LI&gt;
&lt;LI&gt;Opportunity to take on&lt;STRONG&gt; expanded roles over time&lt;/STRONG&gt; (for example, owning a set of articles, mentoring contributors, or helping shape ARB direction).&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We’re recruiting new members across several ARBs. &lt;STRONG&gt;Our highest needs are in the Web ARB, Containers ARB, and Data &amp;amp; Analytics ARB&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;The Web ARB&lt;/STRONG&gt; focuses on modern web application architecture on Azure—App Service and PaaS web apps, APIs and API Management, ingress and networking (Application Gateway, Front Door, DNS), security and identity, and designing for reliability, scalability, and disaster recovery.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The Containers ARB&lt;/STRONG&gt; focuses on containerized and Kubernetes‑based architectures—AKS design and operations, networking and ingress, security and identity, scalability, and reliability for production container platforms.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The Data &amp;amp; Analytics ARB&lt;/STRONG&gt; focuses on data platform and analytics architectures—data ingestion and integration, analytics and reporting, streaming and real‑time scenarios, data security and governance, and designing scalable, reliable data solutions on Azure.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;We’re also looking for people to &lt;STRONG&gt;take ownership of other articles across AAC, CAF, and WAF&lt;/STRONG&gt;. These articles span many areas, including application and solution architectures, containers and compute, networking and security, governance and observability, data and integration, and reliability and operational best practices.&lt;/P&gt;
&lt;P&gt;You don’t need to know everything—&lt;STRONG&gt;deep expertise in one or two areas&lt;/STRONG&gt; and an interest in keeping Azure architecture guidance accurate and current is what matters most.&lt;/P&gt;
&lt;P&gt;Please reply to this post if you’re interested in becoming an ARB member, and I’ll follow up with next steps. If you prefer, you can email me at v-jodimartis@microsoft.com.&lt;/P&gt;
&lt;P&gt;Thanks! 🙂&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2026 18:12:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/help-wanted-refresh-articles-in-azure-architecture-center-aac/m-p/4503060#M825</guid>
      <dc:creator>jodimartis</dc:creator>
      <dc:date>2026-03-17T18:12:50Z</dc:date>
    </item>
    <item>
      <title>Admin‑On‑Behalf‑Of issue when purchasing subscription</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/admin-on-behalf-of-issue-when-purchasing-subscription/m-p/4494521#M824</link>
      <description>&lt;P&gt;Hello everyone!&lt;/P&gt;&lt;P&gt;I want to reach out to you on the internet and ask if anyone has the same issue as we do&amp;nbsp;&lt;STRONG&gt;when creating PAYG Azure subscriptions&lt;/STRONG&gt; in a customer's tenant, in which we have delegated access via GDAP through PartnerCenter. &lt;EM&gt;It is a bit AI formatted question.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When an &lt;STRONG&gt;Azure NCE subscription&lt;/STRONG&gt; is created for a customer via an &lt;STRONG&gt;Indirect Provider portal&lt;/STRONG&gt;, the &lt;STRONG&gt;CSP Admin Agent&lt;/STRONG&gt; (foreign principal) is &lt;STRONG&gt;not automatically assigned Owner&lt;/STRONG&gt; on the subscription.&lt;/P&gt;&lt;P&gt;As a result:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;AOBO (Admin‑On‑Behalf‑Of) does not activate&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;The subscription is &lt;STRONG&gt;invisible&lt;/STRONG&gt; to the partner when accessing Azure via &lt;STRONG&gt;Partner Center service links&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;The partner cannot manage and deploy to a subscription they just provided&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This breaks the expected delegated administration flow.&lt;/P&gt;&lt;img&gt;AOBO explanation from a Microsoft &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/shows/cspdev/module-11-admin-on-behalf-of-aobo" target="_blank"&gt;technical stream&lt;/A&gt;&lt;/img&gt;&lt;H2&gt;Expected Behavior&lt;/H2&gt;&lt;P&gt;For &lt;STRONG&gt;CSP‑created Azure subscriptions&lt;/STRONG&gt;:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The &lt;STRONG&gt;CSP Admin Agent group&lt;/STRONG&gt; should automatically receive &lt;STRONG&gt;Owner&lt;/STRONG&gt; (or equivalent) on the subscription&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;AOBO should work immediately&lt;/STRONG&gt;, without customer involvement&lt;/LI&gt;&lt;LI&gt;The partner should be able to see the subscription in Azure Portal and deploy resources&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Actual Behavior Observed&lt;/H2&gt;&lt;P&gt;For &lt;STRONG&gt;Azure NCE subscriptions created via an Indirect Provider&lt;/STRONG&gt;:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;No RBAC assignment is created for the &lt;STRONG&gt;foreign AdminAgent group&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;The subscription is visible&amp;nbsp;&lt;STRONG&gt;only to users inside the customer tenant&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Partner Center role (&lt;STRONG&gt;Admin Agent foreign group&lt;/STRONG&gt;) is present, but&amp;nbsp;&lt;STRONG&gt;without Azure RBAC.&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;Required Customer Workaround&lt;/H2&gt;&lt;P&gt;For each new Azure NCE subscription, the customer must:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Sign in as &lt;STRONG&gt;Global Admin&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Use &lt;STRONG&gt;“Elevate access to manage all Azure subscriptions and management groups”&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Assign themselves &lt;STRONG&gt;Owner&lt;/STRONG&gt; on the subscription&lt;/LI&gt;&lt;LI&gt;Manually assign &lt;STRONG&gt;Owner&lt;/STRONG&gt; to the partner’s &lt;STRONG&gt;foreign AdminAgent group&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Only after this does AOBO start working.&lt;/P&gt;&lt;H2&gt;Example&lt;/H2&gt;&lt;P&gt;Partner tries to access the subscription:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;https://portal.azure.com/#@customer.onmicrosoft.com/resource/subscriptions/&amp;lt;subscription-id&amp;gt;/overview&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;But there is no subscription visible "&lt;EM&gt;None of the entries matched the given filter&lt;/EM&gt;"&lt;/P&gt;&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin?tabs=azure-portal%2Centra-audit-logs#step-1-elevate-access-for-a-global-administrator" target="_blank"&gt;Elevation is needed&lt;/A&gt; from the customer's global admin.&lt;/P&gt;&lt;P&gt;and manual RBAC fix in Cloud console:&lt;/P&gt;&lt;LI-CODE lang=""&gt;az role assignment create \
--assignee-object-id "&amp;lt;AdminAgent-Foreign-Group-ObjectId&amp;gt;" \
--role "Owner" \
--scope "/subscriptions/&amp;lt;subscription-id&amp;gt;" \
--assignee-principal-type "ForeignGroup"&lt;/LI-CODE&gt;&lt;P&gt;After this, AOBO works as expected for delegated administrators (foreign user accounts).&lt;/P&gt;&lt;H2&gt;Why This Is a Problem&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;Partners &lt;STRONG&gt;sell&lt;/STRONG&gt; Azure subscriptions that they cannot&amp;nbsp;&lt;STRONG&gt;access&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Forces &lt;STRONG&gt;resources from customers to involvement &lt;/STRONG&gt;from customers&lt;/LI&gt;&lt;LI&gt;Breaks &lt;STRONG&gt;delegated administration&lt;/STRONG&gt; principles&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;For Indirect CSPs managing many tenants, this is a decent &lt;STRONG&gt;operational blocker&lt;/STRONG&gt;.&lt;/P&gt;&lt;H2&gt;Key Question to Microsoft / Community&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;Does anyone else struggle with this?&lt;/LI&gt;&lt;LI&gt;Is this behavior&amp;nbsp;&lt;STRONG&gt;by design&lt;/STRONG&gt; for Azure NCE + Indirect CSP?&lt;UL&gt;&lt;LI&gt;Am I missing some point of view on why not to do it in the suggested way?&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Thu, 12 Feb 2026 07:56:13 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/admin-on-behalf-of-issue-when-purchasing-subscription/m-p/4494521#M824</guid>
      <dc:creator>ivoko</dc:creator>
      <dc:date>2026-02-12T07:56:13Z</dc:date>
    </item>
    <item>
      <title>[Design Pattern] Handling race conditions and state in serverless data pipelines</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/design-pattern-handling-race-conditions-and-state-in-serverless/m-p/4477664#M820</link>
      <description>&lt;P&gt;Hello community,&lt;/P&gt;&lt;P&gt;I recently faced a tricky data engineering challenge involving a lot of Parquet files (about 2 million records) that needed to be ingested, transformed, and split into different entities.&lt;/P&gt;&lt;P&gt;The hard part wasn't the volume, but the logic. We needed to generate globally unique, sequential IDs for specific columns while keeping the execution time under two hours.&lt;/P&gt;&lt;P&gt;We were restricted to using only Azure Functions, ADF, and Storage. This created a conflict: we needed parallel processing to meet the time limit, but parallel processing usually breaks sequential ID generation due to race conditions on the counters.&lt;/P&gt;&lt;P&gt;I documented the three architecture patterns we tested to solve this:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Sequential processing with ADF (Safe, but failed the 2-hour time limit).&lt;BR /&gt;2. Parallel processing with external locking/e-tags on Table Storage (Too complex and we still hit issues with inserts).&lt;BR /&gt;3. A "Fan-Out/Fan-In" pattern using Azure Durable Functions and Durable Entities.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;We ended up going with Durable Entities. Since they act as stateful actors, they allowed us to handle the ID counter state sequentially in memory while the heavy lifting (transformation) ran in parallel. It solved the race condition issue without killing performance.&lt;/P&gt;&lt;P&gt;I wrote a detailed breakdown of the logic and trade-offs here if anyone is interested in the implementation details:&lt;/P&gt;&lt;P&gt;&lt;A class="lia-external-url" href="https://medium.com/@yahiachames/data-ingestion-pipeline-a-data-engineers-dilemma-and-azure-solutions-7c4b36f11351" target="_blank"&gt;Data Ingestion Pipeline: A Data Engineer’s Dilemma and Azure Solutions&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I am curious if others have used Durable Entities for this kind of ETL work, or if you usually rely on an external database sequence to handle ID generation in serverless setups?&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chameseddine&lt;/P&gt;</description>
      <pubDate>Sat, 13 Dec 2025 12:22:51 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/design-pattern-handling-race-conditions-and-state-in-serverless/m-p/4477664#M820</guid>
      <dc:creator>Chameseddine</dc:creator>
      <dc:date>2025-12-13T12:22:51Z</dc:date>
    </item>
    <item>
      <title>Understanding Azure AD Tenants, Users, Groups, and Roles: A Practical Guide</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/understanding-azure-ad-tenants-users-groups-and-roles-a/m-p/4473259#M812</link>
      <description>&lt;P&gt;As cloud adoption continues to shape modern IT infrastructures, Microsoft Azure Active Directory (Azure AD)—now part of Microsoft Entra ID—has become one of the most essential identity and access management (IAM) solutions for organizations. Whether you’re setting up a brand-new cloud environment or managing a hybrid workforce, understanding how Azure AD tenants, users, groups, and roles work is fundamental to keeping your environment secure, organized, and scalable.&lt;/P&gt;
&lt;P&gt;This guide breaks down each of these components in simple, practical terms, helping you gain the confidence to manage Azure identity services effectively.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/understanding-azure-ad-tenants-users-groups-and-roles-a-practical-guide/" target="_blank"&gt;https://dellenny.com/understanding-azure-ad-tenants-users-groups-and-roles-a-practical-guide/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Nov 2025 15:52:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/understanding-azure-ad-tenants-users-groups-and-roles-a/m-p/4473259#M812</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-11-26T15:52:55Z</dc:date>
    </item>
    <item>
      <title>How to Implement Azure AD Conditional Access Policies Step-by-Step</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/how-to-implement-azure-ad-conditional-access-policies-step-by/m-p/4473258#M811</link>
      <description>&lt;P&gt;In today’s cloud-first world, identity is the new security perimeter. With employees logging in from different devices, locations, and networks, traditional access control is no longer enough. This is where&amp;nbsp;&lt;STRONG&gt;Azure AD (now Microsoft Entra ID) Conditional Access&lt;/STRONG&gt;&amp;nbsp;comes in. It allows organizations to enforce automated decision-making about who can access what, under which conditions, and using which devices.&lt;/P&gt;
&lt;P&gt;If you’ve ever wondered how to configure Conditional Access the right way, without breaking user access or causing downtime, this guide walks you through the process&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/how-to-implement-azure-ad-conditional-access-policies-step-by-step/" target="_blank"&gt;https://dellenny.com/how-to-implement-azure-ad-conditional-access-policies-step-by-step/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Nov 2025 15:52:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/how-to-implement-azure-ad-conditional-access-policies-step-by/m-p/4473258#M811</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-11-26T15:52:25Z</dc:date>
    </item>
    <item>
      <title>Managing Azure AD Identity Protection: Detecting and Mitigating Risky Sign-ins</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/managing-azure-ad-identity-protection-detecting-and-mitigating/m-p/4473257#M810</link>
      <description>&lt;P&gt;In today’s digital landscape, securing user identities is more critical than ever. Organizations leveraging cloud services, especially Microsoft Azure, face an increasing number of identity-based threats, including account compromise, phishing attacks, and unauthorized access.&amp;nbsp;&lt;STRONG&gt;Azure Active Directory (Azure AD) Identity Protection&lt;/STRONG&gt; provides a robust set of tools to help IT teams detect, investigate, and mitigate risky sign-ins effectively. In this blog, we’ll explore how to manage Azure AD Identity Protection, detect risky sign-ins, and implement strategies to minimize security risks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/managing-azure-ad-identity-protection-detecting-and-mitigating-risky-sign-ins/" target="_blank"&gt;https://dellenny.com/managing-azure-ad-identity-protection-detecting-and-mitigating-risky-sign-ins/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Nov 2025 15:51:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/managing-azure-ad-identity-protection-detecting-and-mitigating/m-p/4473257#M810</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-11-26T15:51:57Z</dc:date>
    </item>
    <item>
      <title>Azure Enterprise-Scale Landing Zone Building a Future</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/azure-enterprise-scale-landing-zone-building-a-future/m-p/4470064#M807</link>
      <description>&lt;P&gt;In today’s fast-paced digital landscape, enterprises are under constant pressure to innovate, scale efficiently, and maintain governance and security across their cloud environments. Microsoft Azure’s&amp;nbsp;&lt;STRONG&gt;Enterprise-Scale&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 14 Nov 2025 17:41:43 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/azure-enterprise-scale-landing-zone-building-a-future/m-p/4470064#M807</guid>
      <dc:creator>zahidtimon</dc:creator>
      <dc:date>2025-11-14T17:41:43Z</dc:date>
    </item>
    <item>
      <title>The Role of a Software Architect in Modern Teams</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/the-role-of-a-software-architect-in-modern-teams/m-p/4464060#M803</link>
      <description>&lt;P&gt;In today’s fast-moving technology landscape, the role of a&amp;nbsp;&lt;STRONG&gt;software architect&lt;/STRONG&gt;&amp;nbsp;is more important — and more nuanced — than ever before. Far from being just the “technical visionary,” modern software architects serve as bridge builders between technology, business goals, and people. They ensure that software systems are scalable, reliable, and aligned with the long-term vision of the organization.&lt;/P&gt;
&lt;P&gt;Let’s explore how this role has evolved and why it’s so critical in modern teams&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/the-role-of-a-software-architect-in-modern-teams/" target="_blank"&gt;https://dellenny.com/the-role-of-a-software-architect-in-modern-teams/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 15:59:09 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/the-role-of-a-software-architect-in-modern-teams/m-p/4464060#M803</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-10-24T15:59:09Z</dc:date>
    </item>
    <item>
      <title>What Is Software Architecture? A Practical Definition</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/what-is-software-architecture-a-practical-definition/m-p/4464058#M802</link>
      <description>&lt;P&gt;If you’ve ever worked on a software project that grew beyond a few files, you’ve likely run into a question that every developer eventually faces:&amp;nbsp;&lt;EM&gt;How should this be structured?&lt;/EM&gt;&amp;nbsp;That’s where&amp;nbsp;&lt;STRONG&gt;software architecture&lt;/STRONG&gt; comes in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/what-is-software-architecture-a-practical-definition/" target="_blank"&gt;https://dellenny.com/what-is-software-architecture-a-practical-definition/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 15:57:53 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/what-is-software-architecture-a-practical-definition/m-p/4464058#M802</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-10-24T15:57:53Z</dc:date>
    </item>
    <item>
      <title>Azure Enterprise-Scale Landing Zone Building a Future-Ready Cloud Foundation</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/azure-enterprise-scale-landing-zone-building-a-future-ready/m-p/4460899#M801</link>
      <description>&lt;P&gt;In today’s fast-paced digital landscape, enterprises are under constant pressure to innovate, scale efficiently, and maintain governance and security across their cloud environments. Microsoft Azure’s&amp;nbsp;&lt;STRONG&gt;Enterprise-Scale Landing Zone (ESLZ)&lt;/STRONG&gt; provides the blueprint organizations need to accelerate their cloud adoption journey while maintaining control, compliance, and agility.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/azure-enterprise-scale-landing-zone-building-a-future-ready-cloud-foundation/" target="_blank"&gt;https://dellenny.com/azure-enterprise-scale-landing-zone-building-a-future-ready-cloud-foundation/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Oct 2025 08:40:12 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/azure-enterprise-scale-landing-zone-building-a-future-ready/m-p/4460899#M801</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-10-12T08:40:12Z</dc:date>
    </item>
    <item>
      <title>What Microsoft Entra Really Means for Identity and Security</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/what-microsoft-entra-really-means-for-identity-and-security/m-p/4458980#M798</link>
      <description>&lt;P&gt;In recent years, identity has become the new perimeter. As users, devices, and applications shift beyond the walls of data centers, the classic castle-and-moat network model no longer suffices. Security increasingly hinges on&amp;nbsp;&lt;EM&gt;who&lt;/EM&gt;&amp;nbsp;or&amp;nbsp;&lt;EM&gt;what&lt;/EM&gt;&amp;nbsp;is accessing resources,&amp;nbsp;&lt;EM&gt;how&lt;/EM&gt;&amp;nbsp;they authenticate, and&amp;nbsp;&lt;EM&gt;under what conditions&lt;/EM&gt;&amp;nbsp;access is granted.&lt;/P&gt;
&lt;P&gt;Microsoft’s launch of&amp;nbsp;&lt;STRONG&gt;Microsoft Entra&lt;/STRONG&gt;&amp;nbsp;signals a more aggressive posture in identity, access, and zero-trust thinking. It’s not just renaming Azure Active Directory; it’s a re-alignment of how Microsoft sees identity in a hybrid, multi-cloud, and AI-driven world.&lt;/P&gt;
&lt;P&gt;So: what does Microsoft Entra really mean — beyond the marketing — for identity and security?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/what-microsoft-entra-really-means-for-identity-and-security/" target="_blank"&gt;https://dellenny.com/what-microsoft-entra-really-means-for-identity-and-security/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 04 Oct 2025 09:43:05 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/what-microsoft-entra-really-means-for-identity-and-security/m-p/4458980#M798</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-10-04T09:43:05Z</dc:date>
    </item>
    <item>
      <title>The Hybrid Cloud Playbook Mastering Azure Stack</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/the-hybrid-cloud-playbook-mastering-azure-stack/m-p/4458977#M797</link>
      <description>&lt;P&gt;In today’s fast-paced digital landscape, organizations face a critical challenge: how to balance the agility and scalability of the public cloud with the control and compliance benefits of on-premises infrastructure. Enter&amp;nbsp;&lt;STRONG&gt;Azure Stack&lt;/STRONG&gt;, Microsoft’s hybrid cloud solution, designed to bring the power of Azure into your datacenter while enabling seamless integration with the public cloud.&lt;/P&gt;
&lt;P&gt;This blog serves as your playbook for mastering Azure Stack, guiding you through key concepts, strategies, and best practices to help your organization thrive in a hybrid cloud environment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/the-hybrid-cloud-playbook-mastering-azure-stack/" target="_blank"&gt;https://dellenny.com/the-hybrid-cloud-playbook-mastering-azure-stack/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 04 Oct 2025 09:26:44 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/the-hybrid-cloud-playbook-mastering-azure-stack/m-p/4458977#M797</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-10-04T09:26:44Z</dc:date>
    </item>
    <item>
      <title>Centralized Logging in Azure Proven Observability Patterns for Modern Apps</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/centralized-logging-in-azure-proven-observability-patterns-for/m-p/4454498#M795</link>
      <description>&lt;P&gt;As modern applications move to distributed and cloud-native architectures, observability becomes critical for ensuring system reliability, diagnosing issues, and improving performance. Among the three pillars of observability—&lt;STRONG&gt;logs, metrics, and traces&lt;/STRONG&gt;—logs often form the foundation for troubleshooting. However, in distributed environments, logs are scattered across multiple services, making centralized logging an essential pattern.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/centralized-logging-in-azure-proven-observability-patterns-for-modern-apps/" target="_blank"&gt;https://dellenny.com/centralized-logging-in-azure-proven-observability-patterns-for-modern-apps/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Sep 2025 13:26:05 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/centralized-logging-in-azure-proven-observability-patterns-for/m-p/4454498#M795</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-09-16T13:26:05Z</dc:date>
    </item>
    <item>
      <title>Web Portal - Azure architecture best practice</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/web-portal-azure-architecture-best-practice/m-p/4454067#M791</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I am seeking some ideas and challenges etc.. what else to consider..&lt;/P&gt;&lt;P&gt;Designing a dummy project in Azure. Needs to be secure, scalable etc.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A web portal with SQL back end and site replication for HA / DR.&lt;/P&gt;&lt;img /&gt;&lt;P&gt;Many Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 15 Sep 2025 09:15:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/web-portal-azure-architecture-best-practice/m-p/4454067#M791</guid>
      <dc:creator>jimmy123</dc:creator>
      <dc:date>2025-09-15T09:15:58Z</dc:date>
    </item>
    <item>
      <title>Riding in Tandem Unlocking the Sidecar Pattern in Azure Microservices</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/riding-in-tandem-unlocking-the-sidecar-pattern-in-azure/m-p/4453833#M788</link>
      <description>&lt;P&gt;In the world of cloud-native applications, microservices bring agility, scalability, and speed. But with this modular approach comes complexity: logging, monitoring, proxying, and configuration often become tricky. That’s where the&amp;nbsp;&lt;STRONG&gt;Sidecar Pattern&lt;/STRONG&gt; steps in — and Azure makes it easier than ever to implement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/riding-in-tandem-unlocking-the-sidecar-pattern-in-azure-microservices/" target="_blank"&gt;https://dellenny.com/riding-in-tandem-unlocking-the-sidecar-pattern-in-azure-microservices/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 13 Sep 2025 20:24:34 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/riding-in-tandem-unlocking-the-sidecar-pattern-in-azure/m-p/4453833#M788</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-09-13T20:24:34Z</dc:date>
    </item>
    <item>
      <title>Building a Fully Secure Architecture Integrating Azure OpenAI</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/building-a-fully-secure-architecture-integrating-azure-openai/m-p/4449699#M786</link>
      <description>&lt;P&gt;As AI adoption accelerates, organizations must ensure that AI services are&amp;nbsp;&lt;STRONG&gt;secure, scalable, and compliant&lt;/STRONG&gt;&amp;nbsp;with enterprise security policies.&amp;nbsp;&lt;STRONG&gt;Azure OpenAI Service&lt;/STRONG&gt;&amp;nbsp;provides powerful AI capabilities, but securing access to it is crucial when integrating with applications. In this blog, we will explore how to build a&amp;nbsp;&lt;STRONG&gt;fully secure architecture&lt;/STRONG&gt;&amp;nbsp;by integrating&amp;nbsp;&lt;STRONG&gt;Azure OpenAI Service with Azure API Management (APIM), Private Endpoints, and Applications.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/building-a-fully-secure-architecture-integrating-azure-openai-with-apim-private-endpoints-and-applications/" target="_blank"&gt;https://dellenny.com/building-a-fully-secure-architecture-integrating-azure-openai-with-apim-private-endpoints-and-applications/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 18:42:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/building-a-fully-secure-architecture-integrating-azure-openai/m-p/4449699#M786</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-08-29T18:42:24Z</dc:date>
    </item>
    <item>
      <title>Service Mesh Architecture Pattern in Azure</title>
      <link>https://techcommunity.microsoft.com/t5/azure-architecture/service-mesh-architecture-pattern-in-azure/m-p/4448708#M785</link>
      <description>&lt;P&gt;As organizations modernize applications using&amp;nbsp;&lt;STRONG&gt;microservices&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;cloud-native architectures&lt;/STRONG&gt;, managing how these services communicate becomes increasingly complex. Microservices often run across distributed environments, scaling dynamically, and interacting over the network. This is where the&amp;nbsp;&lt;STRONG&gt;Service Mesh architecture pattern&lt;/STRONG&gt;&amp;nbsp;comes in — providing a dedicated infrastructure layer for&amp;nbsp;&lt;STRONG&gt;service-to-service communication, security, and observability&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;In the Azure ecosystem, implementing a Service Mesh can simplify operational challenges while improving reliability and control of microservices deployments.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://dellenny.com/service-mesh-architecture-pattern-in-azure-handling-service-to-service-communication-security-and-observability/" target="_blank"&gt;https://dellenny.com/service-mesh-architecture-pattern-in-azure-handling-service-to-service-communication-security-and-observability/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Aug 2025 14:53:05 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-architecture/service-mesh-architecture-pattern-in-azure/m-p/4448708#M785</guid>
      <dc:creator>JohnNaguib</dc:creator>
      <dc:date>2025-08-27T14:53:05Z</dc:date>
    </item>
  </channel>
</rss>

