Skip to content

Instantly share code, notes, and snippets.

@julie-ng
Last active December 14, 2021 10:00
Show Gist options
  • Save julie-ng/d2136d737f788963650c503852c4a1fe to your computer and use it in GitHub Desktop.
Save julie-ng/d2136d737f788963650c503852c4a1fe to your computer and use it in GitHub Desktop.
FTA Live - DevOps Series (November 2021)

FTA Live - DevOps Governance

  • Date: 9 November 2021
  • Delivery Engineers: Julie Ng, Raul Alarcon, Felip Miguel Puig

This handout was prepared in advance and generic. Actual session content may differ based on discussion. Please refer to your own personal notes.


Azure Architecture Center

Azure Architect Center - E2E Governance

Cloud Adoption Framework

Azure DevOps Docs

Azure DevOps Organizations

Azure DevOps Projects

Azure DevOps Repositories

Azure DevOps Pipelines

FTA Live - CI/CD for Applications

  • Date: 10 November 2021
  • Delivery Engineers: Julie Ng, Raul Alarcon, Felip Miguel Puig

This handout was prepared in advance and generic. Actual session content may differ based on discussion. Please refer to your own personal notes.


Learn DevOps on MS Learn Platform

DevOps Workflow

DevSecOps

Git

Git Branching

Git Workflows

Azure Pipelines

Concepts, Classic vs YAML

Anatomy of DevOps Pipelines

Example Pipelines

Versioning Releases

Publishing Packages

FTA Live - CI/CD for Infrastructure

  • Date: 11 November 2021
  • Delivery Engineers: Julie Ng, Raul Alarcon, Felip Miguel Puig

This handout was prepared in advance and generic. Actual session content may differ based on discussion. Please refer to your own personal notes.


Getting Started with Infrastructure as Code (IaC)

Azure ARM

Azure Bicep

Infrastructure as Code (IaC) Comparison

Using comparison table below, we'll explain a few important IaC Concepts

  • Syntax (Json vs DSL)
  • Deployment Preview, e.g. Config Drift Check
    • State Files
  • Rollback and Clean Up
Feature ARM Terraform Pulumi
Language JSON + Bicep HCL/DSL Code Native, e.g. JavaScript, Python
Languages (in preview) Bicep DSL CDK for Terraform, Python and TypeScript Support -
Azure Integrations ARM, AAD via Tenant Scope ARM, AAD, ADO ARM, AAD, ADO
Clouds Azure-only Agnostic + on-prem Agnostic + on-prem
Preview Changes az deployment … what-if terraform plan pulumi preview
Rollback Changes Rollback Revert code & Re-deploy Revert code & Re-deploy
Infrastructure Clean Up Delete Resource Group terraform destroy pulumi destroy
Deployment History Deployment History SCM + Auditing* SCM + Auditing*
Code Re-Use Hosted JSON (ARM) + Private Registry** (Bicep) Modules + Registry* Code-Native Packages, e.g. npm or pip
State Files No State File Plain-text Encrypted

* premium feature
** preview feature as of 10 Nov 2021

Abbreviations

  • ARM = Azure Resource Manager
  • AAD = Azure Active Directory
  • ADO = Azure DevOps
  • DSL = Domain Specific Language
  • HCL = HashiCorp Language
  • SCM = Source Code Management

Security Considerations for Automating Infrastructure

Use Custom Roles

Example custom role from Azure Architecture Center: End-to-end governance in Azure when using CI/CD

{
  "Name": "Headless Owner",    
  "Description": "Can manage infrastructure.",
  "actions": [
    "*"
  ],
  "notActions": [
    "Microsoft.Authorization/*/Delete"
  ],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

Pipeline Walkthroughs

Governance on Azure Demo (Terraform)

Please note both code projects are based on Secure AKS Baseline Reference Architecture and complementary.

Resources

Additional resources to bookmark

@julie-ng
Copy link
Author

This is the public slide deck which has some of the diagrams in the webinars
https://speakerdeck.com/jng/apps-vs-infra-where-are-my-pipelines-devops-dot-js-conference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment