<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Arnaud Lheureux Blog</title>
        <link>https://www.lheureuxlabs.com/</link>
        <description>Arnaud Lheureux Blog</description>
        <lastBuildDate>Sat, 24 Oct 2026 09:13:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Building and shipping AzureCAF 2.0.0 with GitHub Copilot]]></title>
            <link>https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot</link>
            <guid>https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot</guid>
            <pubDate>Sat, 24 Oct 2026 09:13:00 GMT</pubDate>
            <description><![CDATA[How Copilot clients, cloud agents, proactive workflows, maintainer briefings, and GitHub security fit into AzureCAF delivery, with a candid look at the numbers.]]></description>
            <content:encoded><![CDATA[<p>Before the 2.0 release, one Copilot-assisted update expanded AzureCAF's resource catalog by <strong>22%</strong>. The initial proposal was marked ready for review <strong>43 minutes after assignment</strong>; the reviewed change became available in a release about <strong>11 days after the PR opened</strong>.</p>
<p>Preparing AzureCAF 2.0.0, published on October 19, 2026, gave us a chance to improve the whole delivery process: discovering work, preparing changes, keeping maintainers informed, and getting a release out safely.</p>
<p>Testing was a particularly useful application of AI: we could expand the checks, investigate failures, and build release confidence over successive iterations.</p>
<p>The <a href="https://registry.terraform.io/providers/aztfmod/azurecaf/2.0.0" target="_blank" rel="noopener noreferrer" class="">provider</a> generates Azure resource names in Terraform. Its history gives us a practical case study in AI-assisted development, community contributions, and the maintainer time needed to bring them together.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="one-repository-connects-the-work">One repository connects the work<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#one-repository-connects-the-work" class="hash-link" aria-label="Direct link to One repository connects the work" title="Direct link to One repository connects the work" translate="no">​</a></h2>
<p>I use Copilot through the CLI, Visual Studio Code, and the desktop app for interactive work. The <a href="https://docs.github.com/en/copilot/concepts/copilot-surfaces/copilot-on-github" target="_blank" rel="noopener noreferrer" class="">cloud agent</a> handles delegated tasks, preparing changes in a cloud environment and bringing them back for review.</p>
<p><a href="https://github.github.com/gh-aw/" target="_blank" rel="noopener noreferrer" class="">GitHub Agentic Workflows</a> runs recurring research and event-driven tasks. Findings, proposed changes, test results, and maintainer reports come back into the same repository.</p>
<p><img decoding="async" loading="lazy" alt="Repository delivery loop: interactive clients and local agents, Copilot cloud agent, and agentic workflows contribute to shared issues and PRs; CI and Repo Status inform maintainer decisions, with GitHub security checks across the process and feedback from releases into future work" src="https://www.lheureuxlabs.com/assets/images/agentic-repo-delivery-2ed1ffcd44d82e4e17f4735f6a606621.svg" width="1000" height="1430" class="img_ev3q"></p>
<p><em>Shared issues, PRs, and checks connect the tools with maintainer decisions. Illustrations use <a href="https://github.com/primer/octicons" target="_blank" rel="noopener noreferrer" class="">GitHub Octicons</a>; <a href="https://www.lheureuxlabs.com/assets/files/agentic-repo-delivery-216a98f5abbcfc96d9f39b48ce3abe46.excalidraw" target="_blank" class="">editable diagram source</a>.</em></p>
<p>Before delegating, I want a clear task, an expected result, and a way to check it. A cloud agent can work on a bounded change while I investigate another problem locally. The PR becomes the handoff: a diff, supporting sources, and evidence from the checks. Release approval remains a maintainer decision.</p>
<p>Shared <a href="https://github.com/aztfmod/terraform-provider-azurecaf/tree/v2.0.0/.github/skills" target="_blank" rel="noopener noreferrer" class="">repository skills</a> give agents the research and testing procedures behind that handoff.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>AzureCAF context: naming, usage, and the 2.0.0 changes</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<p>Back in 2021, I wrote about <a class="" href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module">my first contribution to AzureCAF</a>: naming support for Azure Dedicated Hosts. As Azure added services, researching new entries and maintaining existing definitions became a growing part of our work.</p>
<p>The <a href="https://registry.terraform.io/providers/aztfmod/azurecaf/2.0.0" target="_blank" rel="noopener noreferrer" class="">AzureCAF provider</a> generates names using resource-specific Azure naming rules and CAF abbreviations. It handles differences in allowed characters, length, prefixes, suffixes, and random characters across a catalog of 520 definitions.</p>
<p>A shared Terraform naming module can also centralize rules, be versioned, and calculate names offline during planning. We use AzureCAF for its maintained catalog and the implementation and tests behind it. Teams can reuse that work across their Terraform configurations.</p>









































<table><thead><tr><th>Consideration</th><th>Naming inside each resource module</th><th>Shared naming module</th><th>AzureCAF provider</th></tr></thead><tbody><tr><td>Rule ownership</td><td>Each module maintains its rules</td><td>One reusable module maintains the rules</td><td>One provider maintains a resource-specific catalog</td></tr><tr><td>Consistency</td><td>Depends on keeping implementations aligned</td><td>Shared implementation; callers select module versions</td><td>Shared implementation; Terraform resolves a compatible provider version</td></tr><tr><td>Azure constraints</td><td>Implement checks for the resource types you use</td><td>Implement and maintain the catalog your module supports</td><td>Reuse the catalog of 520 definitions and its existing checks</td></tr><tr><td>Planning without Azure access</td><td>Possible with pure HCL naming logic</td><td>Possible with pure HCL naming logic</td><td>Local name generation</td></tr><tr><td>Trade-off</td><td>Simple for a narrow convention; repeated logic needs coordination</td><td>Flexible, with naming logic and tests to maintain</td><td>Ready-made catalog; adds a provider dependency</td></tr></tbody></table>
<p>For modules with a fixed or specialized convention, accepting a caller-supplied name may be all you need. Global name availability still needs to be checked with Azure.</p>
<p>The Registry showed <strong>31.0 million downloads</strong> when I captured the page below on October 24, 2026. That count covers all published versions, repeat installations, and CI runs; one user may account for many downloads.</p>
<p><img decoding="async" loading="lazy" alt="Terraform Registry page for AzureCAF showing 31.0 million downloads and version 2.0.0" src="https://www.lheureuxlabs.com/assets/images/provider-registry-usage-51f5e9a04c628b0b5d76631713ab399e.png" width="1440" height="1200" class="img_ev3q"></p>
<p><em>Terraform Registry screenshot, October 24, 2026. Counts change over time.</em></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-200-gave-us">What 2.0.0 gave us<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#what-200-gave-us" class="hash-link" aria-label="Direct link to What 2.0.0 gave us" title="Direct link to What 2.0.0 gave us" translate="no">​</a></h3>
<p>After version 1.2.34, we had accumulated changes that could affect existing configurations:</p>
<ul>
<li class="">Removing the deprecated <code>azurecaf_naming_convention</code> resource in favor of <code>azurecaf_name</code>.</li>
<li class="">Realigning 64 resource slugs with current CAF abbreviations.</li>
<li class="">Adding 29 AzureRM naming definitions and removing three invalid or obsolete definitions, moving the catalog from 494 to 520 entries.</li>
<li class="">Correcting Azure naming constraints for several resource types.</li>
<li class="">Fixing seeded random generation to use the complete alphabet, which means a previously generated suffix can change.</li>
</ul>
<p>An altered name can mean replacement of a real Azure resource in a Terraform plan. We developed the migration guide alongside the implementation so users could assess those changes before upgrading.</p>
<p>For v1, we chose a critical-fixes-only maintenance line that preserves existing naming behavior.</p>
</div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>The building blocks: GitHub documentation and AzureCAF implementations</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<p>I started the release session with:</p>
<blockquote>
<p>Lets prepare for v2.0.0</p>
</blockquote>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/tree/v2.0.0/.github/skills" target="_blank" rel="noopener noreferrer" class="">repository skills</a> gave Copilot procedures for researching naming rules, updating definitions, and testing changes.</p>
<p>For recurring work, we keep Markdown instructions alongside triggers, tools, and permissions, then compile them into <code>.lock.yml</code> workflows for GitHub Actions.</p>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/README-workflows.md" target="_blank" rel="noopener noreferrer" class="">workflow guide</a> documents the setup, including improvements made after 2.0.0.</p>
<p>The <a href="https://github.github.com/gh-aw/setup/quick-start/" target="_blank" rel="noopener noreferrer" class="">GitHub Agentic Workflows quickstart</a> walks through adding a recurring workflow to a repository. These references pair the general documentation with the files we use in AzureCAF:</p>













































<table><thead><tr><th>Building block</th><th>Documentation</th><th>AzureCAF implementation</th></tr></thead><tbody><tr><td>Agent skills</td><td><a href="https://docs.github.com/en/copilot/concepts/customizations/agent-skills" target="_blank" rel="noopener noreferrer" class="">GitHub's guide to agent skills</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/skills/azure-naming-research/SKILL.md" target="_blank" rel="noopener noreferrer" class="">Naming research skill</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/skills/provider-build-test/SKILL.md" target="_blank" rel="noopener noreferrer" class="">provider build/test skill</a></td></tr><tr><td>Workflow structure and compilation</td><td><a href="https://github.github.com/gh-aw/introduction/how-they-work/" target="_blank" rel="noopener noreferrer" class="">How GitHub Agentic Workflows works</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/weekly-azure-sync.md" target="_blank" rel="noopener noreferrer" class="">Weekly Azure Sync Markdown source</a> and its <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/weekly-azure-sync.lock.yml" target="_blank" rel="noopener noreferrer" class="">compiled Actions workflow</a></td></tr><tr><td>Events, schedules, and filters</td><td><a href="https://github.github.com/gh-aw/reference/triggers/" target="_blank" rel="noopener noreferrer" class="">Agentic workflow triggers</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/issue-to-pr-agent.md" target="_blank" rel="noopener noreferrer" class="">Issue-to-PR workflow</a>, including the <code>new-resource</code> label filter</td></tr><tr><td>Permissions and controlled outputs</td><td><a href="https://github.github.com/gh-aw/reference/permissions/" target="_blank" rel="noopener noreferrer" class="">Permissions</a> and <a href="https://github.github.com/gh-aw/reference/safe-outputs/" target="_blank" rel="noopener noreferrer" class="">safe outputs</a></td><td>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/issue-to-pr-agent.md" target="_blank" rel="noopener noreferrer" class="">Issue-to-PR source</a> declares its tools, read permissions, and PR/comment outputs</td></tr><tr><td>Builds and scheduled tests</td><td><a href="https://docs.github.com/en/actions" target="_blank" rel="noopener noreferrer" class="">GitHub Actions documentation</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/go.yml" target="_blank" rel="noopener noreferrer" class="">Provider CI and nightly regression</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/mock-azurerm.yml" target="_blank" rel="noopener noreferrer" class="">AzureRM mock validation</a></td></tr><tr><td>Maintainer activity reports</td><td><a href="https://github.github.com/gh-aw/setup/quick-start/" target="_blank" rel="noopener noreferrer" class="">Agentic workflow quickstart</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/daily-repo-status.md" target="_blank" rel="noopener noreferrer" class="">Repo Status workflow</a></td></tr><tr><td>Code review and security</td><td><a href="https://docs.github.com/en/copilot/concepts/agents/code-review" target="_blank" rel="noopener noreferrer" class="">Copilot code review</a> and <a href="https://docs.github.com/en/get-started/learning-about-github/about-github-advanced-security" target="_blank" rel="noopener noreferrer" class="">GitHub Advanced Security</a></td><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/codeql.yml" target="_blank" rel="noopener noreferrer" class="">CodeQL workflow</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/security.yml" target="_blank" rel="noopener noreferrer" class="">additional security checks</a></td></tr></tbody></table>
</div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="being-proactive-between-releases">Being proactive between releases<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#being-proactive-between-releases" class="hash-link" aria-label="Direct link to Being proactive between releases" title="Direct link to Being proactive between releases" translate="no">​</a></h2>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/weekly-azure-sync.md" target="_blank" rel="noopener noreferrer" class="">Weekly Azure Sync workflow</a> compares our catalog with tracked AzureRM resources and investigates naming-guidance changes. <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/issue-triage-agent.md" target="_blank" rel="noopener noreferrer" class="">Issue Triage</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/issue-arborist.md" target="_blank" rel="noopener noreferrer" class="">Issue Arborist</a> help organize the resulting backlog.</p>
<p>Selected issues labeled <code>new-resource</code> can trigger the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/issue-to-pr-agent.md" target="_blank" rel="noopener noreferrer" class="">Issue-to-PR workflow</a>. It follows the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/skills/azure-naming-research/SKILL.md" target="_blank" rel="noopener noreferrer" class="">research procedure</a>, updates the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/resourceDefinition.json" target="_blank" rel="noopener noreferrer" class="">catalog</a>, builds the provider, and proposes a PR with supporting sources.</p>
<p>An upstream change can become a research issue before a user reports a failure. Maintainers choose which findings deserve implementation. Each resulting PR should explain its sources, compatibility implications, and remaining uncertainty. Fresh upstream inputs and explicit reporting of incomplete checks are part of maintaining this loop.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-briefing-for-the-maintainer">A briefing for the maintainer<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#a-briefing-for-the-maintainer" class="hash-link" aria-label="Direct link to A briefing for the maintainer" title="Direct link to A briefing for the maintainer" translate="no">​</a></h3>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/daily-repo-status.md" target="_blank" rel="noopener noreferrer" class="">Repo Status workflow</a> gathers recent activity and recommends next steps. It helps me return to the project and decide what to review, investigate, or defer.</p>
<p>When maintenance competes with other commitments, I want a briefing I can act on: the changes awaiting review, the issues behind them, and the next decisions to make. Links to the underlying work let me check a recommendation before committing maintainer time.</p>
<p>Originally daily, it now covers the previous seven days on a weekly schedule. We adjusted the cadence alongside other <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/936" target="_blank" rel="noopener noreferrer" class="">workflow improvements</a> to keep maintainer attention focused.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-stays-in-the-review-path">Security stays in the review path<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#security-stays-in-the-review-path" class="hash-link" aria-label="Direct link to Security stays in the review path" title="Direct link to Security stays in the review path" translate="no">​</a></h3>
<p><a href="https://docs.github.com/en/get-started/learning-about-github/about-github-advanced-security" target="_blank" rel="noopener noreferrer" class="">GitHub Advanced Security</a> and other checks supply review evidence: <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/main/.github/workflows/codeql.yml" target="_blank" rel="noopener noreferrer" class="">CodeQL</a> scans Go and Actions code; Dependabot security updates, secret scanning, and push protection are enabled. These controls cover agent-prepared changes too. Private-repository availability depends on the relevant GitHub security products.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-the-time-went">Where the time went<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#where-the-time-went" class="hash-link" aria-label="Direct link to Where the time went" title="Direct link to Where the time went" translate="no">​</a></h2>
<p>To understand where time was spent, I followed Copilot-opened changes from <strong>draft PR to review-ready proposal, merge, and publication</strong>. The table measures the pace through those stages, using the records available for each milestone.</p>






























<table><thead><tr><th>Measure</th><th>Median elapsed time</th><th>Sample</th></tr></thead><tbody><tr><td>Draft PR opened to marked ready for review</td><td><strong>2h 35m</strong></td><td>22 PRs with a readiness event</td></tr><tr><td>PR opened to merged</td><td><strong>4.53 days</strong></td><td>14 merged PRs</td></tr><tr><td>Merge to first stable release containing the change</td><td><strong>3.98 days</strong></td><td>The same 14 merged PRs</td></tr><tr><td>PR opened to first stable release containing the change</td><td><strong>12.03 days</strong></td><td>The same 14 merged PRs</td></tr></tbody></table>
<p>The recorded proposals typically reached review in hours, while the merged changes reached publication in days. These are calendar times, including waiting between steps. The samples differ, so read each median independently.</p>
<p>The merged PRs in this sample shipped in earlier 1.x releases. Human-led, AI-assisted work, including the 2.0.0 preparation, sits outside this Copilot-author timing sample.</p>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/481" target="_blank" rel="noopener noreferrer" class="">bulk update</a> behind the opening figures shows the work between those milestones. Review removed <strong>16 invalid candidates</strong> from the initial proposal. The final change added <strong>89 definitions</strong>, taking the catalog from 405 to 494, before publication about 11 days after PR creation.</p>
<p>The 2.0.0 <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/733" target="_blank" rel="noopener noreferrer" class="">release PR</a> also closed <strong>18 issues</strong> with a median age of <strong>497 days</strong>, incorporating earlier community work and checking resolutions against the original reports.</p>
<p>Earlier unmarked merged PRs had a median <strong>7.90 days</strong> to publication across 99 PRs. Different tasks, periods, and release conditions make that an imperfect baseline. A causal comparison would need comparable work and recorded effort.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Timing definitions and additional case studies</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<p>The snapshot covers the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pulls" target="_blank" rel="noopener noreferrer" class="">public PR history</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/releases" target="_blank" rel="noopener noreferrer" class="">release records</a> through October 28, 2026. Of 32 Copilot-authored PRs, 14 merged and 18 closed without merging, including superseded or consolidated work. Readiness events were available for 22 PRs. Merge and release medians cover the 14 directly merged PRs; closed, unmerged proposals are excluded from those durations.</p>
<p>Each release is the first published, non-prerelease standard-semver tag containing the merged commit. The medians describe separate distributions and cannot be added together. The earlier unmarked group predates the first visible Copilot PR in May 2025; unrecorded AI assistance remains possible.</p>
<p>The individual timelines vary considerably:</p>

























<table><thead><tr><th>Change</th><th>Issue opened to first review-ready event</th><th>PR opened to stable release</th></tr></thead><tbody><tr><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/311" target="_blank" rel="noopener noreferrer" class="">Azure Dev Center support</a></td><td><strong>10m 20s</strong></td><td><strong>1h 46m</strong></td></tr><tr><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/322" target="_blank" rel="noopener noreferrer" class="">Dev Center regex correction</a></td><td><strong>40m 54s</strong></td><td><strong>12.08 days</strong></td></tr><tr><td><a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/481" target="_blank" rel="noopener noreferrer" class="">Bulk catalog expansion</a></td><td><strong>1h 47m</strong></td><td><strong>10.98 days</strong></td></tr></tbody></table>
<p>There is a long tail too. The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/357" target="_blank" rel="noopener noreferrer" class="">Network Connection Monitor PR</a> was marked ready about 28 hours after opening and took approximately <strong>183 days</strong> to reach a release.</p>
<p>Earlier unmarked merged PRs had a median <strong>1.34 days</strong> to merge and <strong>7.90 days</strong> to publication across 99 PRs. That group predates the first visible Copilot PR in May 2025 and covers different work and release conditions. Some AI use may also be unrecorded. A causal speed comparison would need comparable tasks and a measure of the effort involved.</p>
</div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="building-release-confidence-over-time">Building release confidence over time<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#building-release-confidence-over-time" class="hash-link" aria-label="Direct link to Building release confidence over time" title="Direct link to Building release confidence over time" translate="no">​</a></h2>
<p>Testing was one of the clearest benefits of working with Copilot. The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/305" target="_blank" rel="noopener noreferrer" class="">Copilot-coauthored testing work</a> added edge cases and integration checks. Re-running historical provider tests shows statement coverage rising from <strong>82.5%</strong> at the earlier baseline to <strong>95.6%</strong> in 2.0.0, while named Go test functions grew from <strong>33 to 124</strong>.</p>
<p>My confidence built gradually. Reviews and test runs exposed names changing unexpectedly, inputs unavailable during planning, and invalid test fixtures. We investigated each failure, added regression checks, and reran the release gates. That repeated cycle made me more comfortable publishing the release.</p>
<p>The final release evidence included <strong>445 passing AzureRM mock workspaces</strong>, plus lifecycle and packaging checks. AI helped us expand and exercise those checks; their results supported the decision to release.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>A runnable AzureRM mock-provider example and the local maintenance commands</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="historical-testing-checkpoints">Historical testing checkpoints<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#historical-testing-checkpoints" class="hash-link" aria-label="Direct link to Historical testing checkpoints" title="Direct link to Historical testing checkpoints" translate="no">​</a></h3>
<p>I reproduced provider-package coverage on isolated historical checkouts using the same <code>go test</code> command and Go 1.27.3:</p>

























<table><thead><tr><th>Checkpoint</th><th>Statement coverage</th><th>Named provider test functions</th></tr></thead><tbody><tr><td>Before the testing expansion</td><td>82.5%</td><td>33</td></tr><tr><td>After the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/305" target="_blank" rel="noopener noreferrer" class="">Copilot-coauthored expansion</a></td><td>99.3%</td><td>61</td></tr><tr><td>v2.0.0</td><td>95.6%</td><td>124</td></tr></tbody></table>
<p>The implementation changed between snapshots: the coverage denominators were 263, 270, and 321 executable statements. The v2 default run passed 117 top-level tests and skipped seven. These counts describe test functions and exercised statements; measuring production reliability would require defect or incident data. Human contributions and production-code changes are part of the comparison.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azurerm-mock-provider-example">AzureRM mock-provider example<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#azurerm-mock-provider-example" class="hash-link" aria-label="Direct link to AzureRM mock-provider example" title="Direct link to AzureRM mock-provider example" translate="no">​</a></h3>
<p>A regex test derived from our own catalog can reproduce an error in that catalog, so we also check generated names against AzureRM's configuration validation and exercise the provider lifecycle.</p>
<p>For 2.0.0, the AzureRM v5.0.1 mock sweep covered 445 matching definitions from the 520-entry catalog. The other entries were aliases, non-AzureRM types, or absent from that provider version. All 445 workspaces eventually passed their generated scenarios. Provider-package statement coverage reached 95.6%.</p>
<p>Terraform's <a href="https://developer.hashicorp.com/terraform/language/tests/mocking" target="_blank" rel="noopener noreferrer" class=""><code>mock_provider</code></a> made that possible without Azure credentials. <strong>AzureCAF stayed real; AzureRM was mocked.</strong> The mock forwards configuration validation to AzureRM and simulates its planning and apply behavior. AzureRM's real <code>CustomizeDiff</code> hooks, Azure API behavior, and global name availability sit outside the scope of this check.</p>
<p>Lifecycle tests check that a generated name stays stable across creation, subsequent applies, and planning. Testing the published package separately from the local development build also helps us check the delivery path.</p>
<p>Live Azure acceptance and deployment behavior require their own integration checks.</p>
<p>Here is a reduced, runnable example using the released providers. It requires Terraform 1.7 or later. I added the override variable to demonstrate the negative control below.</p>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># main.tf</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">terraform {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  required_version = "&gt;= 1.7.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  required_providers {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    azurecaf = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      source  = "aztfmod/azurecaf"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      version = "= 2.0.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    azurerm = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      source  = "hashicorp/azurerm"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      version = "= 5.0.1"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">provider "azurecaf" {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">provider "azurerm" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  features {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  subscription_id = "00000000-0000-0000-0000-000000000000"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">variable "azurerm_name_override" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  type    = string</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  default = null</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">resource "azurecaf_name" "example" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  name          = "myproject"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  resource_type = "azurerm_resource_group"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  prefixes      = ["prod"]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  clean_input   = true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">resource "azurerm_resource_group" "example" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  name     = coalesce(var.azurerm_name_override, azurecaf_name.example.result)</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  location = "westeurope"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">output "result" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  value = azurecaf_name.example.result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># tests/validate.tftest.hcl</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">mock_provider "azurerm" {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">run "validate_generated_name" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  command = apply</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = output.result != ""</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "AzureCAF returned an empty name."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = length(output.result) &gt;= 1 &amp;&amp; length(output.result) &lt;= 90</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "The resource group name must contain 1 to 90 characters."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = can(regex("^[a-zA-Z0-9-._\\(\\)]{0,89}[a-zA-Z0-9-_\\(\\)]$", output.result))</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "The name does not match the CAF resource group definition."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = azurerm_resource_group.example.name == azurecaf_name.example.result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "The AzureRM resource name must match the AzureCAF result."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">run "second_apply" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  command = apply</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = output.result == run.validate_generated_name.result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "The generated name changed on the second apply."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">run "replan" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  command = plan</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  assert {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    condition     = output.result == run.validate_generated_name.result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    error_message = "The generated name changed during the next plan."</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>The later runs reuse the test file's state and check the name after a second apply and another plan. These assertions cover name stability within the mock test. Verifying a real Azure deployment's lifecycle requires a live integration test.</p>
<p>Run the example in a fresh directory with the following CLI configuration. Direct Registry installation isolates this check from local development overrides and implicit filesystem mirrors:</p>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># registry.tfrc</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">provider_installation {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  direct {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">TF_CLI_CONFIG_FILE="$PWD/registry.tfrc" terraform init</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">TF_CLI_CONFIG_FILE="$PWD/registry.tfrc" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  terraform test -filter=tests/validate.tftest.hcl -verbose</span><br></div></code></pre></div></div>
<p>For a negative control, pass an invalid name directly to the AzureRM resource:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">TF_CLI_CONFIG_FILE="$PWD/registry.tfrc" \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  TF_VAR_azurerm_name_override='invalid!name' \</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  terraform test -filter=tests/validate.tftest.hcl</span><br></div></code></pre></div></div>
<p>This command should fail with an AzureRM name-validation diagnostic. That failure confirms AzureRM's configuration validation is active in the test.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-the-provider-we-were-actually-changing">Testing the provider we were actually changing<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#testing-the-provider-we-were-actually-changing" class="hash-link" aria-label="Direct link to Testing the provider we were actually changing" title="Direct link to Testing the provider we were actually changing" translate="no">​</a></h3>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/tree/v2.0.0/scripts/mock-test" target="_blank" rel="noopener noreferrer" class="">release harness</a> tested the AzureCAF binary built from our changes. Each generated workspace had a CLI configuration like this, using an absolute directory containing <code>terraform-provider-azurecaf</code>:</p>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"># terraform.rc</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">provider_installation {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  dev_overrides {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "aztfmod/azurecaf" = "/absolute/path/to/local-provider-build"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  direct {}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>The runner isolated provider installation during <code>terraform init</code>, then verified and activated the local override for <code>terraform test</code>. In the provider repository, these targets perform the build, setup, generation, and execution:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">make test_mock_azurerm_changed</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">make test_mock_azurerm_all</span><br></div></code></pre></div></div>
<p>The generator supplies default, prefixed, and seeded-random naming variations, plus the other arguments needed for each resource's configuration validation. The results apply to those fixtures and the provider version used.</p>
</div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="keep-the-automation-worth-running">Keep the automation worth running<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#keep-the-automation-worth-running" class="hash-link" aria-label="Direct link to Keep the automation worth running" title="Direct link to Keep the automation worth running" translate="no">​</a></h2>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/issues/588" target="_blank" rel="noopener noreferrer" class="">no-op tracker</a> recorded <strong>401 reports from distinct runs</strong> between June 11 and September 9, 2026; <strong>251 came from Issue-to-PR</strong>. Some explicitly reported unrelated labels. Clean health checks can be useful; those irrelevant event-triggered runs showed where filtering needed attention.</p>
<p>We used that feedback to refine the process. After the release, <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/936" target="_blank" rel="noopener noreferrer" class="">aztfmod/terraform-provider-azurecaf#936</a> moved predictable test jobs into ordinary scheduled Actions and tightened agent triggers or reduced their frequency.</p>
<p>Agents remain useful for research, interpretation, and proposed changes. Their schedules and outputs need the same attention as other automation. The tracker measures activity; financial cost would require billing data.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>One release incident that exposed the difference between instructions and controls</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<p>The first Release Labeler run failed on a missing <code>v2.0.0</code> label. Its instructions assumed the tool could create labels; the safe-output configuration required them to exist already. Applying release labels also started unrelated issue-agent runs because their label check happened after activation.</p>
<p>This excerpt from the Issue-to-PR workflow's frontmatter shows the label filter before agent activation and the permitted PR output. The full source also configures the agent's tools and permissions:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">on</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">issues</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">types</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">labeled</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">names</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">new</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">resource</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">safe-outputs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">create-pull-request</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">title-prefix</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"[auto] "</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">labels</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">automated</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> new</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">resource</span><span class="token punctuation" style="color:#393A34">]</span><br></div></code></pre></div></div>
<p>The task description, trigger, and permitted outputs all need to agree.</p>
<p><img decoding="async" loading="lazy" alt="GitHub Actions error showing Release Labeler could not apply the missing v2.0.0 label" src="https://www.lheureuxlabs.com/assets/images/release-labeler-failure-be748f52fda66082f6ad8be7840ae520.png" width="1140" height="760" class="img_ev3q"></p>
<p><em>A frame from the release recording showing the failure at the safe-output step.</em></p>
<p><a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/929" target="_blank" rel="noopener noreferrer" class="">aztfmod/terraform-provider-azurecaf#929</a> subsequently tightened the triggers, output configuration, release metadata checks, and failure propagation. We now have additional checks for how the automation starts, applies outputs, and reports failures.</p>
</div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="turning-capacity-into-outcomes">Turning capacity into outcomes<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#turning-capacity-into-outcomes" class="hash-link" aria-label="Direct link to Turning capacity into outcomes" title="Direct link to Turning capacity into outcomes" translate="no">​</a></h2>
<p>A researched proposal gives me useful preparation capacity. A richer test suite gives me more evidence for review. Both help, and both still need maintainer time, prioritization, and a path to release. The timestamps show the elapsed time; understanding each delay takes further investigation.</p>
<p>I would read enterprise AI productivity figures the same way. More prepared changes can increase the queue at an already-busy review or integration stage. Realizing the benefit also depends on approvals, rollout windows, and adoption by users.</p>
<p>For engineering leaders, I would follow three measures together:</p>
<ul>
<li class=""><strong>Preparation:</strong> time to a review-ready change, including the rework needed to make it acceptable.</li>
<li class=""><strong>Delivery:</strong> time through review, integration, and release, with attention to growing queues.</li>
<li class=""><strong>Outcomes:</strong> whether users adopt the change and receive the intended benefit.</li>
</ul>
<p>In AzureCAF, publication is the milestone we can observe. User adoption and production reliability would need their own evidence.</p>
<p>If changes wait for review, the next improvement might be clearer PR evidence, smaller changes, or protected reviewer time. If they wait after merge, look at release preparation and rollout constraints. Tracking the handoffs helps a team choose an investment that can move delivery forward.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Trying 2.0.0: installation and migration examples</summary><div><div class="collapsibleContent_i85q">
<!-- -->
<p>For a new configuration, this example uses the <a href="https://registry.terraform.io/providers/aztfmod/azurecaf/2.0.0/docs/data-sources/azurecaf_name" target="_blank" rel="noopener noreferrer" class=""><code>azurecaf_name</code> data source</a> without any Azure deployment:</p>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">terraform {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  required_providers {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    azurecaf = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      source  = "aztfmod/azurecaf"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      version = "~&gt; 2.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">data "azurecaf_name" "example" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  name          = "myproject"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  resource_type = "azurerm_resource_group"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  prefixes      = ["prod"]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  suffixes      = ["001"]</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">output "resource_group_name" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  value = data.azurecaf_name.example.result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p><code>~&gt; 2.0</code> allows compatible 2.x releases; use <code>= 2.0.0</code> to reproduce that exact version.</p>
<p>For an existing configuration, read the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/v2.0.0/docs/migration-v2.md" target="_blank" rel="noopener noreferrer" class="">v2.0.0 migration guide</a> <strong>before upgrading</strong>. Migrate <code>azurecaf_naming_convention</code> while still on v1.x, record existing names, and review the complete plan. The <a href="https://registry.terraform.io/providers/aztfmod/azurecaf/2.0.0/docs/resources/azurecaf_name" target="_blank" rel="noopener noreferrer" class=""><code>azurecaf_name</code> resource</a> supports passthrough mode when you need to retain an existing name:</p>
<div class="language-hcl codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-hcl codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">resource "azurecaf_name" "current" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  name          = "stdevmyapp001"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  resource_type = "azurerm_storage_account"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  passthrough   = true</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>Complete the guide's import and reference-update steps to migrate the old state before removing the legacy resource.</p>
</div></div></details>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="now-its-your-turn">Now it's your turn<a href="https://www.lheureuxlabs.com/2026/10/24/preparing-azurecaf-2-0-0-with-github-copilot#now-its-your-turn" class="hash-link" aria-label="Direct link to Now it's your turn" title="Direct link to Now it's your turn" translate="no">​</a></h2>
<p>Start with one recurring maintenance task, give it a clear output and owner, and follow it through review and release. Leave the useful checks and procedures in the repository for the next run. Then use the delivery data to decide where to spend the next hour.</p>
<p>The <a href="https://github.com/aztfmod/terraform-provider-azurecaf/tree/main/.github/workflows" target="_blank" rel="noopener noreferrer" class="">AzureCAF workflows</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/releases/tag/v2.0.0" target="_blank" rel="noopener noreferrer" class="">release notes</a> are public. Happy to hear what you find!</p>
<p>Thanks,</p>
<p>Arnaud</p>]]></content:encoded>
            <category>Automation</category>
            <category>Azure</category>
            <category>GitHub Copilot</category>
            <category>Open Source</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Writing your first contribution to Azure CAF Terraform module]]></title>
            <link>https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module</link>
            <guid>https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module</guid>
            <pubDate>Tue, 22 Jun 2021 08:15:01 GMT</pubDate>
            <description><![CDATA[Microsoft Cloud Adoption Framework for Azure Terraform edition, helps you deploy resources on Azure in a structured way, it come with various components that you can leverage together or you can pick based on where you are on the cloud journey and based on your needs. Today we are going to review ho]]></description>
            <content:encoded><![CDATA[<p>Microsoft Cloud Adoption Framework for Azure Terraform edition, helps you deploy resources on Azure in a structured way, it come with various components that you can leverage together or you can pick based on where you are on the cloud journey and based on your needs.</p>
<p>Today we are going to review how to contribute to the Cloud Adoption Framework for Azure Terraform module Open Source project.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-caf-module">The CAF module<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#the-caf-module" class="hash-link" aria-label="Direct link to The CAF module" title="Direct link to The CAF module" translate="no">​</a></h2>
<p>Almost a year ago we switched to a one-module approach that allows high speed of evolution (we know how time-consuming it is to update a set of small modules). We have implemented that with conditional submodules feature introduced in Terraform 0.13 and we have been running that way up to Terraform 1.0.0 with excellent feedbacks.</p>
<p>Having one single module makes the development more difficult for the developer, as it requires working on the iterative structures and junction between the different objects – One could argue this is the job of anyone trying to put more than two Terraform modules together. On the other hand, having the single module integrated allows composition and configuration way faster for the DevOps engineers and architects putting together a configuration.</p>
<p>This module can be leveraged from any Terraform code via the <a href="https://registry.terraform.io/modules/aztfmod/caf/azurerm/latest" target="_blank" rel="noopener noreferrer" class="">Terraform registry</a>, using the following syntax:</p>
<div class="language-terraform codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-terraform codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">module "caf" {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  source  = "aztfmod/caf/azurerm"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  version = "5.3.11"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  # insert the 6 required variables here</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/M2pNHY-Xyok" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>You can find many examples on the <a href="https://github.com/aztfmod/terraform-azurerm-caf" target="_blank" rel="noopener noreferrer" class="">module GitHub repository here</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-power-of-the-community">The power of the community<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#the-power-of-the-community" class="hash-link" aria-label="Direct link to The power of the community" title="Direct link to The power of the community" translate="no">​</a></h3>
<p>With the speed of evolution of Terraform and the Azure provider, inner-sourcing components for enterprises is a pragmatic option that allows DevOps engineers to focus on delivering value.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="adding-a-new-capability">Adding a new capability<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#adding-a-new-capability" class="hash-link" aria-label="Direct link to Adding a new capability" title="Direct link to Adding a new capability" translate="no">​</a></h4>
<p>Let’s say you are reviewing the CAF module capabilities and realise it’s missing a feature, and you want to write it and contribute to the community.</p>
<p>We will do that with a simple example: someone in the <a href="https://github.com/aztfmod/terraform-azurerm-caf/issues/521" target="_blank" rel="noopener noreferrer" class="">community opened an issue for Azure Dedicated Hosts</a>, which allows you to deploy a dedicated Hypervisor for your Virtual Machines. You can find all the <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/dedicated-hosts" target="_blank" rel="noopener noreferrer" class="">details about it here:</a></p>
<p><img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/virtual-machines/media/virtual-machines-common-dedicated-hosts/dedicated-hosts2.png" alt="" class="img_ev3q"></p>
<p>Basically we will create two objects:</p>
<ul>
<li class="">the hosts groups: a set of machines in a particular region with a set of capabilities like availability sones and fault domains:</li>
<li class="">the hosts: the hypervisor itself, which will be hosting the Virtual Machines.</li>
</ul>
<p>And we can foresee that we will need to change the virtual machines module capabilities to declare that a particular VM will be deployed on a dedicated host.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-toolset">The toolset<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#the-toolset" class="hash-link" aria-label="Direct link to The toolset" title="Direct link to The toolset" translate="no">​</a></h3>
<p>In order to get things started, I will get the following development environment:</p>
<ul>
<li class=""><a href="https://github.com/features/codespaces" target="_blank" rel="noopener noreferrer" class="">GitHub Codespace</a>
<ul>
<li class="">Codespace allows me to develop directly off my browser. I can fork the repo, then I don’t even need to clone it locally. Since the module has a <code>.devcontainer</code> it will pick the right version of development environment plus the development tools I need.<br>
I could also clone the project it and then open it locally into Visual Studio Code, the same development environment would have been created.</li>
</ul>
</li>
<li class="">Terraform documentation
<ul>
<li class="">For Azure Dedicated Host, I browse off the <a href="https://registry.terraform.io/providers/hashicorp/azurerm/latest" target="_blank" rel="noopener noreferrer" class="">Terraform registry</a> and find the following related components:
<ul>
<li class=""><a href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/dedicated_host" target="_blank" rel="noopener noreferrer" class="">https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/dedicated_host</a></li>
<li class=""><a href="https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/dedicated_host_group" target="_blank" rel="noopener noreferrer" class="">https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/dedicated_host_group</a></li>
</ul>
</li>
</ul>
</li>
<li class="">Azure subscription
<ul>
<li class="">You can get started for free here: <a href="https://azure.microsoft.com/en-us/free/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/free/</a></li>
</ul>
</li>
</ul>
<p>Aligning all side-by-side, and lets go for the coding!</p>
<p>For the rest, let’s do it in a video – full screen required :):</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/ubC8Krb9n_U" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="refactoring-and-dependencies">Refactoring and dependencies<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#refactoring-and-dependencies" class="hash-link" aria-label="Direct link to Refactoring and dependencies" title="Direct link to Refactoring and dependencies" translate="no">​</a></h3>
<p>It’s very rare that we get things right from the beginning, so after a review, I detect that I can improve the following ones:</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="object-syntax-for-the-vm">Object syntax for the VM<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#object-syntax-for-the-vm" class="hash-link" aria-label="Direct link to Object syntax for the VM" title="Direct link to Object syntax for the VM" translate="no">​</a></h4>
<p>In my initial implementation, I did the following syntax to reference the Dedicated Host to my virtual machine:</p>
<div class="language-terraform codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-terraform codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain"> dedicated_host_group = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        dedicated_host_group_key = "dh1"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        # lz_key = "remoteLZKey"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        # id = "full resource ID"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div></code></pre></div></div>
<p>But I actually don’t the need group but the host, so I refactor the object and standardize on our pattern that allow using the object from:</p>
<ul>
<li class="">resource ID of the object deployed outside of this module</li>
<li class="">key of an object deployed locally</li>
<li class="">key of an object from another landing zone (via the lz_key attribute)</li>
</ul>
<div class="language-terraform codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-terraform codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">  dedicated_host = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        key = "dh1"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        # lz_key = "remoteLZKey"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        # id = "full resource ID"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="composition-patterns-to-retrieve-the-dedicated-vm-dedicated">Composition patterns to retrieve the Dedicated VM dedicated<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#composition-patterns-to-retrieve-the-dedicated-vm-dedicated" class="hash-link" aria-label="Direct link to Composition patterns to retrieve the Dedicated VM dedicated" title="Direct link to Composition patterns to retrieve the Dedicated VM dedicated" translate="no">​</a></h4>
<p>At first the pattern to locate the dedicated host_id in the VM object was the following:</p>
<div class="language-terraform codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-terraform codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">dedicated_host_id = try(try(each.value.dedicated_host_group.id, var.dedicated_hosts[try(each.value.dedicated_host_group.lz_key, var.client_config.landingzone_key)][each.value.dedicated_host_group.dedicated_host_group_key].id), null)</span><br></div></code></pre></div></div>
<p>It worked, but did not align with updated patterns that offer better visibility and troubleshooting, so I just updated it into:</p>
<div class="language-terraform codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-terraform codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">dedicated_host_id = try(coalesce(</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    try(each.value.dedicated_host.id, null),</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    var.dedicated_hosts[try(each.value.dedicated_host.lz_key, var.client_config.landingzone_key)][each.value.dedicated_host.key].id,</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    ),</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    null</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  )</span><br></div></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="dependencies">Dependencies<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies" translate="no">​</a></h4>
<p>There are also dependencies that I managed in the meantime, like the <a href="https://github.com/aztfmod/terraform-provider-azurecaf" target="_blank" rel="noopener noreferrer" class="">name convention provider</a>. I checked at the naming <a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules" target="_blank" rel="noopener noreferrer" class="">reference here</a>.</p>
<p><a href="https://registry.terraform.io/providers/aztfmod/azurecaf/latest" target="_blank" rel="noopener noreferrer" class="">The CAF Terraform name provider can be found on the Terraform registry here</a></p>
<p>And we load it this way:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">terraform {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  required_providers {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    azurecaf = {</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      source  = "aztfmod/azurecaf"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">      version = "~&gt; 1.2.0"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>It was my first PR to the name provider so I was quite surprised of the easiness of contribution, the most complicated part was to find the right regex to match the supported characters for Azure Dedicated Hosts.</p>
<p>You can review the <a href="https://github.com/aztfmod/terraform-provider-azurecaf/pull/109" target="_blank" rel="noopener noreferrer" class="">PR here</a> and <a href="https://github.com/aztfmod/terraform-provider-azurecaf/blob/master/.github/CONTRIBUTING.md" target="_blank" rel="noopener noreferrer" class="">contribution guide</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="now-its-your-turn">Now it’s your turn<a href="https://www.lheureuxlabs.com/2021/06/22/writing-your-first-contribution-to-caf-terraform-module#now-its-your-turn" class="hash-link" aria-label="Direct link to Now it’s your turn" title="Direct link to Now it’s your turn" translate="no">​</a></h2>
<p>Let’s get started! Happy to hear your thoughts and learn from your feedbacks, also if you identify a missing feature and you want to give it a try, lets:</p>
<ol>
<li class="">In the GitHub Issues, verify if there is an Epic covering the module you are describing.</li>
<li class="">If the change you are proposing is a sub-feature of an epic, please open an <a href="https://github.com/aztfmod/terraform-azurerm-caf/issues/521" target="_blank" rel="noopener noreferrer" class="">issue describing your changes</a> in details and the reasons for the change with an example.</li>
<li class="">On submitting the <a href="https://github.com/aztfmod/terraform-azurerm-caf/pull/524" target="_blank" rel="noopener noreferrer" class="">PR, please mention the Issue related to the PR</a>.</li>
</ol>
<p>Also before submitting the PR, make sure:</p>
<ol>
<li class="">Make sure you are using the Visual Studio Dev environment with pre-commit hooks effective.</li>
<li class="">Matching with coding conventions and common engineering criteria described <a href="https://github.com/aztfmod/terraform-azurerm-caf/blob/master/documentation/conventions.md" target="_blank" rel="noopener noreferrer" class="">here</a>.</li>
<li class="">Provide examples including the main scenarios the module is supposed to achieve.</li>
<li class="">Include integration tests for your examples.</li>
</ol>
<p>Thanks</p>
<p>Arnaud</p>]]></content:encoded>
            <category>Azure</category>
            <category>Cloud Adoption Framework</category>
            <category>Landing Zones</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Migrating Azure CAF landing zones to Terraform 0.13]]></title>
            <link>https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13</link>
            <guid>https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13</guid>
            <pubDate>Fri, 02 Oct 2020 17:06:06 GMT</pubDate>
            <description><![CDATA[More than a year ago we announced at Ignite 2019 that Cloud Adoption Framework proposes an implementation on Terraform. Since then, we have seen a tremendous feedbacks from customers and partners architects. In the meantime lot of great things have happened: an enterprise-scale reference architectur]]></description>
            <content:encoded><![CDATA[<p>More than a year ago we announced at Ignite 2019 that Cloud Adoption Framework proposes an implementation on Terraform. Since then, we have seen a tremendous feedbacks from customers and partners architects.</p>
<p>In the meantime lot of great things have happened: an enterprise-scale reference architecture and it’s ARM-based implementation, alongside with an incredible acceleration on the release rhythm of the Azure Terraform provider reducing the delay between features appearing in Azure and time it is available in native Terraform.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="terraform-013">Terraform 0.13<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#terraform-013" class="hash-link" aria-label="Direct link to Terraform 0.13" title="Direct link to Terraform 0.13" translate="no">​</a></h2>
<p>Terraform 0.13 has been released mid August, and you can read the full details <a href="https://www.hashicorp.com/blog/announcing-hashicorp-terraform-0-13" target="_blank" rel="noopener noreferrer" class="">here</a>. For us, the major improvements are:</p>
<ul>
<li class=""><strong>Registry-based provider sourcing</strong>: No more need to side-load our custom provider, you can leverage it directly from the Terraform registry just like we for modules: our CAF provider is published <a href="https://registry.terraform.io/providers/aztfmod/azurecaf/latest" target="_blank" rel="noopener noreferrer" class="">here</a></li>
<li class=""><strong>Variables validation</strong>: Only allow variable to be within a certain range or validating a regex.</li>
<li class=""><strong>Iterations and conditions on modules</strong>: more later in this article.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="testing-terraform-013-with-rover">Testing Terraform 0.13 with rover<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#testing-terraform-013-with-rover" class="hash-link" aria-label="Direct link to Testing Terraform 0.13 with rover" title="Direct link to Testing Terraform 0.13 with rover" translate="no">​</a></h3>
<p>After weeks of testing reliability of Terraform 0.13 during this summer’s beta, we were very happy with the stability and performance so we decided to push further our way of operating.</p>
<p><a href="https://github.com/aztfmod/rover" target="_blank" rel="noopener noreferrer" class="">rover</a> is part of the DevOps toolset we provide you with and recommend using for development teams and pipelines deployment. During this testing stage, it played full role allowing us to switch fast from one codebase to the other and also to one version of Terraform to the other.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-new-in-caf-landing-zones">What’s new in CAF landing zones<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#whats-new-in-caf-landing-zones" class="hash-link" aria-label="Direct link to What’s new in CAF landing zones" title="Direct link to What’s new in CAF landing zones" translate="no">​</a></h2>
<p>Leveraging Terraform 0.13, we were able to introduce new concepts in landing zones on Azure:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="one-module-to-rule-them-all">One module to rule them all<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#one-module-to-rule-them-all" class="hash-link" aria-label="Direct link to One module to rule them all" title="Direct link to One module to rule them all" translate="no">​</a></h3>
<p>We have been curating 20+ modules during the last year, all published on the <a href="https://registry.terraform.io/namespaces/aztfmod" target="_blank" rel="noopener noreferrer" class="">Terraform registry</a> and some of them being consumed more than 26,000 times.<img decoding="async" loading="lazy" alt="Screenshot 2020-10-06 at 11.12.02 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-06-at-11.12.02-am-3d6befb0b1372e00cad4491844a6fd3c.png" width="2960" height="1240" class="img_ev3q"></p>
<p>While it was important to have different modules to maintain a very fine-grained versioning of the components we use, we found it to be a lot of work, for little added value.</p>
<p>We then decided to explore a model where we use only one module, that would call and iterate on different submodules – that permitted by Terraform 0.13.</p>
<p>We must admit we have been impressed by the results on how the graph performs, and the speed at which it works.</p>
<p>So the new module is still in preview but already available available here <a href="https://registry.terraform.io/modules/aztfmod/caf/azurerm/latest" target="_blank" rel="noopener noreferrer" class="">https://registry.terraform.io/modules/aztfmod/caf/azurerm/latest</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="iteration-based-objects-deployment">Iteration-based objects deployment<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#iteration-based-objects-deployment" class="hash-link" aria-label="Direct link to Iteration-based objects deployment" title="Direct link to Iteration-based objects deployment" translate="no">​</a></h3>
<p>To deploy core features, landing zones are now calling one module. This master module has all the major components we need to deploy within landing zones, and it iterates on every objects in the following way:</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2020-10-06 at 11.05.16 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-06-at-11.05.16-am-5714faa0c32ad0c32ba5055c6b98527e.png" width="1462" height="524" class="img_ev3q"></p>
<p>So from the configuration prospective, you define your network configuration with a complex object like this one:</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2020-10-06 at 11.08.44 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-06-at-11.08.44-am-570e6684e416dd16e15bee262f09225d.png" width="808" height="664" class="img_ev3q"></p>
<p>So wether you need one or ten virtual networks, we iterate automatically for you.<br>
By default the <code>vnets</code> like all the other variables are set to {}. So it means nothing will be created, only the variables you populate will be iterated on.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-based-configuration-and-customization">Key-based configuration and customization<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#key-based-configuration-and-customization" class="hash-link" aria-label="Direct link to Key-based configuration and customization" title="Direct link to Key-based configuration and customization" translate="no">​</a></h3>
<p>All configuration objects will call each other based on the object keys. As we just seen, we use complex objects that are iterated and referenced via their keys.</p>
<p>It means for instance we create all the resource groups using the following object:</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2020-10-06 at 11.14.03 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-06-at-11.14.03-am-c7c5f46810f6eeae4b46a2dffbcb3be9.png" width="790" height="602" class="img_ev3q"></p>
<p>In that example, we create two resource groups which keys are <code>vnet_region1</code> and <code>vnet_region2</code>. We we create the virtual network called hub (and which key is <code>hub_sg</code> we reference the resource group via the <code>resource_group_key</code> property.</p>
<p>Under the hood, the module is mapping back the resource group to the key with the following logic:<br>
<img decoding="async" loading="lazy" alt="referencetokey" src="https://www.lheureuxlabs.com/assets/images/referencetokey-1b3e2dfbd725f42f7a9fd977a04cd00e.png" width="1462" height="524" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-code-environment-composition">No-code environment composition<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#no-code-environment-composition" class="hash-link" aria-label="Direct link to No-code environment composition" title="Direct link to No-code environment composition" translate="no">​</a></h3>
<p>Overall this makes writing the modules code slightly more complicated, but what it means for users is the possibility to compose complex environment without changing anything in the code.</p>
<p>A good example for that is the networking landing zone where we are able to compose all kind of Azure network topologies (like Hub-and-Spokes virtual networks, Virtual WAN-based hub-and-spokes, etc.).</p>
<p>We can establish peering between on object in the current landing zone and a remote landing zones (this is very common to have separate states for the hub and the spokes)</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2020-10-06 at 11.26.12 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-06-at-11.26.12-am-9e4e84979d7d1e9eb6b74a190e1d7cb0.png" width="852" height="656" class="img_ev3q"></p>
<p>Overall we have tested it internally and externally and have found:</p>
<ul>
<li class="">We have been able to compose any kind of architecture using this pattern.</li>
<li class="">It is very fast to compose a new environment.</li>
<li class="">It is very fast to process by Terraform and Terraform graph.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="devops-from-the-ground-up">DevOps from the ground-up<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#devops-from-the-ground-up" class="hash-link" aria-label="Direct link to DevOps from the ground-up" title="Direct link to DevOps from the ground-up" translate="no">​</a></h3>
<p>At the root of deployments, we have our <code>launchpad</code> which sets the Azure backend and collaboration requirements.<br>
<img decoding="async" loading="lazy" alt="launchpad-200" src="https://www.lheureuxlabs.com/assets/images/launchpad-200-5fc70f7d02d2fcfc6d380aa9648addec.png" width="2207" height="1017" class="img_ev3q"></p>
<p>We want to offer our customers choices and options so the new launchpad is modular: allowing add-ons to complement the configuration like:</p>
<ul>
<li class="">DevOps Pipelines configuration and secret management leveraging the official <a href="https://www.terraform.io/docs/providers/azuredevops/index.html" target="_blank" rel="noopener noreferrer" class="">Microsoft Azure DevOps provider for Terraform</a></li>
<li class="">Terraform Cloud and Terraform Enterprise</li>
<li class="">GitHub and GitHub Enterprise</li>
<li class="">Any other solution.</li>
</ul>
<p>For an example of landing zones on <strong>Azure DevOps</strong>, you can refer to the following demo:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/r6RUiFOl-JU" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>For an example of landing zones on <strong>Terraform Cloud</strong>, you can refer to the following demo:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/3yZHIDbKDUc" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="coding-everywhere">Coding everywhere<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#coding-everywhere" class="hash-link" aria-label="Direct link to Coding everywhere" title="Direct link to Coding everywhere" translate="no">​</a></h3>
<p>Using Visual Studio Codespaces or <a href="https://github.com/features/codespaces" target="_blank" rel="noopener noreferrer" class="">GitHub Codespaces</a>, you can develop and deploy landing zones without installing anything on your laptop, with full access to the rover and development environment.<br>
<img decoding="async" loading="lazy" alt="Screenshot 2020-10-02 at 5.02.46 PM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2020-10-02-at-5.02.46-pm-49bb58c6fa377b18f9bcb976902a2900.png" width="3358" height="1788" class="img_ev3q"></p>
<p>You can try it now: <a href="https://online.visualstudio.com/environments/new?name=caf%20landing%20zones&amp;repo=azure/caf-terraform-landingzones" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/endpoint?url=https%3A%2F%2Faka.ms%2Fvso-badge" alt="VScodespaces" class="img_ev3q"></a> or on <a href="https://github.com/features/codespaces" target="_blank" rel="noopener noreferrer" class="">GitHub Codespaces</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-journey-ahead">The journey ahead<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#the-journey-ahead" class="hash-link" aria-label="Direct link to The journey ahead" title="Direct link to The journey ahead" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enterprise-scale-landing-zones">Enterprise-scale landing zones<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#enterprise-scale-landing-zones" class="hash-link" aria-label="Direct link to Enterprise-scale landing zones" title="Direct link to Enterprise-scale landing zones" translate="no">​</a></h3>
<p>Enterprise-scale is a reference architecture, set of design guidelines, and reference implementation for an Azure enterprise environment.<br>
You can find all the details <a href="https://docs.microsoft.com/en-gb/azure/cloud-adoption-framework/ready/enterprise-scale/" target="_blank" rel="noopener noreferrer" class="">here</a>.<img decoding="async" loading="lazy" alt="ns-vwan" src="https://www.lheureuxlabs.com/assets/images/ns-vwan-67d33a2e3b6bbdb07dfd4d459d6ec559.png" width="1932" height="1114" class="img_ev3q">.</p>
<p>We are working on it with the team and are integrating the module on the foundations layers. You can also try out the module <a href="https://github.com/Azure/terraform-azurerm-caf-enterprise-scale" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="delivering-solutions">Delivering solutions<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#delivering-solutions" class="hash-link" aria-label="Direct link to Delivering solutions" title="Direct link to Delivering solutions" translate="no">​</a></h3>
<p>We found a lot of interest from customers and partners to leverage the DevOps and everything-as-code environment we setup in order to accelerate the development and the deployment of ready-to-use solutions.</p>
<p>We are currently working to publish solutions that you can stack-up on top of the lower levels of landing zones, amongst them, you will be able to find:<br>
* <a href="https://github.com/aztfmod/landingzone_aks" target="_blank" rel="noopener noreferrer" class="">AKS topologies including layer 4 applications</a><br>
* <a href="https://github.com/aztfmod/landingzone_data_analytics" target="_blank" rel="noopener noreferrer" class="">Data and analytics, to deploy Azure Synapse, Databricks, Machine Learning, etc.</a>.<br>
* More to come…</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="on-the-way-to-terraform-014">On the way to Terraform 0.14<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#on-the-way-to-terraform-014" class="hash-link" aria-label="Direct link to On the way to Terraform 0.14" title="Direct link to On the way to Terraform 0.14" translate="no">​</a></h3>
<p>Just announced, Terraform 0.14 will also bring some good features, you will be able to test it out soon in a new rover. You can read the news <a href="https://www.hashicorp.com/blog/announcing-hashicorp-terraform-0-14-beta" target="_blank" rel="noopener noreferrer" class="">here</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contribute">Contribute<a href="https://www.lheureuxlabs.com/2020/10/02/migrating-azure-caf-landing-zones-on-terraform-0-13#contribute" class="hash-link" aria-label="Direct link to Contribute" title="Direct link to Contribute" translate="no">​</a></h2>
<p>All of that is still work in progress and you can contribute by opening an issue, a pull request or just testing it!</p>
<p>The repo is here: <a href="https://github.com/Azure/caf-terraform-landingzones" target="_blank" rel="noopener noreferrer" class="">https://github.com/Azure/caf-terraform-landingzones</a> and (most) of the things described are currently in the 0.4 branch, and will be available on this month release (2010 Update)</p>
<p>We’d love to hear from you, so don’t hesitate to give us feedback here or on <a href="https://gitter.im/aztfmod/community?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge" target="_blank" rel="noopener noreferrer" class="">Gitter</a></p>
<p>Arnaud</p>]]></content:encoded>
            <category>Automation</category>
            <category>Azure</category>
            <category>CAF</category>
            <category>Landing Zones</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Understanding landing zones for Azure Cloud Adoption Framework – Terraform edition]]></title>
            <link>https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework</link>
            <guid>https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework</guid>
            <pubDate>Fri, 31 Jan 2020 09:02:20 GMT</pubDate>
            <description><![CDATA[Microsoft Cloud Adoption Framework (http://aka.ms/caf) is the one Microsoft guidance to adopt Azure in entreprise. One of the fastest way to put the framework in action and deploy an environment fast and good, is to use CAF landing zones for Terraform. CAF landing zones are an open source project li]]></description>
            <content:encoded><![CDATA[<p>Microsoft Cloud Adoption Framework (<a href="http://aka.ms/caf" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/caf</a>) is the one Microsoft guidance to adopt Azure in entreprise. One of the fastest way to put the framework in action and deploy an environment fast and good, is to use CAF landing zones for<br>
Terraform.</p>
<p>CAF landing zones are an open source project living on GitHub and we welcome any contribution: <a href="https://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">https://aka.ms/tf-landingzones</a></p>
<p>In this article, you will find a set of videos and articles that should help you understanding the landing zones architectures and how to start crafting your own.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-adoption-framework-introduction-landing-zones-for-terraform">Cloud Adoption Framework: Introduction landing zones for Terraform<a href="https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework#cloud-adoption-framework-introduction-landing-zones-for-terraform" class="hash-link" aria-label="Direct link to Cloud Adoption Framework: Introduction landing zones for Terraform" title="Direct link to Cloud Adoption Framework: Introduction landing zones for Terraform" translate="no">​</a></h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/4UrIakS-j_Y" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="cloud-adoption-framework-deep-dive-on-landing-zones-for-terraform">Cloud Adoption Framework: Deep-dive on landing zones for Terraform<a href="https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework#cloud-adoption-framework-deep-dive-on-landing-zones-for-terraform" class="hash-link" aria-label="Direct link to Cloud Adoption Framework: Deep-dive on landing zones for Terraform" title="Direct link to Cloud Adoption Framework: Deep-dive on landing zones for Terraform" translate="no">​</a></h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/N_BhJ2-mSF8" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="first-deployment">First Deployment:<a href="https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework#first-deployment" class="hash-link" aria-label="Direct link to First Deployment:" title="Direct link to First Deployment:" translate="no">​</a></h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/vWyBAT8C7xY" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="setup-environment">Setup Environment:<a href="https://www.lheureuxlabs.com/2020/01/31/understanding-landing-zones-for-azure-cloud-adoption-framework#setup-environment" class="hash-link" aria-label="Direct link to Setup Environment:" title="Direct link to Setup Environment:" translate="no">​</a></h4>
<p><a href="https://arnaud-web.azurewebsites.net/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform/" target="_blank" rel="noopener noreferrer" class="">Cloud Adoption Framework landing zones with Terraform</a></p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/WSU0UozKGF8" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Official Cloud Adoption Framework landing zones:</p>
<p><a href="https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/expanded-scope/terraform-landing-zone" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/expanded-scope/terraform-landing-zone</a></p>
<p>If you are getting started with Terraform on Azure:</p>
<ul>
<li class="">
<p>Terraform.io:&nbsp;<a href="https://learn.hashicorp.com/terraform?track=azure#azure" target="_blank" rel="noopener noreferrer" class="">https://learn.hashicorp.com/terraform?track=azure#azure</a></p>
</li>
<li class="">
<p>Step by steps guidance on Terraform for Azure:&nbsp;<a href="https://azurecitadel.com/automation/terraform/" target="_blank" rel="noopener noreferrer" class="">https://azurecitadel.com/automation/terraform/</a></p>
</li>
<li class="">
<p>Getting started with Terraform on Azure</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/qYq3wADESCM" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
</li>
</ul>
<p>Operating governance on cloud native technologies:</p>
<ul>
<li class="">Visualising a Cloud Native Operating Model for Enterprise Adoption:<br>
<a href="https://medium.com/@lachlan_white/visualising-a-cloud-native-operating-model-for-enterprise-adoption-b70cc5790d48" target="_blank" rel="noopener noreferrer" class="">https://medium.com/@lachlan_white/visualising-a-cloud-native-operating-model-for-enterprise-adoption-b70cc5790d48</a>&nbsp;More to come soon!</li>
</ul>]]></content:encoded>
            <category>Azure</category>
            <category>Cloud Adoption Framework</category>
            <category>Governance</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Cloud Adoption Framework landing zones with Terraform]]></title>
            <link>https://www.lheureuxlabs.com/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform</link>
            <guid>https://www.lheureuxlabs.com/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform</guid>
            <pubDate>Fri, 15 Nov 2019 12:12:02 GMT</pubDate>
            <description><![CDATA[At Microsoft Ignite 2019, we announced that Cloud Adoption Framework for Azure now has a Terraform edition of it’s landing zones. We see landing zones as a great way to enable value quicker on Azure, and as we see tremendous excitment and growth in this area, we are evolving the experience to make i]]></description>
            <content:encoded><![CDATA[<p>At Microsoft Ignite 2019, we announced that Cloud Adoption Framework for Azure now has a Terraform edition of it’s landing zones. We see landing zones as a great way to enable value quicker on Azure, and as we see tremendous excitment and growth in this area, we are evolving the experience to make it simpler and more powerful.</p>
<p>Adopting CAF landing zones with Terraform, customer consistenly realize they can:</p>
<ul>
<li class="">deploy foundations of cloud environments fast</li>
<li class="">easily deploy governance and policies as code (with ongoing compliance enforcement and remediation)</li>
<li class="">have consistent ways to deploy innovation (infra as code, policies as code or application code are using the same mechanisms).</li>
<li class=""><em>and many more.</em></li>
</ul>
<p>This overall enables them to:&nbsp;optimize their operations,&nbsp;innovate faster and&nbsp;cheaper, but we will come back to that in another article.</p>
<p>For now, let’s get you started with landing zones development and deployment!</p>
<p>When deploying Infra-As-Code environments, we found it extremely important to have:</p>
<ul>
<li class=""><strong>strong versioning</strong> (accross dev environment, DevOps pipelines, etc.).</li>
<li class=""><strong>short feedback loops</strong>: ability to innovate fast on your development, test new code without having to go through the whole pull-request and so mechanisms.</li>
<li class="">accomodate <strong>diversity of environments</strong> (running Windows, Mac, Linux).</li>
<li class=""><strong>strong identity consistency</strong> and <strong>no secret</strong> in <strong>any code.</strong></li>
</ul>
<p>In order to enable that, we use Docker containers as development (on your laptop) and deployment (CI/CD pipelines) environement. <strong>The toolset is packaged inside what we called <a href="https://github.com/aztfmod/rover" target="_blank" rel="noopener noreferrer" class="">the rover</a></strong>&nbsp;and in order to get started – whichever your platform is, just:</p>
<ul>
<li class=""><a href="https://docs.docker.com/docker-for-windows/install/" target="_blank" rel="noopener noreferrer" class="">Install Docker</a></li>
<li class=""><a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer" class="">Install Visual Studio Code</a></li>
</ul>
<p>Once its done, make sure Docker is up and running, then Open Visual Studio Code:</p>
<p>We need to install “Remote Development” extension, so click the Extensions icon and then find and install “Remote Development” from Microsoft:</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2019-11-15 at 10.10.05 AM.png" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-11-15-at-10.10.05-am-5493fbff27dbb3e511bf25d7acae5083.png" width="1163" height="220" class="img_ev3q"></p>
<p>To make your life easier, we are going to leverage <a href="https://code.visualstudio.com/docs/remote/containers" target="_blank" rel="noopener noreferrer" class="">Visual Studio Development Containers</a>, which allows you to seamlessly work on your machine and execute your code in the rover container.:</p>
<p><img decoding="async" loading="lazy" alt="68747470733a2f2f636f64652e76697375616c73747564696f2e636f6d2f6173736574732f646f63732f72656d6f74652f636f6e7461696e6572732f6172636869746563747572652d636f6e7461696e6572732e706e67" src="https://www.lheureuxlabs.com/assets/images/68747470733a2f2f636f64652e76697375616c73747564696f2e636f6d2f6173736574732f646f63732f72656d6f74652f636f6e7461696e6572732f6172636869746563747572652d636f6e7461696e6572732e706e67-286a9e07631ce015c769636176c97f0c.png" width="968" height="402" class="img_ev3q"></p>
<p>So on your machine, you will have your Terraform files, with your Git connection and other tools, but when you run the code, its seemlessly integrated with the Rover running in the container, so you can develop, test, run the complete environment.</p>
<h1>Deploying your first landing zone</h1>
<p>Once you have deployed the prerequisites, you can just clone (with <a href="https://git-scm.com/downloads" target="_blank" rel="noopener noreferrer" class="">Git</a>, or <a href="https://desktop.github.com/" target="_blank" rel="noopener noreferrer" class="">GitHub Desktop)</a> from our repository: <a href="http://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/tf-landingzones</a> and open it in Visual Studio.</p>
<p>If you look at the files, it’s classic Terraform scripts except for the&nbsp;&nbsp;.<strong>devcontainer</strong> folder where we have two files:</p>
<ul>
<li class="">devcontainer.json: describes how to connect to the container, the mounting points and extensions.</li>
<li class="">docker-compose.yml: describes the container configuration needed, especially where to get the rover image (tip: we put it on the Docker registry so you dont have to manage it)</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Screenshot 2019-11-15 at 10.18.53 AM.png" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-11-15-at-10.18.53-am-7fdc322a8e454de6bf2ffb5f3b43933f.png" width="929" height="729" class="img_ev3q"></p>
<p>You can then go to the bottom left, green part of Visual Studio Code and select <img decoding="async" loading="lazy" alt="Screenshot 2019-11-15 at 10.21.51 AM.png" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-11-15-at-10.21.51-am-5f2f36c8f9c5111ed031f33c6585e382.png" width="861" height="127" class="img_ev3q"></p>
<p>Open <strong>Remote-Containers: Open Workspace in Container</strong>, then select the default workspace we created for you (<strong>workspace.code-workspace</strong>). You will see a new window opening and you can see the details of the Docker container operations:</p>
<ul>
<li class="">downloading the container from registry</li>
<li class="">mounting the volumes</li>
<li class="">creating the network</li>
<li class="">installing VSCode drivers in the containers</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Screenshot 2019-11-15 at 10.24.33 AM.png" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-11-15-at-10.24.33-am-4b04555b9e5dc7d93e80ed73039d49a1.png" width="1196" height="391" class="img_ev3q"></p>
<p>You are now ready to start hacking, you can start by launching:</p>
<ol>
<li class=""><strong>rover login</strong>&nbsp;</li>
<li class=""><strong>rover /tf/caf/landingzones/landingzone_caf_foundations plan</strong>&nbsp;</li>
<li class=""><strong>rover /tf/caf/landingzones/landingzone_caf_foundations apply</strong>&nbsp;<img decoding="async" loading="lazy" alt="Screenshot 2019-11-15 at 10.29.00 AM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-11-15-at-10.29.00-am-388be520a516b80bcb1ccf4df1abcf16.png" width="1743" height="833" class="img_ev3q"></li>
</ol>
<p>So let the fun begin!</p>
<h1>Demo</h1>
<p>TLDR; Here is a video with the different steps I described:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/vWyBAT8C7xY" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Happy hacking, let me know your feedbacks and lets connect!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">@arnaudlheureux</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>CAF</category>
            <category>Cloud Adoption Framework</category>
            <category>Infra-as-Code</category>
            <category>Landing Zones</category>
        </item>
        <item>
            <title><![CDATA[Azure Sentinel – on the fast track]]></title>
            <link>https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track</link>
            <guid>https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track</guid>
            <pubDate>Thu, 24 Oct 2019 10:06:54 GMT</pubDate>
            <description><![CDATA[Azure Sentinel is Microsoft cloud-native SIEM and SOAR. Say goodbye to 6 months SIEM solution setup and architecture – get started with visibility on you environement just now, and use the rich ecosystem of connectors to extend intelligence to your complete security suite. On-demand session Here is ]]></description>
            <content:encoded><![CDATA[<p>Azure Sentinel is Microsoft cloud-native SIEM and SOAR. Say goodbye to 6 months SIEM solution setup and architecture – get started with visibility on you environement just now, and use the rich ecosystem of connectors to extend intelligence to your complete security suite.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="on-demand-session">On-demand session<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#on-demand-session" class="hash-link" aria-label="Direct link to On-demand session" title="Direct link to On-demand session" translate="no">​</a></h2>
<p>Here is the link to attend the full session, on-demand: <a href="https://info.microsoft.com/AP-AzureSec-WBNR-FY20-10Oct-24-AzureSentinel-SRDEM10204_LP02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureSec-WBNR-FY20-10Oct-24-AzureSentinel-SRDEM10204_LP02OnDemandRegistration-ForminBody.html</a>&nbsp;</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#slides" class="hash-link" aria-label="Direct link to Slides" title="Direct link to Slides" translate="no">​</a></h2>
<p><a href="https://www.slideshare.net/slideshow/embed_code/185673462" target="_blank" rel="noopener noreferrer" class="">View the slides on SlideShare</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demos">Demos<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#demos" class="hash-link" aria-label="Direct link to Demos" title="Direct link to Demos" translate="no">​</a></h2>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="onboarding-sentinel-and-dahsboards-exploration">Onboarding Sentinel and dahsboards exploration<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#onboarding-sentinel-and-dahsboards-exploration" class="hash-link" aria-label="Direct link to Onboarding Sentinel and dahsboards exploration" title="Direct link to Onboarding Sentinel and dahsboards exploration" translate="no">​</a></h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hb6KeNOlP8Y" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-investigations-with-azure-sentinel">Security Investigations with Azure Sentinel<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#security-investigations-with-azure-sentinel" class="hash-link" aria-label="Direct link to Security Investigations with Azure Sentinel" title="Direct link to Security Investigations with Azure Sentinel" translate="no">​</a></h4>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/vjOEYyrkazI" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="additionnal-resources">Additionnal resources:<a href="https://www.lheureuxlabs.com/2019/10/24/azure-sentinel-on-the-fast-track#additionnal-resources" class="hash-link" aria-label="Direct link to Additionnal resources:" title="Direct link to Additionnal resources:" translate="no">​</a></h2>
<ul>
<li class="">Sentinel Onboarding: <a href="https://docs.microsoft.com/en-us/azure/sentinel/quickstart-onboard" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/sentinel/quickstart-onboard</a>&nbsp;</li>
<li class="">Azure Sentinel Landing Page: <a href="https://azure.microsoft.com/en-sg/services/azure-sentinel/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-sg/services/azure-sentinel/</a></li>
<li class="">Connectors list: <a href="https://docs.microsoft.com/en-us/azure/sentinel/connect-data-sources" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/sentinel/connect-data-sources</a>&nbsp;</li>
<li class="">Community GitHub: <a href="https://github.com/Azure/Azure-Sentinel" target="_blank" rel="noopener noreferrer" class="">https://github.com/Azure/Azure-Sentinel</a></li>
<li class="">Insecure protocol dashboards: <a href="https://blogs.technet.microsoft.com/jonsh/azure-sentinel-insecure-protocols-dashboard-setup/" target="_blank" rel="noopener noreferrer" class="">https://blogs.technet.microsoft.com/jonsh/azure-sentinel-insecure-protocols-dashboard-setup/</a></li>
<li class="">MITRE ATT&amp;CK Detection rules: <a href="https://github.com/BlueTeamLabs/sentinel-attack/tree/master/detections" target="_blank" rel="noopener noreferrer" class="">https://github.com/BlueTeamLabs/sentinel-attack/tree/master/detections</a>&nbsp;</li>
<li class="">Converting Sigma detection rules to KQL: <a href="https://techcommunity.microsoft.com/t5/Azure-Sentinel/Importing-Sigma-Rules-to-Azure-Sentinel/ba-p/657097" target="_blank" rel="noopener noreferrer" class="">https://techcommunity.microsoft.com/t5/Azure-Sentinel/Importing-Sigma-Rules-to-Azure-Sentinel/ba-p/657097</a>&nbsp;</li>
<li class="">Hunting framework: <a href="https://github.com/wortell/AZSentinel" target="_blank" rel="noopener noreferrer" class="">https://github.com/wortell/AZSentinel</a> and <a href="https://github.com/BlueTeamLabs/sentinel-attack" target="_blank" rel="noopener noreferrer" class="">https://github.com/BlueTeamLabs/sentinel-attack</a>&nbsp;</li>
<li class="">Demo of F5 Big IP Integration with Azure Sentinel: <a href="https://www.youtube.com/watch?v=4uLoEW_l6EQ" target="_blank" rel="noopener noreferrer" class="">https://www.youtube.com/watch?v=4uLoEW_l6EQ</a>&nbsp;</li>
</ul>
<p>As usual, happy to hear your feedbacks!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>Compliance</category>
            <category>IaaS</category>
            <category>Security</category>
            <category>SIEM</category>
        </item>
        <item>
            <title><![CDATA[Azure DDoS Protection Standard]]></title>
            <link>https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard</link>
            <guid>https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard</guid>
            <pubDate>Thu, 19 Sep 2019 10:15:58 GMT</pubDate>
            <description><![CDATA[Azure DDoS Protection Standard is a service that enables AI-based protection of your cloud applications. Below is the list of resources of our webinar aired on 19th September 2019. As a quick reminder, below is the set of network protections in front of your Azure instances. DDoS protection exists i]]></description>
            <content:encoded><![CDATA[<p>Azure DDoS Protection Standard is a service that enables AI-based protection of your cloud applications. Below is the list of resources of our webinar aired on 19th September 2019.</p>
<p>As a quick reminder, below is the set of network protections in front of your Azure instances. DDoS protection exists in a free tier which is present by default on all resources you publish using a public IP address. In this session we discuss about the addition of the “Standard” edition of the Azure DDos protection.</p>
<p><img decoding="async" loading="lazy" alt="azuresecurityarchitecture" src="https://www.lheureuxlabs.com/assets/images/azuresecurityarchitecture-2ca6b34e37f6fefd4cd416da4ba69bf5.png" width="640" height="292" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="on-demand-session">On demand session<a href="https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard#on-demand-session" class="hash-link" aria-label="Direct link to On demand session" title="Direct link to On demand session" translate="no">​</a></h2>
<p><a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY20-09Sep-19-AzureDDoSProtectionStandard-SRDEM4832_LP01Registration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY20-09Sep-19-AzureDDoSProtectionStandard-SRDEM4832_LP01Registration-ForminBody.html \</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides<a href="https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard#slides" class="hash-link" aria-label="Direct link to Slides" title="Direct link to Slides" translate="no">​</a></h2>
<p><a href="https://www.slideshare.net/slideshow/embed_code/key/4ic9Wx75SAjBt8" target="_blank" rel="noopener noreferrer" class="">View the slides on SlideShare</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="demo">Demo<a href="https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard#demo" class="hash-link" aria-label="Direct link to Demo" title="Direct link to Demo" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/9TbvkE4HoQ8" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="additionnal-links">Additionnal links:<a href="https://www.lheureuxlabs.com/2019/09/19/azure-ddos-protection-standard#additionnal-links" class="hash-link" aria-label="Direct link to Additionnal links:" title="Direct link to Additionnal links:" translate="no">​</a></h3>
<ul>
<li class="">Overview: <a href="https://docs.microsoft.com/en-us/azure/virtual-network/ddos-protection-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/ddos-protection-overview</a>&nbsp;</li>
<li class="">BreakingPoint.cloud: <a href="https://www.ixiacom.com/products/breakingpoint-cloud" target="_blank" rel="noopener noreferrer" class="">https://www.ixiacom.com/products/breakingpoint-cloud</a></li>
</ul>
<p>As usual, feel free to send your feedbacks and suggestions!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>DDoS</category>
            <category>IaaS</category>
            <category>Networking</category>
            <category>Security</category>
        </item>
        <item>
            <title><![CDATA[Azure landing zones using Terraform: Getting started]]></title>
            <link>https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started</link>
            <guid>https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started</guid>
            <pubDate>Wed, 18 Sep 2019 11:22:19 GMT</pubDate>
            <description><![CDATA[This article describes the old experience for Azure CAF landing zones on Terraform, please refer to this article for the new updated experience: https://arnaud-web.azurewebsites.net/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform/ Cloud Adoption Framework for Azure has a great set o]]></description>
            <content:encoded><![CDATA[<p>This article describes the old experience for Azure CAF landing zones on Terraform, please refer to this article for the new updated experience:</p>
<p><a href="https://arnaud-web.azurewebsites.net/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform/" target="_blank" rel="noopener noreferrer" class="">https://arnaud-web.azurewebsites.net/2019/11/15/cloud-adoption-framework-landing-zones-with-terraform/</a></p>
<p>Cloud Adoption Framework for Azure has a great set of recommendations to accelerate deployment of Azure for entreprises who seek to consolidate their IT environment in the cloud and innovate on their applications.</p>
<p><a href="https://arnaud-web.azurewebsites.net/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter/" target="_blank" rel="noopener noreferrer" class="">CAF</a> introduces landing zones as a concept that describes all the elements that must be in place to deploy a production-grade quality deployment (ie, that includes a minimal set of auditing, controls, policies, etc).</p>
<p>In order to accelerate that, let’s review how to deploy our first landing zone for Azure based on Terraform! We assume that you know Terraform and Azure already, if thats not the case, spend some time on <a href="https://arnaud-web.azurewebsites.net/2019/08/29/introduction-to-terraform-on-azure/" target="_blank" rel="noopener noreferrer" class="">my previous post</a>.</p>
<p>We have published and will keep on updating a repository on GitHub: <a href="http://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/tf-landingzones</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="getting-started">Getting started<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#getting-started" class="hash-link" aria-label="Direct link to Getting started" title="Direct link to Getting started" translate="no">​</a></h2>
<p>The fastest way is to use Azure Cloud Shell:</p>
<ol>
<li class="">Open <strong><a href="https://shell.azure.com/" target="_blank" rel="noopener noreferrer" class="">https://shell.azure.com</a></strong></li>
<li class="">Go&nbsp;to&nbsp;the&nbsp;clouddrive&nbsp;directory: <strong>cd&nbsp;clouddrive</strong></li>
<li class="">Clone&nbsp;the&nbsp;GitHub&nbsp;repo&nbsp;from&nbsp;<strong><a href="http://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/tf-landingzones</a> git&nbsp;clone&nbsp;<a href="https://github.com/aztfmod/blueprints.git" target="_blank" rel="noopener noreferrer" class="">https://github.com/aztfmod/blueprints.git</a></strong></li>
<li class="">Initialize&nbsp;the&nbsp;environment&nbsp;–&nbsp;this&nbsp;will&nbsp;create&nbsp;the&nbsp;fundamentals&nbsp;for&nbsp;the&nbsp;Terraform&nbsp;state,&nbsp;like&nbsp;Storage&nbsp;Account,&nbsp;Azure&nbsp;Key&nbsp;Vault,&nbsp;and&nbsp;the&nbsp;managed&nbsp;identities: <strong>./launchpad.sh</strong></li>
<li class="">Deploy&nbsp;your&nbsp;first&nbsp;tranquility&nbsp;blueprint: <strong>./launchpad.sh&nbsp;landingzone_vdc_level1 plan</strong></li>
<li class="">Review&nbsp;the&nbsp;configuration&nbsp;and&nbsp;if&nbsp;you&nbsp;are&nbsp;ok&nbsp;with&nbsp;it,&nbsp;deploy&nbsp;it&nbsp;by&nbsp;running: <strong>./launchpad.sh landingzone_vdc_level1 apply</strong></li>
</ol>
<p>Below is a quick demo of doing that:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Igg_v25JUqw" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="customization">Customization<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#customization" class="hash-link" aria-label="Direct link to Customization" title="Direct link to Customization" translate="no">​</a></h2>
<p>In order to ease your first contact with the landing zone, we created a sample configuration file <strong><a href="https://github.com/aztfmod/blueprints/blob/master/landingzone_vdc_level1/proto.landing_zone_vdc_level1.auto.tfvars" target="_blank" rel="noopener noreferrer" title="proto.landing_zone_vdc_level1.auto.tfvars" class="">proto.landing_zone_vdc_level1.auto.tfvars</a>.</strong> As any <strong>.auto.tfvars</strong> file, it is going to be picked up automatically by Terraform when running. This file automatically configures all variables needed to get started:</p>
<ul>
<li class="">Retention period for Activity logs, and operations logs.</li>
<li class="">Names of the resource groups to be created.</li>
<li class="">Location of the resources to be deployed.</li>
<li class="">Tags for the resources.</li>
<li class="">Name of log analytics and list of solutions to be deployed.</li>
<li class="">Security center contact details.</li>
</ul>
<p>You can tune it to match your criteria, we hope the syntax is self explanatory, feel free to provide feedback on it!</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2019-09-17 at 3.09.49 PM" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-09-17-at-3.09.49-pm-b7ba9752b850375017dc52f27960d8fa.png" width="588" height="700" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quick-tour-of-the-architecture">Quick tour of the architecture:<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#quick-tour-of-the-architecture" class="hash-link" aria-label="Direct link to Quick tour of the architecture:" title="Direct link to Quick tour of the architecture:" translate="no">​</a></h2>
<p>Currently the solution is composed of 3 main components:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-launchpadsh">1. Launchpad.sh<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#1-launchpadsh" class="hash-link" aria-label="Direct link to 1. Launchpad.sh" title="Direct link to 1. Launchpad.sh" translate="no">​</a></h3>
<p>Is a shell script, it initiates the Terraform state locally, uploads it to the Azure storage account, manages the environment variables and communication accross landing zones and other components.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-level0_launchpad">2. Level0_launchpad<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#2-level0_launchpad" class="hash-link" aria-label="Direct link to 2. Level0_launchpad" title="Direct link to 2. Level0_launchpad" translate="no">​</a></h3>
<p>Creates a Key Vault, an Azure managed identity a storage account that is used to create store the Terraform state of our environment. It also creates a serie of service principals to be used to access the Terraform state and to integrate with Azure DevOps (in a future release). For full documentation, refer to the <a href="https://github.com/aztfmod/blueprints/blob/master/level0_launchpad/readme.md" target="_blank" rel="noopener noreferrer" class="">readme file</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-landingzone_vdc_level1">3. Landingzone_vdc_level1<a href="https://www.lheureuxlabs.com/2019/09/18/azure-landing-zones-using-terraform-getting-started#3-landingzone_vdc_level1" class="hash-link" aria-label="Direct link to 3. Landingzone_vdc_level1" title="Direct link to 3. Landingzone_vdc_level1" translate="no">​</a></h3>
<p>This vdc level1 landing zones leverages one blueprint (called tranquility) that sets the foundation for everything accounting and operations logs in your Azure subscription:</p>
<ul>
<li class="">
<p>Resource groups</p>
</li>
<li class="">
<p>Activity Logging</p>
</li>
<li class="">
<p>Diagnostics Logging</p>
</li>
<li class="">
<p>Log Analytics</p>
</li>
<li class="">
<p>Security Center</p>
</li>
</ul>
<p>Each of those features deployments are accomplished by a respective module, which is also on the <a href="http://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">GitHub</a>, which Terraform download when it needs it (at the plan stage).</p>
<p>A diagram of&nbsp;landingzone_vdc_level1 would look something like that:</p>
<p><img decoding="async" loading="lazy" alt="Screenshot 2019-09-17 at 3.32.02 PM.png" src="https://www.lheureuxlabs.com/assets/images/screenshot-2019-09-17-at-3.32.02-pm-36d8e0c661755da1f77be0f7d528e0cc.png" width="436" height="419" class="img_ev3q"></p>
<p>For full documentation, refer to the <a href="https://github.com/aztfmod/blueprints/blob/master/blueprint_tranquility/readme.md" target="_blank" rel="noopener noreferrer" class="">readme file</a>.</p>
<p>That’s it for now, it should be enough for you to get started on the Azure Landing Zones using Terraform. Keep in mind there is much more to come on the Landing Zones, we will keep on publishing more and we will have a couple of&nbsp;webinars to go deep dive on the subject!</p>
<p>Happy landing landing zones crafting!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud Lheureux</a></p>]]></content:encoded>
            <category>Automation</category>
            <category>Azure</category>
            <category>Blueprints</category>
            <category>Cloud Adoption Framework</category>
            <category>Governance</category>
            <category>Landing Zones</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Introduction to Terraform on Azure]]></title>
            <link>https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure</link>
            <guid>https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure</guid>
            <pubDate>Thu, 29 Aug 2019 02:12:03 GMT</pubDate>
            <description><![CDATA[As much as we love ARM templates and Json syntax for deploying resources on Azure, Terraform is another great way to accelerate and standardize your deployments. In this post, are the materials we use for the online webinar, available on demand here: https://info.microsoft.com/AP-AzureINFRA-WBNR-FY2]]></description>
            <content:encoded><![CDATA[<p>As much as we love ARM templates and Json syntax for deploying resources on Azure, Terraform is another great way to accelerate and standardize your deployments. In this post, are the materials we use for the online webinar, available on demand here: <a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY20-08Aug-29-AzureAdoption-SRDEM4141_LP02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY20-08Aug-29-AzureAdoption-SRDEM4141_LP02OnDemandRegistration-ForminBody.html</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides:<a href="https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure#slides" class="hash-link" aria-label="Direct link to Slides:" title="Direct link to Slides:" translate="no">​</a></h2>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21911902&amp;authkey=AABBISQmt8C-csY&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reference-links">Reference Links:<a href="https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure#reference-links" class="hash-link" aria-label="Direct link to Reference Links:" title="Direct link to Reference Links:" translate="no">​</a></h2>
<ul>
<li class="">Terraform Documentation: <a href="https://www.terraform.io/" target="_blank" rel="noopener noreferrer" class="">https://www.terraform.io</a>&nbsp;</li>
<li class="">Terraform AzureRM provider: <a href="https://www.terraform.io/docs/providers/azurerm/" target="_blank" rel="noopener noreferrer" class="">https://www.terraform.io/docs/providers/azurerm/</a>&nbsp;</li>
<li class="">Terraform modules registry: <a href="https://registry.terraform.io/" target="_blank" rel="noopener noreferrer" class="">https://registry.terraform.io</a></li>
<li class="">Azure Terraform Hub: <a href="http://aka.ms/tfhub" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/tfhub</a>&nbsp;</li>
<li class="">Great serie of step-by-step guidance for Terraform on Azure: <a href="https://azurecitadel.com/automation/terraform/" target="_blank" rel="noopener noreferrer" class="">https://azurecitadel.com/automation/terraform/</a>&nbsp;</li>
</ul>
<p>Tips to get started with Visual Studio Code:</p>
<p>Install the Terraform extension, you may notice that the 0.12 type of syntax is not recognized by default as its still under development. You can enable preview version running <strong>Terraform: Enable/Disable Language Server</strong> in the palette.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-cloud-adoption-framework-in-terraform-samples">Azure Cloud Adoption Framework in Terraform samples:<a href="https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure#azure-cloud-adoption-framework-in-terraform-samples" class="hash-link" aria-label="Direct link to Azure Cloud Adoption Framework in Terraform samples:" title="Direct link to Azure Cloud Adoption Framework in Terraform samples:" translate="no">​</a></h2>
<p>If you want to kick-start your Azure deployment based on Cloud Adoption Framework Landing Zones, here are some Terraform examples of it (more webinars on this coming soon):&nbsp;<a href="http://aka.ms/tf-landingzones" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/tf-landingzones</a></p>
<p>Have fun with this!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demos">Demos<a href="https://www.lheureuxlabs.com/2019/08/29/introduction-to-terraform-on-azure#demos" class="hash-link" aria-label="Direct link to Demos" title="Direct link to Demos" translate="no">​</a></h2>
<p>Demo 1: Getting started with your environment</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/A6hCidxh1NE" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Demo 2: First deployment</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/hV-hZNwM3rY" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Demo 3: States and outputs</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Cl8C0VG7-K4" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Demo 4: Modules</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/QdD_qC4Aeew" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>As usual, feel free to send your feedbacks.</p>
<p>Arnaud</p>]]></content:encoded>
            <category>Azure</category>
            <category>Governance</category>
            <category>Security</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Cloud Adoption Framework, Scaffolding and Azure Virtual Datacenter]]></title>
            <link>https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter</link>
            <guid>https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter</guid>
            <pubDate>Thu, 20 Jun 2019 03:35:14 GMT</pubDate>
            <description><![CDATA[&lt;Updated 11th July 2019&gt; Since we started to help customers of all sizes to deploy cloud technologies, we have developed many frameworks which all evolved in parallel over time. You may have heard about: Cloud Adoption Framework, Cloud Operations Model, Entreprise Cloud Strategy, Entreprise Sc]]></description>
            <content:encoded><![CDATA[<p>&lt;Updated 11th July 2019&gt;</p>
<p>Since we started to help customers of all sizes to deploy cloud technologies, we have developed many frameworks which all evolved in parallel over time. You may have heard about: Cloud Adoption Framework, Cloud Operations Model, Entreprise Cloud Strategy, Entreprise Scaffolding and maybe a couple more.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-caf-is-dead-long-live-the-caf">The CAF is dead, long live the CAF!<a href="https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter#the-caf-is-dead-long-live-the-caf" class="hash-link" aria-label="Direct link to The CAF is dead, long live the CAF!" title="Direct link to The CAF is dead, long live the CAF!" translate="no">​</a></h2>
<p>A couple of weeks ago, we published a <a href="http://aka.ms/caf" target="_blank" rel="noopener noreferrer" class="">new version of CAF – Cloud Adoption Framework for Azure</a>, which consolidates all of our engineering and field&nbsp;best practices, as well as patterns that we’ve seen from big entreprises going to the cloud.</p>
<p>CAF has now&nbsp;five main sections which guide you throughout the whole circle:</p>
<p><img decoding="async" loading="lazy" alt="cloud-adoption-framework-overview" src="https://www.lheureuxlabs.com/assets/images/cloud-adoption-framework-overview-367f88246f79a607281233e60a3e17a8.png" width="1850" height="1089" class="img_ev3q"></p>
<ol>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/business-strategy/" target="_blank" rel="noopener noreferrer" class="">Plan</a></li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/ready/" target="_blank" rel="noopener noreferrer" class="">Ready</a></li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/migrate/" target="_blank" rel="noopener noreferrer" class="">Migrate</a></li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/operations/" target="_blank" rel="noopener noreferrer" class="">Manage</a></li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/" target="_blank" rel="noopener noreferrer" class="">Govern</a></li>
</ol>
<p>This model is very realistic and field inspired, including some discussions around adoption with&nbsp;<a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/governance/journeys/large-enterprise/multicloud-evolution" target="_blank" rel="noopener noreferrer" class="">one or more cloud providers</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="governance">Governance<a href="https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter#governance" class="hash-link" aria-label="Direct link to Governance" title="Direct link to Governance" translate="no">​</a></h2>
<p>One of the most intimidating aspects of cloud adoption is the governance: how to manage new risks that are involved with cloud deployments and how to accompany that with entreprise processes and policies (and how does it remain current).</p>
<p>It is of course an iterative process that will evolve as you add new services into your environment: from dev/test to prod, and from legacy 3-tiers application to a brand new cloud-native application.</p>
<p>We distinguish 5 disciplines in governance:</p>
<ol>
<li class="">Cost management</li>
<li class="">Security baseline</li>
<li class="">Resource consistency</li>
<li class="">Identity baseline</li>
<li class="">Deployment Acceleration</li>
</ol>
<p>But the difficulty is the first step: how do I get a minimal viable product (MVP) for my first cloud deployment?</p>
<p><img decoding="async" loading="lazy" alt="incremental-governance-example" src="https://www.lheureuxlabs.com/assets/images/incremental-governance-example-eeea744972f237e33c5e2aca3805435b.png" width="1891" height="756" class="img_ev3q"></p>
<p><strong>Actions</strong>: In order to avoid you the blank page syndrome, we have prepared you some actions:</p>
<ol>
<li class="">Determine your immediate objectives with cloud, and the readiness of your organization. Cloud Assessment Tool: <a href="https://aka.ms/CAF/gov/assess" target="_blank" rel="noopener noreferrer" class="">https://aka.ms/CAF/gov/assess</a>&nbsp;</li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/journeys/index" target="_blank" rel="noopener noreferrer" class="">Establish your governance MVP:</a>
<ol>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/journeys/small-to-medium-enterprise/index" target="_blank" rel="noopener noreferrer" class="">Small to Medium Entreprises</a></li>
<li class=""><a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/journeys/large-enterprise/index" target="_blank" rel="noopener noreferrer" class="">Large Entreprises</a></li>
</ol>
</li>
</ol>
<p>For all those journey we document a minimum viable product across the five disciplines, we explain the design decisions we took for you, the discussion points and alternative design considerations.</p>
<p>When we define governance, we also think about compliance to the rules, and automatic remediation methods for it: this is called <a href="https://docs.microsoft.com/en-us/azure/governance/policy/overview" target="_blank" rel="noopener noreferrer" class="">Azure Policy</a>.</p>
<p>Along the way, if you are going for ongoing compliance, why not going to continuous integration and continuous deployment for your infrastructure?</p>
<p><img decoding="async" loading="lazy" alt="cicd" src="https://www.lheureuxlabs.com/assets/images/cicd-c95fb1e4b95aa6a8b1c192ec2ccd24d3.png" width="2702" height="1408" class="img_ev3q"></p>
<p>If you want to have a look at all of that in action, check at:</p>
<ul>
<li class="">Our&nbsp;<a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-01Jan-24-Azuregovernancemanagement-MCW0010995_02OnDemandRegistration-ForminBody.html?wt.mc_id=undefined" target="_blank" rel="noopener noreferrer" class="">webinar on Azure Cloud and Compliance</a></li>
<li class="">Infra as Code hands-on-labs – <a href="https://www.azuredevopslabs.com/labs/vstsextend/terraform/" target="_blank" rel="noopener noreferrer" class="">https://www.azuredevopslabs.com/labs/vstsextend/terraform/</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-scaffolding">Azure Scaffolding<a href="https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter#azure-scaffolding" class="hash-link" aria-label="Direct link to Azure Scaffolding" title="Direct link to Azure Scaffolding" translate="no">​</a></h2>
<p>We used to talk a lot of &nbsp;“scaffolding” as it is an excellent checklist, or set of mandatory technical implentation details for a good cloud deployment. It is <em>being replaced</em> by the “landing zone” construct (see next section).</p>
<p>Here is a refresher picture about what scaffolding includes:</p>
<p><img decoding="async" loading="lazy" alt="scaffoldv2" src="https://www.lheureuxlabs.com/assets/images/scaffoldv2-cfa83a7fb0074e8c29723d98f4258e06.png" width="685" height="285" class="img_ev3q"></p>
<p>Important readings on Azure Scaffolding:</p>
<ul>
<li class="">the documentation: <a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/appendix/azure-scaffold" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/appendix/azure-scaffold</a>&nbsp;</li>
<li class="">an example: <a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/appendix/azure-scaffold-examples" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/appendix/azure-scaffold-examples</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-landing-zones">Azure Landing Zones<a href="https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter#azure-landing-zones" class="hash-link" aria-label="Direct link to Azure Landing Zones" title="Direct link to Azure Landing Zones" translate="no">​</a></h2>
<p>Landing Zone is our new construct to describe a good deployment, its replacing the scaffolding idea but takes all of its good ideas.</p>
<p><img decoding="async" loading="lazy" alt="landing-zone-considerations-2" src="https://www.lheureuxlabs.com/assets/images/landing-zone-considerations-2-4ac36f06b062f32289c82ecd6ec36997.png" width="1254" height="248" class="img_ev3q"></p>
<p>It has the idea of <strong>primitives</strong> which includes all mandatory decisions:</p>
<ul>
<li class="">Management Groups</li>
<li class="">Resource Groups</li>
<li class="">Naming Standards</li>
<li class="">Number of subscriptions</li>
</ul>
<p>On the technical implementations of Governance it includes all of:</p>
<ul>
<li class="">Policies</li>
<li class="">Cost</li>
<li class="">Monitoring</li>
<li class="">Identity</li>
</ul>
<p>Moreover, it comes with all set of decision trees in order to help you when it comes to implementation with your customers/partners:</p>
<ul>
<li class=""><strong><a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/ready/considerations/compute-decisions" target="_blank" rel="noopener noreferrer" class="">Compute decisions</a></strong></li>
<li class=""><strong><a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/ready/considerations/storage-guidance" target="_blank" rel="noopener noreferrer" class="">Storage decisions</a></strong></li>
<li class=""><strong><a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/ready/considerations/network-decisions" target="_blank" rel="noopener noreferrer" class="">Networking decisions</a></strong></li>
<li class=""><strong><a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/ready/considerations/data-decisions" target="_blank" rel="noopener noreferrer" class="">Database decisions</a></strong></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-virtual-datacenter">Azure Virtual Datacenter<a href="https://www.lheureuxlabs.com/2019/06/20/cloud-adoption-framework-scaffolding-and-azure-virtual-datacenter#azure-virtual-datacenter" class="hash-link" aria-label="Direct link to Azure Virtual Datacenter" title="Direct link to Azure Virtual Datacenter" translate="no">​</a></h2>
<p>Azure VDC is a set of concepts, implentation guidance and automation scripts that allows you to build a highly available and highly secure datacenter, based on Microsoft Azure services.</p>
<p><img decoding="async" loading="lazy" alt="vdc_example" src="https://www.lheureuxlabs.com/assets/images/vdc_example-667703853055336db3bd63a3fcc8ee55.png" width="781" height="935" class="img_ev3q"></p>
<p>You can find all the materials here: <a href="https://docs.microsoft.com/en-gb/azure/architecture/vdc/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-gb/azure/architecture/vdc/</a>&nbsp;</p>
<p>Check at the automation scripts and all the archetypes that allow you to deploy a VDC environment fast – based on Docker and Python : <a href="https://github.com/Azure/vdc" target="_blank" rel="noopener noreferrer" class="">https://github.com/Azure/vdc</a></p>
<p>As last reference, as usual, <a href="https://docs.microsoft.com/en-us/azure/architecture/" target="_blank" rel="noopener noreferrer" class="">our Azure Architecture Center</a></p>
<p>That’s it, now you will have a very well architected Azure deployment!</p>
<p><a href="https://twitter.com/ArnaudLheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>CAF</category>
            <category>Compliance</category>
            <category>Enterprise</category>
            <category>Governance</category>
            <category>Security</category>
        </item>
        <item>
            <title><![CDATA[Getting Started with Azure Network Monitoring]]></title>
            <link>https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring</link>
            <guid>https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring</guid>
            <pubDate>Thu, 02 May 2019 10:57:50 GMT</pubDate>
            <description><![CDATA[Getting knowledge and control on the network aspects of cloud is vital. In this post, lets recap the different options available for you in Microsoft Azure. This is a webinar that we had on March 21, which is now available on demand here: https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-03Mar-21-A]]></description>
            <content:encoded><![CDATA[<p>Getting knowledge and control on the network aspects of cloud is vital. In this post, lets recap the different options available for you in Microsoft Azure.</p>
<p>This is a webinar that we had on March 21, which is now available on demand here: <a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-03Mar-21-AzureNetworkMonitoring-MCW0012270_02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-03Mar-21-AzureNetworkMonitoring-MCW0012270_02OnDemandRegistration-ForminBody.html</a>&nbsp;&nbsp;</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#slides" class="hash-link" aria-label="Direct link to Slides" title="Direct link to Slides" translate="no">​</a></h2>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21910482&amp;authkey=AI3Y-k6p_wl0Co0&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demos">Demos<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#demos" class="hash-link" aria-label="Direct link to Demos" title="Direct link to Demos" translate="no">​</a></h2>
<p>Overview of network monitoring solutions: <a href="https://docs.microsoft.com/en-us/azure/networking/network-monitoring-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/networking/network-monitoring-overview</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="monitoring-vm">Monitoring VM<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#monitoring-vm" class="hash-link" aria-label="Direct link to Monitoring VM" title="Direct link to Monitoring VM" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YFQfk7BDFag" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Virtual machine network bandwidth:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/virtual-network/virtual-machine-network-throughput" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/virtual-machine-network-throughput</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-monitor-for-networking">Azure Monitor for Networking<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-monitor-for-networking" class="hash-link" aria-label="Direct link to Azure Monitor for Networking" title="Direct link to Azure Monitor for Networking" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/0-mJd-PTo04" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Analysis of network connection data with Azure Monitor for virtual machines: <a href="https://azure.microsoft.com/en-us/blog/analysis-of-network-connection-data-with-azure-monitor-for-virtual-machines/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/blog/analysis-of-network-connection-data-with-azure-monitor-for-virtual-machines/</a>&nbsp;</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-connection-monitor">Azure Connection Monitor<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-connection-monitor" class="hash-link" aria-label="Direct link to Azure Connection Monitor" title="Direct link to Azure Connection Monitor" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/WVAkrHY49Mc" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Monitor network communication:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/network-watcher/connection-monitor" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/network-watcher/connection-monitor</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-packet-capture">Azure Packet Capture<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-packet-capture" class="hash-link" aria-label="Direct link to Azure Packet Capture" title="Direct link to Azure Packet Capture" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/krp1HibBcnI" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Manage packet captures with Azure Network Watcher:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-packet-capture-manage-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-packet-capture-manage-portal</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-nsg-flow-logs">Azure NSG Flow Logs<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-nsg-flow-logs" class="hash-link" aria-label="Direct link to Azure NSG Flow Logs" title="Direct link to Azure NSG Flow Logs" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/5qicD4qRm78" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Reading NSG flow logs: <a href="https://docs.microsoft.com/en-gb/azure/network-watcher/network-watcher-read-nsg-flow-logs" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-gb/azure/network-watcher/network-watcher-read-nsg-flow-logs</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-traffic-analytics">Azure Traffic Analytics<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-traffic-analytics" class="hash-link" aria-label="Direct link to Azure Traffic Analytics" title="Direct link to Azure Traffic Analytics" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/5YGo8MWtGxE" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Introduction to Traffic Analytics: <a href="https://aka.ms/trafficanalyticsdocs" target="_blank" rel="noopener noreferrer" class="">https://aka.ms/trafficanalyticsdocs</a>&nbsp;</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-virtual-network-tap">Azure Virtual Network Tap<a href="https://www.lheureuxlabs.com/2019/05/02/getting-started-with-azure-network-monitoring#azure-virtual-network-tap" class="hash-link" aria-label="Direct link to Azure Virtual Network Tap" title="Direct link to Azure Virtual Network Tap" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/exdBZUtsOSQ" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Virtual network TAP:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-tap-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-tap-overview</a></p>
<p>Enjoy the fun and lets catchup on <a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">@arnaudlheureux</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>IaaS</category>
            <category>Network Monitor</category>
            <category>Network Security Groups</category>
            <category>Networking</category>
            <category>SDN</category>
        </item>
        <item>
            <title><![CDATA[Azure Governance in the real world]]></title>
            <link>https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world</link>
            <guid>https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world</guid>
            <pubDate>Fri, 01 Feb 2019 07:36:44 GMT</pubDate>
            <description><![CDATA[In this session, we review the fundamentals behind a well managed Azure environment: Azure Management Groups, Azure Policy and Blueprints. Session Slides Download the slides here Demo 1: Architecture Center, Service Trust Portal Azure Trust Center for APAC: https://www.microsoft.com/en-sg/apac/trust]]></description>
            <content:encoded><![CDATA[<p>In this session, we review the fundamentals behind a well managed Azure environment: Azure Management Groups, Azure Policy and Blueprints.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session">Session<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#session" class="hash-link" aria-label="Direct link to Session" title="Direct link to Session" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YaWKe8HXi-U" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#slides" class="hash-link" aria-label="Direct link to Slides" title="Direct link to Slides" translate="no">​</a></h2>
<p><a href="https://1drv.ms/b/s!Am-UBiXliubst8dBA4su4X5asVu6Uw" target="_blank" rel="noopener noreferrer" class="">Download the slides here</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demo-1-architecture-center-service-trust-portal">Demo 1: Architecture Center, Service Trust Portal<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#demo-1-architecture-center-service-trust-portal" class="hash-link" aria-label="Direct link to Demo 1: Architecture Center, Service Trust Portal" title="Direct link to Demo 1: Architecture Center, Service Trust Portal" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/f4is3TH0cw0" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Azure Trust Center for APAC: <a href="https://www.microsoft.com/en-sg/apac/trustedcloud/default.aspx" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-sg/apac/trustedcloud/default.aspx</a></li>
<li class="">Azure Service Trust Portal: <a href="http://aka.ms/stp" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/stp</a>&nbsp;</li>
<li class="">Architecture Center: <a href="https://docs.microsoft.com/en-us/azure/architecture/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/architecture/</a>&nbsp;</li>
<li class="">Azure Virtual Datacenter: <a href="http://aka.ms/vdc" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/vdc</a>&nbsp;</li>
<li class="">All Azure Governance Documentation:<a href="https://docs.microsoft.com/en-us/azure/governance/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/governance/</a>&nbsp;</li>
<li class="">The governance journeys, per organization types: <a href="https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/journeys/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-gb/azure/architecture/cloud-adoption/governance/journeys/overview</a></li>
<li class="">Microsoft Cloud Adoption Framework for Azure: <a href="https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/architecture/cloud-adoption/overview</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demo-2-azure-management-groups--azure-policy">Demo 2: Azure Management Groups &amp; Azure Policy<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#demo-2-azure-management-groups--azure-policy" class="hash-link" aria-label="Direct link to Demo 2: Azure Management Groups &amp; Azure Policy" title="Direct link to Demo 2: Azure Management Groups &amp; Azure Policy" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/2WVcse8vflY" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Azure Management Groups: <a href="https://docs.microsoft.com/en-us/azure/governance/management-groups/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/governance/management-groups/</a></li>
<li class="">Azure Policy Documentation: <a href="https://docs.microsoft.com/en-us/azure/governance/policy/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/governance/policy/overview</a></li>
<li class="">Azure Policy Github: <a href="https://github.com/Azure/azure-policy/" target="_blank" rel="noopener noreferrer" class="">https://github.com/Azure/azure-policy/</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demo-3-create-custom-policies-with-terraform">Demo 3: Create custom policies with Terraform<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#demo-3-create-custom-policies-with-terraform" class="hash-link" aria-label="Direct link to Demo 3: Create custom policies with Terraform" title="Direct link to Demo 3: Create custom policies with Terraform" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/V0O3RQF8dfA" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Terraform:&nbsp;<a href="https://www.terraform.io/" target="_blank" rel="noopener noreferrer" class="">https://www.terraform.io/</a></li>
<li class="">Getting started with Terraform:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/terraform/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/terraform/</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demo-4-azure-blueprints">Demo 4: Azure Blueprints<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#demo-4-azure-blueprints" class="hash-link" aria-label="Direct link to Demo 4: Azure Blueprints" title="Direct link to Demo 4: Azure Blueprints" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/zXyCamUc4EY" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Azure Blueprints Documentation:&nbsp;<a href="http://aka.ms/whatareblueprints" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/whatareblueprints</a></li>
<li class="">Azure Blueprints Github:&nbsp;<a href="http://github.com/ajf214/personal-arm-templates" target="_blank" rel="noopener noreferrer" class="">http://github.com/ajf214/personal-arm-templates</a>&nbsp;</li>
<li class="">Azure Friday Video:&nbsp;<a href="https://azure.microsoft.com/en-us/resources/videos/azure-friday-an-overview-of-azure-blueprints/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/resources/videos/azure-friday-an-overview-of-azure-blueprints/</a>&nbsp;</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="more">More<a href="https://www.lheureuxlabs.com/2019/02/01/azure-governance-in-the-real-world#more" class="hash-link" aria-label="Direct link to More" title="Direct link to More" translate="no">​</a></h2>
<p>Follow the new sessions coming up on the Azure APAC webinar series:&nbsp;</p>
<p><a href="https://www.microsoft.com/en-sg/apac/azurewebinar" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-sg/apac/azurewebinar</a>&nbsp;</p>
<p>As usual, feel free to reach out if you have any question!</p>
<p><a href="https://twitter.com/ArnaudLheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>Compliance</category>
            <category>Governance</category>
            <category>IaaS</category>
            <category>Security</category>
            <category>Terraform</category>
        </item>
        <item>
            <title><![CDATA[Optimize your Cloud With Azure Networking]]></title>
            <link>https://www.lheureuxlabs.com/2018/11/16/optimize-your-cloud-with-azure-networking</link>
            <guid>https://www.lheureuxlabs.com/2018/11/16/optimize-your-cloud-with-azure-networking</guid>
            <pubDate>Fri, 16 Nov 2018 03:21:30 GMT</pubDate>
            <description><![CDATA[Here are the materials from our online session dedicated to Azure networking new features! In it, we cover exciting new features like Azure Front Door, Azure Virtual WAN, and many more. On-demand content https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-11Nov-15-OptimizeyourCloudWithAzureNetworking]]></description>
            <content:encoded><![CDATA[<p>Here are the materials from our online session dedicated to Azure networking new features! In it, we cover exciting new features like Azure Front Door, Azure Virtual WAN, and many more.</p>
<p><a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-11Nov-15-OptimizeyourCloudWithAzureNetworking-MCW0009873_02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-11Nov-15-OptimizeyourCloudWithAzureNetworking-MCW0009873_02OnDemandRegistration-ForminBody.html</a>&nbsp;</p>
<h1>Slides</h1>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21909683&amp;authkey=AOwELI-NWT_Kd90&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<h1>Demo</h1>
<p>Azure Front Door</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/RUJOJTOuVag" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>Azure Firewall</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/XqWuHXWpVf4" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h1>Reference materials:</h1>
<ul>
<li class="">Azure Virtual WAN Overview:&nbsp;<a href="https://azure.microsoft.com/en-us/services/virtual-wan/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/services/virtual-wan/</a>&nbsp;</li>
<li class="">Azure DDoS Protection Standard:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/virtual-network/ddos-protection-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/ddos-protection-overview</a>&nbsp;</li>
<li class="">Azure Application Security Groups:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/virtual-network/security-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/security-overview</a>&nbsp;</li>
<li class="">Azure Application Gateway:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/application-gateway/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/application-gateway/overview</a></li>
<li class="">Azure Firewall:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/firewall/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/firewall/overview</a>&nbsp;</li>
<li class="">Azure Front Door: <a href="https://docs.microsoft.com/en-us/azure/frontdoor/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/frontdoor/</a></li>
<li class="">Azure Monitor:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/azure-monitor/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/azure-monitor/overview</a>&nbsp;</li>
<li class="">Azure Networking Analytics:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-azure-networking-analytics" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-azure-networking-analytics</a></li>
<li class="">Azure Traffic Analytics:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/network-watcher/traffic-analytics" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/network-watcher/traffic-analytics</a></li>
<li class="">Azure Virtual Network TAP:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-tap-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-tap-overview</a>&nbsp;</li>
<li class="">Azure ExpressRoute Direct: <a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-erdirect-about" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/expressroute/expressroute-erdirect-about</a></li>
<li class="">Azure ExpressRoute Global Reach:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-global-reach" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/expressroute/expressroute-global-reach</a>&nbsp;</li>
</ul>
<p>As usual, feel free to reach out if you have any question – <a href="https://twitter.com/ArnaudLheureux" target="_blank" rel="noopener noreferrer" class="">@arnaudlheureux</a> !</p>]]></content:encoded>
            <category>Azure</category>
            <category>ExpressRoute</category>
            <category>Firewall</category>
            <category>IaaS</category>
            <category>Network Security Groups</category>
            <category>Networking</category>
            <category>SD-WAN</category>
        </item>
        <item>
            <title><![CDATA[Azure Migrate Overview]]></title>
            <link>https://www.lheureuxlabs.com/2018/09/18/azure-migrate-overview</link>
            <guid>https://www.lheureuxlabs.com/2018/09/18/azure-migrate-overview</guid>
            <pubDate>Tue, 18 Sep 2018 01:29:06 GMT</pubDate>
            <description><![CDATA[Please find here the materials from our online session dedicated to datacenter migrations to Azure called: “The secrets behind a well-orchestrated migration to Azure”. In this session we discuss the migration to Azure with Azure Migrate and Azure Site Recovery. You can replay the session on-demand: ]]></description>
            <content:encoded><![CDATA[<p>Please find here the materials from our online session dedicated to datacenter migrations to Azure called: “The secrets behind a well-orchestrated migration to Azure”. In this session we discuss the migration to Azure with Azure Migrate and Azure Site Recovery.</p>
<p>You can replay the session on-demand:<br>
<a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-09Sep-18-ThesecretsbehindawellorchestratedmigrationtoAzure-MCW0008785_01Registration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-09Sep-18-ThesecretsbehindawellorchestratedmigrationtoAzure-MCW0008785_01Registration-ForminBody.html</a>&nbsp;</p>
<p>You can view the slides:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21909467&amp;authkey=AIpDChovl_W4r9U&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>You can find the reference materials from this session:</p>
<ul>
<li class="">Azure Migrate Team blog:&nbsp;<a href="https://aka.ms/migrate/blog" target="_blank" rel="noopener noreferrer" class="">https://aka.ms/migrate/blog</a></li>
<li class="">Architecture Reference:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/#pivot=architecture" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/#pivot=architecture</a>&nbsp;</li>
<li class="">Azure Migration Center:&nbsp;<a href="https://azure.microsoft.com/en-us/migration/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/migration/</a>&nbsp;</li>
<li class="">Azure Virtual Datacenter Architecture:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/architecture/vdc/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/architecture/vdc/</a>&nbsp;</li>
<li class="">MOOC: Migrating Workloads to Azure:&nbsp;<a href="https://www.edx.org/course/migrating-workloads-to-azure-0" target="_blank" rel="noopener noreferrer" class="">https://www.edx.org/course/migrating-workloads-to-azure-0</a>&nbsp;</li>
<li class="">Azure Pricing Calculator:&nbsp;<a href="https://azure.microsoft.com/en-us/pricing/calculator/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/pricing/calculator/</a></li>
<li class="">TCO Calculator:&nbsp;<a href="https://tco.microsoft.com/" target="_blank" rel="noopener noreferrer" class="">https://tco.microsoft.com/</a>&nbsp;</li>
<li class="">Partners – Intelligent Cloud Gallery Materials:&nbsp;<a href="http://aka.ms/icgallery" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/icgallery</a>&nbsp;</li>
<li class="">Partners – Migration Resources:&nbsp;<a href="https://partner.microsoft.com/en-us/asset/collection/azure-migration-campaign#/" target="_blank" rel="noopener noreferrer" class="">https://partner.microsoft.com/en-us/asset/collection/azure-migration-campaign#/</a>&nbsp;</li>
</ul>
<p>See you soon!</p>
<p>Arnaud</p>]]></content:encoded>
            <category>Azure</category>
            <category>Azure Migrate</category>
            <category>IaaS</category>
        </item>
        <item>
            <title><![CDATA[Improve your application security and compliance with Azure]]></title>
            <link>https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure</link>
            <guid>https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure</guid>
            <pubDate>Wed, 29 Aug 2018 01:33:47 GMT</pubDate>
            <description><![CDATA[Please find below materials from our online session for 29th August 2018 10am Singapore time! Microsoft Azure enables you to meet the compliance requirements for data confidentiality, while ensuring data integrity and availability at all times. Tune in to this webinar to find out more about the avai]]></description>
            <content:encoded><![CDATA[<p><em>Please find below materials from our online session for 29th August 2018 10am Singapore time!</em></p>
<p>Microsoft Azure enables you to meet the compliance requirements for data confidentiality, while ensuring data integrity and availability at all times. Tune in to this webinar to find out more about the available security technologies for your application and learn more about the security tools to help you meet the data compliance and protection requirements for your organization.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="on-demand-content">On-demand content<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#on-demand-content" class="hash-link" aria-label="Direct link to On-demand content" title="Direct link to On-demand content" translate="no">​</a></h2>
<p>Registration: <a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-08Aug-29-securityandcompliancewithAzure-MCW0008428_01Registration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-08Aug-29-securityandcompliancewithAzure-MCW0008428_01Registration-ForminBody.html</a>&nbsp;</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="video-of-the-session">Video of the session<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#video-of-the-session" class="hash-link" aria-label="Direct link to Video of the session" title="Direct link to Video of the session" translate="no">​</a></h2>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Q0BKilfSNN8" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="slides">Slides<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#slides" class="hash-link" aria-label="Direct link to Slides" title="Direct link to Slides" translate="no">​</a></h2>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21909173&amp;authkey=ADLiJIcz5VvTvEk&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="demos">Demos<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#demos" class="hash-link" aria-label="Direct link to Demos" title="Direct link to Demos" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-privacy-and-compliance">Azure Privacy and Compliance<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#azure-privacy-and-compliance" class="hash-link" aria-label="Direct link to Azure Privacy and Compliance" title="Direct link to Azure Privacy and Compliance" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/_BSleh-1OLU" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Introduction to Azure trusted cloud: <a href="https://azure.microsoft.com/en-us/overview/trusted-cloud/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/overview/trusted-cloud/</a></li>
<li class="">Microsoft Trust Center: <a href="https://www.microsoft.com/en-us/trustcenter/" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-us/trustcenter/</a></li>
<li class="">Data Subject Request for GDPR: <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/gdpr-dsr-azure?toc=/microsoft-365/enterprise/toc.json" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/microsoft-365/compliance/gdpr-dsr-azure?toc=/microsoft-365/enterprise/toc.json</a></li>
<li class="">Philippines DPA <a href="https://www.microsoft.com/en-ph/TrustCenter/Privacy/DPA" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-ph/TrustCenter/Privacy/DPA</a></li>
<li class="">Compliance: <a href="https://www.microsoft.com/en-us/trustcenter/privacy/ensure-compliance" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-us/trustcenter/privacy/ensure-compliance</a></li>
<li class="">MTCS: <a href="https://www.microsoft.com/en-us/trustcenter/compliance/mtcs" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-us/trustcenter/compliance/mtcs</a></li>
<li class="">Microsoft Service Trust Portal: <a href="https://servicetrust.microsoft.com/ViewPage/TrustDocuments" target="_blank" rel="noopener noreferrer" class="">https://servicetrust.microsoft.com/ViewPage/TrustDocuments</a></li>
<li class="">Compliance Blueprints: <a href="https://servicetrust.microsoft.com/ViewPage/BlueprintOverview" target="_blank" rel="noopener noreferrer" class="">https://servicetrust.microsoft.com/ViewPage/BlueprintOverview</a></li>
<li class="">GDPR Blueprint: <a href="https://servicetrust.microsoft.com/ViewPage/GDPRBlueprint" target="_blank" rel="noopener noreferrer" class="">https://servicetrust.microsoft.com/ViewPage/GDPRBlueprint</a></li>
<li class="">PCI-DSS Blueprint: <a href="https://servicetrust.microsoft.com/ViewPage/PCIBlueprint" target="_blank" rel="noopener noreferrer" class="">https://servicetrust.microsoft.com/ViewPage/PCIBlueprint</a></li>
<li class="">Azure Standard Response RFP/RFI <a href="https://gallery.technet.microsoft.com/Azure-Standard-Response-to-5de19cb6" target="_blank" rel="noopener noreferrer" class="">https://gallery.technet.microsoft.com/Azure-Standard-Response-to-5de19cb6</a></li>
<li class="">Azure RFP Toolkit: <a href="http://aka.ms/azurerfptoolbox" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/azurerfptoolbox</a>&nbsp;</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-firewall">Azure Firewall<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#azure-firewall" class="hash-link" aria-label="Direct link to Azure Firewall" title="Direct link to Azure Firewall" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/XqWuHXWpVf4" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Overview of Azure Firewall: <a href="https://docs.microsoft.com/en-us/azure/firewall/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/firewall/overview</a></li>
<li class="">Getting started with Azure Firewall: <a href="https://docs.microsoft.com/en-us/azure/firewall/tutorial-firewall-deploy-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/firewall/tutorial-firewall-deploy-portal</a></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-security-center">Azure Security Center<a href="https://www.lheureuxlabs.com/2018/08/29/improve-your-application-security-and-compliance-with-azure#azure-security-center" class="hash-link" aria-label="Direct link to Azure Security Center" title="Direct link to Azure Security Center" translate="no">​</a></h3>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/4u0S5TAR1JQ" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<ul>
<li class="">Getting started with Azure Security Center:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security-center/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/</a>&nbsp;</li>
<li class="">Connecting Security Center to third parties solutions:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security-center/quick-security-solutions" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/quick-security-solutions</a>&nbsp;</li>
<li class="">Azure Security Center connection to SIEM:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security-center/security-center-export-data-to-siem" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/security-center-export-data-to-siem</a>&nbsp;</li>
<li class="">Qualys Integration on Azure Security Center:
<ul>
<li class=""><a href="https://docs.microsoft.com/en-us/azure/security-center/security-center-vulnerability-assessment-recommendations" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/security-center-vulnerability-assessment-recommendations</a>&nbsp;</li>
<li class=""><a href="https://community.qualys.com/docs/DOC-5823-deploying-qualys-cloud-agents-from-microsoft-azure-security-center" target="_blank" rel="noopener noreferrer" class="">https://community.qualys.com/docs/DOC-5823-deploying-qualys-cloud-agents-from-microsoft-azure-security-center</a>&nbsp;</li>
</ul>
</li>
</ul>
<p>As usual, feel free to reach out if you have any question!</p>
<p>Arnaud</p>]]></content:encoded>
            <category>Azure</category>
            <category>Azure Firewall</category>
            <category>Azure Security Center</category>
            <category>Compliance</category>
            <category>IaaS</category>
            <category>Security</category>
        </item>
        <item>
            <title><![CDATA[Microsoft Azure for SAP Solutions – August 2018 Update]]></title>
            <link>https://www.lheureuxlabs.com/2018/07/31/microsoft-azure-for-sap-solutions-august-2018-update</link>
            <guid>https://www.lheureuxlabs.com/2018/07/31/microsoft-azure-for-sap-solutions-august-2018-update</guid>
            <pubDate>Tue, 31 Jul 2018 02:00:28 GMT</pubDate>
            <description><![CDATA[As many of our customers are adopting Microsoft Azure to running their most critical workloads, SAP and SAP HANA are naturally at the center of many conversations. In this session, Cameron Gardiner, principal program manager in the SAP on Azure team, and myself cover the latest status update about ]]></description>
            <content:encoded><![CDATA[<p>As many of our customers are adopting Microsoft Azure to running their most critical workloads, SAP and SAP HANA are naturally at the center of many conversations.</p>
<p>In this session, <a href="https://blogs.msdn.microsoft.com/saponsqlserver/" target="_blank" rel="noopener noreferrer" class="">Cameron Gardiner</a>, principal program manager in the SAP on Azure team, and myself cover the latest status update about technologies available in Azure to run your SAP environments.</p>
<p>This session assumes that you have a prior knowledge of SAP on Azure and cover the following topics:&nbsp;</p>
<ul>
<li class="">Latest compute offerings available in APAC region</li>
<li class="">Latest announcements and innovation release</li>
<li class="">Certification status for HANA</li>
<li class="">Running HEC on Azure</li>
<li class="">Building SAP disaster recovery with Azure</li>
<li class="">Support and certifications for SAP on Azure Stack and Hyper-V</li>
</ul>
<p>The link to register to the online session:&nbsp;<a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-07Jul-31-SAPHANAonAzure-MCW0008140_01Registration-ForminBody.html" target="_blank" rel="noopener noreferrer" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY19-07Jul-31-SAPHANAonAzure-MCW0008140_01Registration-ForminBody.html</a></p>
<p>The video of the session:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/LSwLIu0YLFM" title="YouTube video" frameborder="0" allowfullscreen=""></iframe>
<p>The slides of the session:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21908864&amp;authkey=APPts8Nw9AIVNw8&amp;em=2&amp;wdAr=1.7777777777777776" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>Some additional links to document our session:</p>
<ul>
<li class="">Cameron’s Blog:&nbsp;<a href="https://blogs.msdn.microsoft.com/saponsqlserver/" target="_blank" rel="noopener noreferrer" class="">https://blogs.msdn.microsoft.com/saponsqlserver/</a></li>
<li class="">Azure Certification Status: <a href="http://aka.ms/sapcerts" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/sapcerts</a>&nbsp;
<ul>
<li class="">SAP IaaS Certified:&nbsp;<a href="https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/iaas.html#categories=Microsoft%20Azure" target="_blank" rel="noopener noreferrer" class="">https://www.sap.com/dmc/exp/2014-09-02-hana-hardware/enEN/iaas.html#categories=Microsoft%20Azure</a></li>
<li class="">SAP Note:&nbsp;<a href="https://launchpad.support.sap.com/#/notes/1928533" target="_blank" rel="noopener noreferrer" class="">https://launchpad.support.sap.com/#/notes/1928533</a>&nbsp;</li>
</ul>
</li>
<li class="">SAP on Azure Quick start templates (ARM templates):&nbsp;<a href="https://github.com/AzureCAT-GSI/SAP-on-Azure" target="_blank" rel="noopener noreferrer" class="">https://github.com/AzureCAT-GSI/SAP-on-Azure</a>&nbsp;</li>
<li class="">SAP on Azure SUSE on the marketplace:&nbsp;<a href="https://azuremarketplace.microsoft.com/en-us/marketplace/apps/SUSE.SLES-SAP" target="_blank" rel="noopener noreferrer" class="">https://azuremarketplace.microsoft.com/en-us/marketplace/apps/SUSE.SLES-SAP</a></li>
<li class="">SAP on Azure Deployment Guide for High Availability: <a href="http://aka.ms/sapha" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/sapha</a></li>
<li class="">Build a Disaster Recovery Plan for SAP on Azure: <a href="http://aka.ms/sapdr" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/sapdr</a></li>
<li class="">SQL Server 2017 Support for SAP: <a href="https://blogs.msdn.microsoft.com/saponsqlserver/2018/06/28/sap-support-for-sql-server-2017/" target="_blank" rel="noopener noreferrer" class="">https://blogs.msdn.microsoft.com/saponsqlserver/2018/06/28/sap-support-for-sql-server-2017/</a>&nbsp;</li>
<li class="">Customers Reference for SAP on Azure:&nbsp;<a href="http://customers.microsoft.com/en-us/search?sq=SAP%20on%20Azure&amp;ff=&amp;p=0&amp;so=story_publish_date%20desc" target="_blank" rel="noopener noreferrer" class="">http://customers.microsoft.com/en-us/search?sq=SAP%20on%20Azure&amp;ff=&amp;p=0&amp;so=story_publish_date%20desc</a>&nbsp;</li>
</ul>
<p>Feel free to reach us for any question!</p>
<p><a href="https://twitter.com/ArnaudLheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>Azure Backup</category>
            <category>Disaster Recovery Plan</category>
            <category>IaaS</category>
            <category>SAP</category>
        </item>
        <item>
            <title><![CDATA[Azure Infrastructure Fundamentals Webinars – part 2]]></title>
            <link>https://www.lheureuxlabs.com/2018/07/20/azure-infrastructure-fundamentals-webinars-part-2</link>
            <guid>https://www.lheureuxlabs.com/2018/07/20/azure-infrastructure-fundamentals-webinars-part-2</guid>
            <pubDate>Fri, 20 Jul 2018 10:09:16 GMT</pubDate>
            <description><![CDATA[In this article we continue to review our online sessions covering Azure Infrastructure fundamentals that went live couple of weeks ago. Please find below the links to the sessions, the slides, demos and step by steps guides to reproduce the demos! Session 3: Azure Backup and Disaster Recovery Azure]]></description>
            <content:encoded><![CDATA[<p>In this article we continue to review our online sessions covering Azure Infrastructure fundamentals that went live couple of weeks ago. Please find below the links to the sessions, the slides, demos and step by steps guides to reproduce the demos!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session-3-azure-backup-and-disaster-recovery">Session 3: Azure Backup and Disaster Recovery<a href="https://www.lheureuxlabs.com/2018/07/20/azure-infrastructure-fundamentals-webinars-part-2#session-3-azure-backup-and-disaster-recovery" class="hash-link" aria-label="Direct link to Session 3: Azure Backup and Disaster Recovery" title="Direct link to Session 3: Azure Backup and Disaster Recovery" translate="no">​</a></h2>
<p>Azure Site Recovery and Backup are two features that allow you to easily build Disaster Recovery and Backup plans. In this session, we will review the different options that are available to build a DRP that you can rely on.</p>
<p>Session on demand: <a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-28-AzureSiteRecoveryAzureBackup-MCW0004394_02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" title="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-28-AzureSiteRecoveryAzureBackup-MCW0004394_02OnDemandRegistration-ForminBody.html" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-28-AzureSiteRecoveryAzureBackup-MCW0004394_02OnDemandRegistration-ForminBody.html</a></p>
<p>Slides:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21908587&amp;authkey=AHEnzbd76UES7mc&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>Demos:<br>
1. Backup</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907301&amp;authkey=AOehHmRQKu0HmJA" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>2. Disaster recovery</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907302&amp;authkey=AEDTrNrogUP0Nys" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Demos references:</p>
<ul>
<li class="">Azure Backup:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/backup/backup-configure-vault" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/backup/backup-configure-vault</a></li>
<li class="">Azure VM Backup:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/backup/quick-backup-vm-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/backup/quick-backup-vm-portal</a>&nbsp;</li>
<li class="">Azure Backup Server:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/backup/backup-azure-microsoft-azure-backup" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/backup/backup-azure-microsoft-azure-backup</a></li>
<li class="">Azure Site Recovery:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/site-recovery/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/site-recovery/</a>&nbsp;</li>
<li class="">You can also refer to a previous article on the topic:
<ul>
<li class="">Getting started with – Azure Backup: <a href="https://arnaud-web.azurewebsites.net/2017/03/14/getting-started-with-azure-backup/" target="_blank" rel="noopener noreferrer" class="">https://arnaud-web.azurewebsites.net/2017/03/14/getting-started-with-azure-backup/</a>&nbsp;</li>
<li class="">Getting started with – Azure Site Recovery: <a href="https://arnaud-web.azurewebsites.net/2017/02/07/getting-started-with-azure-site-recovery/" target="_blank" rel="noopener noreferrer" class="">https://arnaud-web.azurewebsites.net/2017/02/07/getting-started-with-azure-site-recovery/</a></li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session-4-azure-compliance-and-security">Session 4: Azure Compliance and security<a href="https://www.lheureuxlabs.com/2018/07/20/azure-infrastructure-fundamentals-webinars-part-2#session-4-azure-compliance-and-security" class="hash-link" aria-label="Direct link to Session 4: Azure Compliance and security" title="Direct link to Session 4: Azure Compliance and security" translate="no">​</a></h2>
<p>The security and compliance session review the fundamentals of Azure security in both technical and non-technical terms. After a review of certification against the best in class policies and procedures, we will spend some time reviewing the technologies that customers can leverage to deploy solutions.</p>
<p>Session on demand: <a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureSecurityandCompliance-MCW0004574_01Registration-ForminBody.html" target="_blank" rel="noopener noreferrer" title="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureSecurityandCompliance-MCW0004574_01Registration-ForminBody.html" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureSecurityandCompliance-MCW0004574_01Registration-ForminBody.html</a></p>
<p>Slides:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21908584&amp;authkey=ANvDrSz3wL899aE&amp;em=2" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>Demos:<br>
1. Azure Security Center</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907297&amp;authkey=AD8wvA0k1vfTgzM" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>2. Azure Key Vault</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907298&amp;authkey=AAznYXFIxoq0n3s" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Demo references:</p>
<ul>
<li class="">Azure Marketplace: <a href="https://azuremarketplace.microsoft.com/en-us" target="_blank" rel="noopener noreferrer" class="">https://azuremarketplace.microsoft.com/en-us</a></li>
<li class="">Azure Security Center: <a href="https://docs.microsoft.com/en-us/azure/security-center/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/</a></li>
<li class="">Azure Key Vault:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/key-vault/quick-create-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/key-vault/quick-create-portal</a></li>
<li class="">Azure Disk Encryption: <a href="https://docs.microsoft.com/en-us/azure/security/azure-security-disk-encryption" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security/azure-security-disk-encryption</a>&nbsp;</li>
<li class="">Azure Storage Security guide:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-security-guide?toc=%2fazure%2fsecurity%2ftoc.json" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/storage/common/storage-security-guide?toc=%2fazure%2fsecurity%2ftoc.json</a></li>
<li class="">Azure Trust Center: <a href="https://www.microsoft.com/en-us/TrustCenter/Compliance/default.aspx" target="_blank" rel="noopener noreferrer" class="">https://www.microsoft.com/en-us/TrustCenter/Compliance/default.aspx</a></li>
<li class="">Azure Service Trust Portal: <a href="http://aka.ms/stp" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/stp</a></li>
<li class="">You can also refer to a previous article on the topic:
<ul>
<li class="">Azure RFP Toolbox: <a href="http://aka.ms/azurerfptoolbox" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/azurerfptoolbox</a>&nbsp;</li>
</ul>
</li>
</ul>
<p>That’s it for today, in the next post, more details on the other episodes of the serie!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>Azure Backup</category>
            <category>Azure Key Vault</category>
            <category>Azure Security Center</category>
            <category>Azure Site Recovery</category>
            <category>Backup</category>
            <category>Compliance</category>
            <category>DRP</category>
            <category>IaaS</category>
            <category>Security</category>
        </item>
        <item>
            <title><![CDATA[Azure Infrastructure Fundamentals Webinars – part 1]]></title>
            <link>https://www.lheureuxlabs.com/2018/07/06/azure-infrastructure-fundamentals-webinars-part-1</link>
            <guid>https://www.lheureuxlabs.com/2018/07/06/azure-infrastructure-fundamentals-webinars-part-1</guid>
            <pubDate>Fri, 06 Jul 2018 06:43:53 GMT</pubDate>
            <description><![CDATA[Earlier on this year, we had a set of online sessions covering Azure Infrastructure fundamentals. In addition to those sessions, as some of you asked, please find below the links to the sessions, the slides, demos and step by steps guides to reproduce the demos! Session 1: Azure Infrastructure Overv]]></description>
            <content:encoded><![CDATA[<p>Earlier on this year, we had a set of online sessions covering Azure Infrastructure fundamentals. In addition to those sessions, as some of you asked, please find below the links to the sessions, the slides, demos and step by steps guides to reproduce the demos!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session-1-azure-infrastructure-overview">Session 1: Azure Infrastructure Overview<a href="https://www.lheureuxlabs.com/2018/07/06/azure-infrastructure-fundamentals-webinars-part-1#session-1-azure-infrastructure-overview" class="hash-link" aria-label="Direct link to Session 1: Azure Infrastructure Overview" title="Direct link to Session 1: Azure Infrastructure Overview" translate="no">​</a></h2>
<p>We will get started with an overview of Azure datacenters and servers’ infrastructure, we will then study the best tools to get started with administering your first resources in Azure and then undercover the fundamental of grouping resources and delegating their access.</p>
<p>Session on demand:<br>
<a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureInfrastructureOverview-MCW0004573_02OnDemandRegistration-ForminBody.html" target="_blank" rel="noopener noreferrer" title="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureInfrastructureOverview-MCW0004573_02OnDemandRegistration-ForminBody.html" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-07-AzureInfrastructureOverview-MCW0004573_02OnDemandRegistration-ForminBody.html</a></p>
<p>Slides:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21908590&amp;authkey=AHkPMoforBALDrk&amp;em=2&amp;wdAr=1.7777777777777776" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>Demos:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907303&amp;authkey=AJ9Oz1-DEOkAVV8" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Demos references:</p>
<ul>
<li class="">Azure portal: <a href="https://portal.azure.com/" target="_blank" rel="noopener noreferrer" class="">https://portal.azure.com</a>&nbsp;</li>
<li class="">Azure Tagging:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-using-tags" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-using-tags</a></li>
<li class="">Azure Access Control and RBAC:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal</a>&nbsp;</li>
<li class="">Cloudyn:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/cost-management/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/cost-management/overview</a>&nbsp;</li>
<li class="">Azure Toolbox: <a href="http://aka.ms/azuretoolbox" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/azuretoolbox</a>&nbsp;</li>
<li class="">Azure CLI:&nbsp;<a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest</a></li>
<li class="">Azure PowerShell:&nbsp;<a href="https://docs.microsoft.com/en-us/powershell/azure/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/powershell/azure/overview</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="session-2-azure-virtual-machines">Session 2: Azure Virtual Machines<a href="https://www.lheureuxlabs.com/2018/07/06/azure-infrastructure-fundamentals-webinars-part-1#session-2-azure-virtual-machines" class="hash-link" aria-label="Direct link to Session 2: Azure Virtual Machines" title="Direct link to Session 2: Azure Virtual Machines" translate="no">​</a></h2>
<p>In this session, we continue our exploration of Azure services with virtual machines and everything related to them: storage, network, monitoring and the basics of security.</p>
<p>Session on demand:<br>
<a href="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-14-VirtualMachines-MCW0004387_02OnDemandRegistration.html" target="_blank" rel="noopener noreferrer" title="https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-14-VirtualMachines-MCW0004387_02OnDemandRegistration.html" class="">https://info.microsoft.com/AP-AzureINFRA-WBNR-FY18-03Mar-14-VirtualMachines-MCW0004387_02OnDemandRegistration.html</a></p>
<p>Slides:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21908588&amp;authkey=AJeKL8Lw-uy79Rs&amp;em=2&amp;wdAr=1.7777777777777776" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>Demos:<br>
1. VM Creation</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907299&amp;authkey=ADCXh-62qWfy2sw" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>2. VM Management</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21907300&amp;authkey=AJvW06Z7Zuuwqvg" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Demo references:</p>
<ul>
<li class="">Azure Marketplace:&nbsp;<a href="https://azuremarketplace.microsoft.com/en-us" target="_blank" rel="noopener noreferrer" class="">https://azuremarketplace.microsoft.com/en-us</a></li>
<li class="">Azure Security Center: &nbsp;<a href="https://docs.microsoft.com/en-us/azure/security-center/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/</a>&nbsp;</li>
<li class="">Azure Management:
<ul>
<li class="">Update Management:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/automation/automation-update-management" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/automation/automation-update-management</a></li>
<li class="">Inventory Management:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/automation/automation-vm-inventory" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/automation/automation-vm-inventory</a>&nbsp;</li>
<li class="">Change Tracking:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/automation/automation-change-tracking" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/automation/automation-change-tracking</a></li>
<li class="">Service Map:&nbsp;<a href="https://docs.microsoft.com/en-us/azure/monitoring/monitoring-service-map" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/monitoring/monitoring-service-map</a>&nbsp;</li>
</ul>
</li>
</ul>
<p>That’s it for today, in the next post, more details on the other episodes of the serie!</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>IaaS</category>
            <category>Infrastructure Overview</category>
            <category>Monitor</category>
            <category>Operations</category>
            <category>Security</category>
            <category>Service Map</category>
            <category>Update Management</category>
        </item>
        <item>
            <title><![CDATA[Containers on Azure, Azure App Service on Linux – My Slides from Open Day Jakarta]]></title>
            <link>https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta</link>
            <guid>https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta</guid>
            <pubDate>Fri, 17 Nov 2017 09:20:17 GMT</pubDate>
            <description><![CDATA[This week, I had the pleasure to present to Microsoft Open Day in Jakarta. I covered two topics: Introduction to Containers on Azure Building Highly Available Linux applications with Azure App Service You will find below my slides, notes to evaluate the technology and videos of the demos! Introducti]]></description>
            <content:encoded><![CDATA[<p>This week, I had the pleasure to present to Microsoft Open Day in Jakarta. I covered two topics:</p>
<ol>
<li class="">Introduction to Containers on Azure</li>
<li class="">Building Highly Available Linux applications with Azure App Service</li>
</ol>
<p>You will find below my slides, notes to evaluate the technology and videos of the demos!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduction-to-containers-on-azure">Introduction to Containers on Azure<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#introduction-to-containers-on-azure" class="hash-link" aria-label="Direct link to Introduction to Containers on Azure" title="Direct link to Introduction to Containers on Azure" translate="no">​</a></h3>
<p>The slides are here:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906692&amp;authkey=AFzkPNxuWcoR9dk&amp;em=2&amp;wdAr=1.7777777777777776" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>The videos of the demos are here:</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="docker-basics">Docker Basics<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#docker-basics" class="hash-link" aria-label="Direct link to Docker Basics" title="Direct link to Docker Basics" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906635&amp;authkey=AESf0ITMI59U5LI" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>What is a container by docker – <a href="https://www.docker.com/what-container" target="_blank" rel="noopener noreferrer" class="">https://www.docker.com/what-container</a></p>
<p>Docker Overview&nbsp; – <a href="https://docs.docker.com/engine/docker-overview/" target="_blank" rel="noopener noreferrer" class="">https://docs.docker.com/engine/docker-overview/</a></p>
<p>Try SQL Server 2017 in a Container – <a href="https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker</a></p>
<p>What’s new for Docker in WindowsServer 1709 – <a href="https://blog.docker.com/2017/09/docker-windows-server-1709/" target="_blank" rel="noopener noreferrer" class="">https://blog.docker.com/2017/09/docker-windows-server-1709/</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-container-registry">Azure Container Registry<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#azure-container-registry" class="hash-link" aria-label="Direct link to Azure Container Registry" title="Direct link to Azure Container Registry" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906631&amp;authkey=AGKpAZ5-QdoVIGA" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Your Docker registry in Azure – <a href="https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal</a></p>
<p><a href="https://docs.microsoft.com/en-us/azure/container-registry/container-registry-webhook" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/container-registry/container-registry-webhook</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-container-instances">Azure Container Instances<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#azure-container-instances" class="hash-link" aria-label="Direct link to Azure Container Instances" title="Direct link to Azure Container Instances" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906624&amp;authkey=AG1Ampueoq4aopE" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Run containers in Azure the easy way&nbsp; – <a href="https://azure.microsoft.com/en-us/services/container-instances/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/services/container-instances/</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-container-services-acs">Azure Container Services (ACS)<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#azure-container-services-acs" class="hash-link" aria-label="Direct link to Azure Container Services (ACS)" title="Direct link to Azure Container Services (ACS)" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906633&amp;authkey=AKN6samBEAcB13o" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Deploy a Docker Swarm cluster in Azure with ACS – <a href="https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-swarm-walkthrough" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-swarm-walkthrough</a></p>
<p>Deploy a DCOS cluster in Azure with ACS&nbsp; – <a href="https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-dcos-quickstart" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-dcos-quickstart</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="azure-container-services-aks">Azure Container Services (AKS)<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#azure-container-services-aks" class="hash-link" aria-label="Direct link to Azure Container Services (AKS)" title="Direct link to Azure Container Services (AKS)" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906669&amp;authkey=ANxr33UsECf5uGE" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Managed Kubernetes in Azure – <a href="https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough</a></p>
<p>To summarize the options to run containers on Azure:&nbsp;<a href="https://azure.microsoft.com/en-us/overview/containers/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/overview/containers/</a></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="building-highly-available-linux-applications-with-azure-app-service">Building Highly Available Linux applications with Azure App Service<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#building-highly-available-linux-applications-with-azure-app-service" class="hash-link" aria-label="Direct link to Building Highly Available Linux applications with Azure App Service" title="Direct link to Building Highly Available Linux applications with Azure App Service" translate="no">​</a></h3>
<p>The slides are here:</p>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906696&amp;authkey=AHXyOZQuD2s5sus&amp;em=2&amp;wdAr=1.7777777777777776" target="_blank" rel="noopener noreferrer" class="">▶ View the document on OneDrive</a></p>
<p>The videos of the demos are here:</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="wordpress-for-app-service-on-linux">WordPress for App Service on Linux<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#wordpress-for-app-service-on-linux" class="hash-link" aria-label="Direct link to WordPress for App Service on Linux" title="Direct link to WordPress for App Service on Linux" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906660&amp;authkey=APxDrRQL5ZizjoA" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Introduction to Azure App Service – <a href="https://docs.microsoft.com/en-sg/azure/app-service/containers/app-service-linux-intro" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/containers/app-service-linux-intro</a></p>
<p>AppService is also present on AzureStack – <a href="https://azure.microsoft.com/en-us/blog/general-availability-of-app-service-and-functions-on-azure-stack/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/blog/general-availability-of-app-service-and-functions-on-azure-stack/</a></p>
<p>Azure App Service on Linux FAQ – <a href="https://docs.microsoft.com/en-sg/azure/app-service/containers/app-service-linux-faq" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/containers/app-service-linux-faq</a></p>
<p>Create a Ruby on Azure using Azure App Service – <a href="https://docs.microsoft.com/en-sg/azure/app-service/containers/quickstart-ruby" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/containers/quickstart-ruby</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="app-service-on-linux-with-github-integration">App Service on Linux with GitHub integration<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#app-service-on-linux-with-github-integration" class="hash-link" aria-label="Direct link to App Service on Linux with GitHub integration" title="Direct link to App Service on Linux with GitHub integration" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906665&amp;authkey=AP7RjOGSafOI2tE" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Deployment guide for Azure App Service&nbsp; – <a href="https://docs.microsoft.com/en-sg/azure/app-service/containers/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/containers/</a></p>
<p>Configure webapps in Azure App Service – <a href="https://docs.microsoft.com/en-sg/azure/app-service/web-sites-configure?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/web-sites-configure?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json</a></p>
<p>Deploy your own Docker container for App Service on Linux – <a href="https://docs.microsoft.com/en-sg/azure/app-service/containers/quickstart-custom-docker-image" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/containers/quickstart-custom-docker-image</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="app-service-for-containers">App Service for Containers<a href="https://www.lheureuxlabs.com/2017/11/17/containers-on-azure-azure-app-service-on-linux-my-slides-from-open-day-jakarta#app-service-for-containers" class="hash-link" aria-label="Direct link to App Service for Containers" title="Direct link to App Service for Containers" translate="no">​</a></h4>
<p><a href="https://onedrive.live.com/embed?cid=ECE68AE52506946F&amp;resid=ECE68AE52506946F%21906651&amp;authkey=AKeNkQl-RebiTrU" target="_blank" rel="noopener noreferrer" class="">▶ View the video on OneDrive</a></p>
<p>Azure Web App for Containers:&nbsp;<a href="https://azure.microsoft.com/en-us/services/app-service/containers/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/services/app-service/containers/</a></p>
<p>Running your code on #Azure … which option to choose? – <a href="https://docs.microsoft.com/en-sg/azure/app-service/choose-web-site-cloud-service-vm?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-sg/azure/app-service/choose-web-site-cloud-service-vm?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json</a></p>
<p>See you soon in another Microsoft Open Day in APAC:&nbsp;<a href="https://open.microsoft.com/2017/10/08/msftopenday-2017/" target="_blank" rel="noopener noreferrer" class="">https://open.microsoft.com/2017/10/08/msftopenday-2017/</a>&nbsp;</p>
<p><a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">Arnaud</a></p>]]></content:encoded>
            <category>ACS</category>
            <category>AKS</category>
            <category>App Service</category>
            <category>Azure</category>
            <category>Azure Container Services</category>
            <category>Container</category>
            <category>Kubernetes</category>
            <category>Linux</category>
        </item>
        <item>
            <title><![CDATA[My Azure RFP Toolbox]]></title>
            <link>https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox</link>
            <guid>https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox</guid>
            <pubDate>Wed, 20 Sep 2017 02:47:03 GMT</pubDate>
            <description><![CDATA[&lt;Updated on 24th July 2018&gt; During the last years as an architect for Azure services, there is a set of questions and areas that always come-up, you will find here the reference materials I use to answer RFP or customer enquiries. This post assumes you already have some Azure expertise in the ]]></description>
            <content:encoded><![CDATA[<p><em>&lt;Updated on 24th July 2018&gt;</em></p>
<p>During the last years as an architect for Azure services, there is a set of questions and areas that always come-up, you will find here the reference materials I use to answer RFP or customer enquiries. This post assumes you already have some Azure expertise in the subjects covered, but are in search of good reference materials for documentation purposes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="networking-and-connectivity">Networking and connectivity<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#networking-and-connectivity" class="hash-link" aria-label="Direct link to Networking and connectivity" title="Direct link to Networking and connectivity" translate="no">​</a></h2>
<p>When you design a solution running in Azure, it will most of the time run on Virtual Networks, you can connect those to:</p>
<ul>
<li class="">Your datacenter via <a href="https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-about-vpngateways" target="_blank" rel="noopener noreferrer" class=""><strong>IPsec VPN</strong></a>: you use the internet to transport IPsec-encrypted packets. Since it’s the internet, there’s no SLA on the link availability, but the IPsec gateway is backed by a 99.95% SLA and the speed can go up to 1 Gbps.</li>
<li class="">Your datacenter via <a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-introduction" target="_blank" rel="noopener noreferrer" class=""><strong>ExpressRoute</strong></a>: it’s a private connection, SLA-backed by your service provider up to 99.95%. The speed can go up to 10 Gbps if necessary.<img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/media/best-practices-network-security/dmzazure.png" alt="" class="img_ev3q"></li>
<li class=""><strong>Internet</strong> via a <strong>Public IP</strong>: that public IP endpoint is highly available, load balanced if needed, protected by our <a href="https://docs.microsoft.com/en-us/azure/best-practices-network-security?toc=%2fazure%2fsecurity%2ftoc.json" target="_blank" rel="noopener noreferrer" class=""><strong>DoS protection service</strong></a>. Those operations are done by Azure but you can leverage <a href="https://azure.microsoft.com/en-in/solutions/network-appliances/" target="_blank" rel="noopener noreferrer" class=""><strong>Network Virtual Appliances</strong></a> from the marketplace in order to add additional features like layer-7 inspection. If you want to use WAF-as-a-Service, you can also leverage <strong><a href="https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-introduction" target="_blank" rel="noopener noreferrer" class="">Azure Application Gateway</a></strong>.<br>
<img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/media/best-practices-network-security/azuresecurityarchitecture.png" alt="" class="img_ev3q"></li>
</ul>
<p>ExpressRoute Locations –&nbsp;<a href="https://docs.microsoft.com/en-us/azure/expressroute/expressroute-locations" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/expressroute/expressroute-locations</a></p>
<p>Microsoft cloud services and network security – <a href="https://docs.microsoft.com/en-us/azure/best-practices-network-security" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/best-practices-network-security</a></p>
<p>Azure Network Security Best Practices – <a href="https://docs.microsoft.com/en-us/azure/security/azure-security-network-security-best-practices" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security/azure-security-network-security-best-practices</a></p>
<p>Reference architecture – Hybrid Networking –&nbsp;<a href="https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/hybrid-networking/" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/hybrid-networking/</a>&nbsp;</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="high-availability-disaster-recovery-and-sla">High availability, Disaster Recovery and SLA<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#high-availability-disaster-recovery-and-sla" class="hash-link" aria-label="Direct link to High availability, Disaster Recovery and SLA" title="Direct link to High availability, Disaster Recovery and SLA" translate="no">​</a></h2>
<p>When you build solutions on Azure, your choose the physical location of your data, which is replicated on 3 hard disk drives (based on <a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy" target="_blank" rel="noopener noreferrer" class="">Locally Redundant Storage</a>), it can be replicated to another region in order to offer additional redundancy in a location with hundreds miles from the previous (3 <a href="https://docs.microsoft.com/en-us/azure/storage/common/storage-redundancy" target="_blank" rel="noopener noreferrer" class="">additional copies of your data</a>).</p>
<p>High availability for virtual machines is achieved:</p>
<ul>
<li class=""><strong><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/regions-and-availability" target="_blank" rel="noopener noreferrer" class="">In-Region</a></strong>:
<ul>
<li class="">If you deploy an Azure VM on Premium storage, the VM automatically gets a <strong>99.9%</strong> uptime SLA!</li>
<li class="">You can achieve HA at <strong>99.95%</strong> uptime by placing multiples machines serving users inside an <strong><a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability" target="_blank" rel="noopener noreferrer" class="">availability set</a></strong> with a <strong><a href="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview" target="_blank" rel="noopener noreferrer" class="">load balancer</a></strong> in front.<img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/includes/media/virtual-machines-common-manage-availability/md-fd.png" alt="" class="img_ev3q"></li>
<li class="">You can achieve HA at <strong>99.99%</strong> uptime by placing multiples machines serving users inside an <a href="https://docs.microsoft.com/en-us/azure/availability-zones/az-overview" target="_blank" rel="noopener noreferrer" class="">availability zone</a> with a <a href="https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-standard-overview" target="_blank" rel="noopener noreferrer" class="">standard load balancer</a>&nbsp;in front.<img decoding="async" loading="lazy" alt="az-graphic-two" src="https://www.lheureuxlabs.com/assets/images/az-graphic-two-8c6dc38bba66c475bb5fe8163da7ea77.png" width="535" height="460" class="img_ev3q"></li>
</ul>
</li>
<li class=""><strong>Across-regions</strong>: by duplicating the first deployment in another region. You replicate the data using application-level replication or <strong><a href="https://docs.microsoft.com/en-us/azure/site-recovery/site-recovery-azure-to-azure" target="_blank" rel="noopener noreferrer" class="">Azure Site Recovery</a></strong>, then you load balance the solution using <strong><a href="https://docs.microsoft.com/en-us/azure/traffic-manager/traffic-manager-overview" target="_blank" rel="noopener noreferrer" class="">Traffic Manager</a></strong>. <img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/traffic-manager/media/traffic-manager-routing-methods/priority.png" alt="" class="img_ev3q"></li>
</ul>
<p><a href="https://azure.microsoft.com/en-us/support/legal/sla/" target="_blank" rel="noopener noreferrer" class="">SLA for the main Azure elements:</a></p>
<table border="2" cellspacing="0" cellpadding="2"><tbody><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/virtual-machines/" target="_blank" rel="noopener noreferrer" class="">VM</a></td><td valign="top">For all Virtual Machines that have two or more instances deployed in the same Availability Set, we guarantee you will have Virtual Machine Connectivity<br>to at least one instance at least 99.95% of the time.For any Single Instance Virtual Machine using premium storage for all Operating System Disks and Data Disks, we guarantee you will have Virtual<br>Machine Connectivity of at least 99.9%.</td></tr><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/storage/" target="_blank" rel="noopener noreferrer" class="">Storage</a></td><td valign="top">We guarantee that at least 99.9% (99% for Cool Access Tier) of the time, we will successfully process requests to read data from Locally Redundant Storage (LRS), Zone Redundant Storage (ZRS), and Geo Redundant Storage (GRS) Accounts.</td></tr><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/expressroute/" target="_blank" rel="noopener noreferrer" class="">ExpressRoute</a></td><td valign="top">We guarantee a minimum of 99.95% ExpressRoute Dedicated Circuit availability.</td></tr><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/vpn-gateway/" target="_blank" rel="noopener noreferrer" class="">IPsec Gateway</a></td><td valign="top">We guarantee 99.9% availability for each Basic Gateway for VPN or Basic Gateway for ExpressRoute.<p></p><p>We guarantee 99.95% availability for each Standard, High Performance, VpnGw1, VpnGw2, VpnGw3 Gateway for VPN.</p><p>We guarantee 99.95% availability for each Standard, High Performance, Ultra Performance Gateway for ExpressRoute.</p></td></tr><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/application-gateway/" target="_blank" rel="noopener noreferrer" class="">Application Gateway</a></td><td valign="top">We guarantee that each Application Gateway Cloud Service having two or more medium or larger instances will be available at least 99.95% of the time.</td></tr><tr><td valign="top"><a href="https://azure.microsoft.com/en-us/support/legal/sla/site-recovery/" target="_blank" rel="noopener noreferrer" class="">Azure Site Recovery</a></td><td valign="top">For each Protected Instance configured for On-Premises-to-On-Premises Failover, we guarantee at least 99.9% availability of the Site Recovery service.<p></p><p>For each Protected Instance configured for On-Premises-to-Azure planned and unplanned Failover, we guarantee a two-hour Recovery Time Objective</p></td></tr></tbody></table>
<p>Datacenter and Service Recovery: How Microsoft services recovers from a DC loss – <a href="https://gallery.technet.microsoft.com/Datacenter-and-Service-d64cf003" target="_blank" rel="noopener noreferrer" class="">https://gallery.technet.microsoft.com/Datacenter-and-Service-d64cf003</a></p>
<p>Availability checklist – <a href="https://docs.microsoft.com/en-us/azure/architecture/checklist/availability?toc=%2Fazure%2Fsecurity%2Ftoc.json" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/architecture/checklist/availability?toc=%2Fazure%2Fsecurity%2Ftoc.json" class="">https://docs.microsoft.com/en-us/azure/architecture/checklist/availability?toc=%2Fazure%2Fsecurity%2Ftoc.json</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="data-security-isolation-and-confidentiality">Data security, isolation and confidentiality<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#data-security-isolation-and-confidentiality" class="hash-link" aria-label="Direct link to Data security, isolation and confidentiality" title="Direct link to Data security, isolation and confidentiality" translate="no">​</a></h2>
<p>In a context of datacenter migration, usual questions are: how is my data secured, how is it isolated from other tenants and how can I protect my data in-transit, at-rest, and even in-processing.</p>
<p>You can get started with our RFI standard responses templates: <a href="http://aka.ms/azurerfi" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/azurerfi</a></p>
<p>A good reference is the getting started with Azure security paper: <a href="https://docs.microsoft.com/en-us/azure/security/azure-security-getting-started" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-security-getting-started" class="">https://docs.microsoft.com/en-us/azure/security/azure-security-getting-started</a></p>
<h4><img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/key-vault/media/key-vault-whatis/azurekeyvault_overview.png" alt="" class="img_ev3q"></h4>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="encryption-at-rest">Encryption at rest:<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#encryption-at-rest" class="hash-link" aria-label="Direct link to Encryption at rest:" title="Direct link to Encryption at rest:" translate="no">​</a></h4>
<p>Isolation in the Azure Public Cloud – <a href="https://docs.microsoft.com/en-us/azure/security/azure-isolation" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-isolation" class="">https://docs.microsoft.com/en-us/azure/security/azure-isolation</a></p>
<p>Azure Data Encryption-at-Rest – <a href="https://docs.microsoft.com/en-us/azure/security/azure-security-encryption-atrest" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-security-encryption-atrest" class="">https://docs.microsoft.com/en-us/azure/security/azure-security-encryption-atrest</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="encryption-in-transit">Encryption in transit:<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#encryption-in-transit" class="hash-link" aria-label="Direct link to Encryption in transit:" title="Direct link to Encryption in transit:" translate="no">​</a></h4>
<p>Azure encryption technologies: Protect personal data in transit with encryption – <a href="https://docs.microsoft.com/en-us/azure/security/protect-personal-data-in-transit-encryption" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/protect-personal-data-in-transit-encryption" class="">https://docs.microsoft.com/en-us/azure/security/protect-personal-data-in-transit-encryption</a></p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="encryption-in-processing">Encryption in processing:<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#encryption-in-processing" class="hash-link" aria-label="Direct link to Encryption in processing:" title="Direct link to Encryption in processing:" translate="no">​</a></h4>
<p>Azure confidential computing : <a href="https://azure.microsoft.com/en-us/blog/introducing-azure-confidential-computing/" target="_blank" rel="noopener noreferrer" title="https://azure.microsoft.com/en-us/blog/introducing-azure-confidential-computing/" class="">https://azure.microsoft.com/en-us/blog/introducing-azure-confidential-computing/</a></p>
<p>Data security is also about backup, wo you can use:</p>
<ul>
<li class="">Azure Backup:
<ul>
<li class=""><a href="https://docs.microsoft.com/en-us/azure/backup/backup-azure-vms-first-look-arm" target="_blank" rel="noopener noreferrer" class="">Backup VM on Azure using snapshot-based built-in technologies</a>&nbsp;</li>
<li class=""><a href="https://docs.microsoft.com/en-us/azure/backup/backup-try-azure-backup-in-10-mins" target="_blank" rel="noopener noreferrer" class="">Small agent to backup files and system states on Windows Clients and Servers</a>&nbsp;</li>
<li class=""><a href="https://docs.microsoft.com/en-us/azure/backup/backup-mabs-protection-matrix" target="_blank" rel="noopener noreferrer" class="">Azure Backup Server to backup Linux/Windows VM, Exchange, SQL, SharePoint and VSS-aware applications</a>&nbsp;</li>
</ul>
</li>
<li class="">Any third party backup solution and use <a href="https://azure.microsoft.com/en-us/blog/introducing-azure-cool-storage/" target="_blank" rel="noopener noreferrer" class="">Azure Cool Storage</a> or <a href="https://azure.microsoft.com/en-us/blog/announcing-the-public-preview-of-azure-archive-blob-storage-and-blob-level-tiering/" target="_blank" rel="noopener noreferrer" class="">Azure Archive Storage</a> to store the backups.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="datacenter-operations--compliance">Datacenter operations &amp; compliance<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#datacenter-operations--compliance" class="hash-link" aria-label="Direct link to Datacenter operations &amp; compliance" title="Direct link to Datacenter operations &amp; compliance" translate="no">​</a></h2>
<p>Azure will very likely exceed any possible best practices and compliance regulation level that you see in a customer-run datacenter. Azure does not usually allow customers to directly audit against best practices, however we are working to certify Azure against the most relevant certifications, in the world, regionally, and locally as well as the most strict industry standards.</p>
<p>All certifications information can be found in the Azure Trust Center – <a href="https://azure.microsoft.com/en-us/support/trust-center/" target="_blank" rel="noopener noreferrer" class="">https://azure.microsoft.com/en-us/support/trust-center/</a></p>
<p>If you need to download the certification audit reports or the certificate Service Trust Portal – <a href="http://aka.ms/stp" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/stp</a>&nbsp;</p>
<p>Overview of Microsoft Azure compliance – <a href="https://gallery.technet.microsoft.com/Overview-of-Azure-c1be3942" target="_blank" rel="noopener noreferrer" title="https://gallery.technet.microsoft.com/Overview-of-Azure-c1be3942" class="">https://gallery.technet.microsoft.com/Overview-of-Azure-c1be3942</a></p>
<p>How Microsoft Azure can help organizations become compliant with the EU GDPR – <a href="https://gallery.technet.microsoft.com/How-Azure-Can-Help-788a4979" target="_blank" rel="noopener noreferrer" title="https://gallery.technet.microsoft.com/How-Azure-Can-Help-788a4979" class="">https://gallery.technet.microsoft.com/How-Azure-Can-Help-788a4979</a></p>
<p>Azure Solutions Blueprint for PCI DSS-compliant environments – <a href="https://docs.microsoft.com/en-us/azure/architecture/compliance/pci-dss/" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/architecture/compliance/pci-dss/" class="">https://docs.microsoft.com/en-us/azure/architecture/compliance/pci-dss/</a></p>
<p>Microsoft Azure HIPAA/HITECH Act Implementation Guidance – <a href="https://gallery.technet.microsoft.com/Azure-HIPAAHITECH-Act-1d27efb0" target="_blank" rel="noopener noreferrer" title="https://gallery.technet.microsoft.com/Azure-HIPAAHITECH-Act-1d27efb0" class="">https://gallery.technet.microsoft.com/Azure-HIPAAHITECH-Act-1d27efb0</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="threat-protection-detection-and-incident-response">Threat protection, detection and incident response<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#threat-protection-detection-and-incident-response" class="hash-link" aria-label="Direct link to Threat protection, detection and incident response" title="Direct link to Threat protection, detection and incident response" translate="no">​</a></h2>
<p>How does Microsoft protect instances, how does Microsoft and I do incident response? Is there a DoS protection service include and IDS/IPS? Can I or a partner conduct penetration testing to a solution in Azure?</p>
<p>Azure Advanced Threat Detection – <a href="https://docs.microsoft.com/en-us/azure/security/azure-threat-detection" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-threat-detection" class="">https://docs.microsoft.com/en-us/azure/security/azure-threat-detection</a></p>
<p>Azure Logging and auditing – <a href="https://docs.microsoft.com/en-us/azure/security/azure-log-audit" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-log-audit" class="">https://docs.microsoft.com/en-us/azure/security/azure-log-audit</a></p>
<p>Security Incent Response in Azure – <a href="http://aka.ms/SecurityResponsepaper" target="_blank" rel="noopener noreferrer" class="">http://aka.ms/SecurityResponsepaper</a></p>
<p>Penetration testing of your solution –&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security/azure-security-pen-testing" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security/azure-security-pen-testing</a>&nbsp;</p>
<p>Integration of SIEM with Azure –&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security/security-azure-log-integration-overview" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security/security-azure-log-integration-overview</a>&nbsp;</p>
<p><img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/security-center/media/security-center-detection-capabilities/security-center-detection-capabilities-fig1.png" alt="" class="img_ev3q"></p>
<p>Azure Security Center is a great complement to all the security mechanisms present in Azure, and the good news is, there’s a free tier, so use it everywhere.</p>
<p>Azure Security Center Detection Capabilities –&nbsp;<a href="https://docs.microsoft.com/en-us/azure/security-center/security-center-detection-capabilities" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/security-center-detection-capabilities</a></p>
<p>Using Azure Security Center for an incident response – <a href="https://docs.microsoft.com/en-us/azure/security-center/security-center-incident-response" target="_blank" rel="noopener noreferrer" class="">https://docs.microsoft.com/en-us/azure/security-center/security-center-incident-response</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="operations-excellence">Operations Excellence<a href="https://www.lheureuxlabs.com/2017/09/20/my-azure-rfp-toolbox#operations-excellence" class="hash-link" aria-label="Direct link to Operations Excellence" title="Direct link to Operations Excellence" translate="no">​</a></h2>
<p>How do I operate, manage, an environment in Azure, how do I manage separation of roles and duties, how is done RBAC?</p>
<p>Customers can integrate their on-premises Active Directory with Azure Active Directory and then manage, delegate access using RBAC. When customer use Azure Active Directory, they can use all feature of Azure Active Directory Premium and also enable Just in time admin, which will elevat</p>
<p><img decoding="async" loading="lazy" src="https://docs.microsoft.com/en-us/azure/security/media/azure-isolation/azure-isolation-fig3.png" alt="" class="img_ev3q"></p>
<p>Introduction to operational security in Azure – <a href="https://docs.microsoft.com/en-us/azure/security/azure-operational-security" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/azure-operational-security" class="">https://docs.microsoft.com/en-us/azure/security/azure-operational-security</a></p>
<p>Azure Security Management and Monitoring Overview – <a href="https://docs.microsoft.com/en-us/azure/security/security-management-and-monitoring-overview" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/security-management-and-monitoring-overview" class="">https://docs.microsoft.com/en-us/azure/security/security-management-and-monitoring-overview</a></p>
<p>Governance in Azure – <a href="https://docs.microsoft.com/en-us/azure/security/governance-in-azure" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/governance-in-azure" class="">https://docs.microsoft.com/en-us/azure/security/governance-in-azure</a></p>
<p>Identity management – <a href="https://docs.microsoft.com/en-us/azure/security/security-identity-management-overview" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/security-identity-management-overview" class="">https://docs.microsoft.com/en-us/azure/security/security-identity-management-overview</a></p>
<p>Let’s conclude with the Azure Security best practices and patterns collection: <a href="https://docs.microsoft.com/en-us/azure/security/security-best-practices-and-patterns" target="_blank" rel="noopener noreferrer" title="https://docs.microsoft.com/en-us/azure/security/security-best-practices-and-patterns" class="">https://docs.microsoft.com/en-us/azure/security/security-best-practices-and-patterns</a></p>
<p>Our VM sizes reference: <a href="https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/" target="_blank" rel="noopener noreferrer" title="https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/" class="">https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/</a></p>
<p>You might also need the Visio template in order to produce the architecture diagrams:&nbsp;<a href="http://download.microsoft.com/download/1/5/6/1569703C-0A82-4A9C-8334-F13D0DF2F472/RAs.vsdx" target="_blank" rel="noopener noreferrer" class="">http://download.microsoft.com/download/1/5/6/1569703C-0A82-4A9C-8334-F13D0DF2F472/RAs.vsdx</a>&nbsp;</p>
<p>Have fun answering RFP, don’t hesitate to suggest your additional items in the comments section!</p>
<p>Stay updated on Twitter: <a href="https://twitter.com/arnaudlheureux" target="_blank" rel="noopener noreferrer" class="">https://twitter.com/arnaudlheureux</a></p>]]></content:encoded>
            <category>Azure</category>
            <category>Compliance</category>
            <category>IaaS</category>
            <category>Networking</category>
            <category>RFP</category>
            <category>Security</category>
        </item>
    </channel>
</rss>