Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

D:\Workspaces\MS\MVP\MVP_FullColor_ForScreen.png

Slide 3

Slide 3 text

Slide Download https://www.4tecture.ch/events/azurebootcamp2024

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

▪ ▪ ▪ ▪ ▪

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

▪ ▪ ▪ ▪

Slide 14

Slide 14 text

Multi-Stage Yaml Pipeline Stage Job Task Task Job Task Task Stage Job Task Task Stage Job Task Task Stage Job Task Task Job Task Task Job Task Task

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Azure Pipelines Azure Artifacts Service Connection Environments Hosted / private Agent Container Jobs Pipeline Secrets Azure KeyVault Azure Repo App Code IaC Azure Resources Version / Branch Compile / Package Deploy Tasks Stages Variables / Secrets Pipeline Infrastructure Execution on target Approvals Checks Deployment Strategy Templates Tests / Test-Results

Slide 17

Slide 17 text

Platform CD Service CD Base Infrastructure Template Resource Template Resource Template Dev/Test Prod Service CI Build Stage PR Stage Testing PreProd Prod Compile Service DB Schema Compile System Tests Infrastructure Artifacts Pipeline Artifacts Task / Job Templates Task / Job Templates Resource Groups, vNets, VMs, Azure SQL, CosmosDB, … App Deployment, DB instance, DB Schema, Managed Identities, Storage, … Deplyoment Verification

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 23

Slide 23 text

Base Infrastructure CD Service CD Base Infrastructure Template Resource Template Resource Template Dev/Test Prod Service CI Build Stage PR Stage Testing PreProd Prod Compile Service DB Schema Compile System Tests Infrastructure Artifacts Pipeline Artifacts Task / Job Templates Task / Job Templates Resource Groups, vNets, VMs, Azure SQL, CosmosDB, … App Deployment, DB instance, DB Schema, Managed Identities, Storage, … Deplyoment Verification Secret Provider [Secret Variables, Variable Groups, KeyVault, Managed Identiy] Secret Provider [Secret Variables, Variable Groups, KeyVault, Managed Identiy]

Slide 24

Slide 24 text

Azure DevOps Variable Groups Pipeline Definition YAML File Pipeline Settings Secret Variable Service Connection Task Task Pipelines Agent Runtime Logging Secret Variable Key Vault Link Azure Key Vault Managed Identities Application AppSettings KeyVault Client Get Token by Managed Identity

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

▪ ▪ ▪ ▪ ▪

Slide 38

Slide 38 text

▪ ▪ ▪ ▪ Source: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops

Slide 39

Slide 39 text

▪ ▪ ▪

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

▪ ▪ ▪ ▪

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

▪ ▪ ▪

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

▪ ▪ ▪ ▪

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

▪ ▪ ▪ ▪

Slide 66

Slide 66 text

▪ ▪ ▪

Slide 67

Slide 67 text

▪ ▪ ▪

Slide 68

Slide 68 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

No content

Slide 73

Slide 73 text

https://dev.azure.com/4tecture-demo/_apis/public/distributedtask/webhooks/prupdated?api-version=6.0-preview

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

Method: POST URI: https://dev.azure.com/4tecture-demo/_apis/public/distributedtask/webhooks/prupdated?api-version=6.0-preview HTTP Version: 1.1 Headers: { Content-Type: application/json; charset=utf-8 } Content: { "subscriptionId": "1de80ac8-b9a7-42d0-a2fe-5441c2b7ffc2", "notificationId": 14, "id": "af07be1b-f3ad-44c8-a7f1-c4835f2df06b", "eventType": "git.pullrequest.updated", "publisherId": "tfs", "message": { "text": "Jamal Hartnett marked the pull request as completed", "html": "Jamal Hartnett marked the pull request as completed", "markdown": "Jamal Hartnett marked the pull request as completed" }, "detailedMessage": { "text": "Jamal Hartnett marked the pull request as completed\r\n\r\n- Merge status: Succeeded\r\n- Merge commit: eef717(https://fabrikam.visualstudio.com/DefaultCollection/_apis/git/repositories/4bc14d40-c903-45e2-872e-0462c7748079/commi "html": "Jamal Hartnett marked the pull request as completed\r\n
    \r\n
  • Merge status: Succeeded
  • \r\n
  • Merge commit: eef717
  • \r\n
", "markdown": "Jamal Hartnett marked the pull request as completed\r\n\r\n+ Merge status: Succeeded\r\n+ Merge commit: [eef717](https://fabrikam.visualstudio.com/DefaultCollection/_apis/git/repositories/4bc14d40-c903-45e2-872e-0462c7748079 }, "resource": { "repository": { "id": "4bc14d40-c903-45e2-872e-0462c7748079", "name": "Fabrikam", "url": "https://fabrikam.visualstudio.com/DefaultCollection/_apis/git/repositories/4bc14d40-c903-45e2-872e-0462c7748079", "project": { "id": "6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c", "name": "Fabrikam", "url": "https://fabrikam.visualstudio.com/DefaultCollection/_apis/projects/6ce954b1-ce1f-45d1-b94d-e6bf2464ba2c", "state": "wellFormed", "visibility": "unchanged", "lastUpdateTime": "0001-01-01T00:00:00" }, "defaultBranch": "refs/heads/master", "remoteUrl": "https://fabrikam.visualstudio.com/DefaultCollection/_git/Fabrikam" }, "pullRequestId": 1, "status": "completed", "createdBy": { "displayName": "Jamal Hartnett", "url": "https://fabrikam.vssps.visualstudio.com/_apis/Identities/54d125f7-69f7-4191-904f-c5b96b6261c8", "id": "54d125f7-69f7-4191-904f-c5b96b6261c8", "uniqueName": "fabrikamfiber4@hotmail.com", "imageUrl": "https://fabrikam.visualstudio.com/DefaultCollection/_api/_common/identityImage?id=54d125f7-69f7-4191-904f-c5b96b6261c8" }, "creationDate": "2014-06-17T16:55:46.589889Z", "closedDate": "2014-06-30T18:59:12.3660573Z", "title": "my first pull request", "description": " - test2\r\n", "sourceRefName": "refs/heads/mytopic",

Slide 76

Slide 76 text

Incoming WebHook as resource with trigger Additional conditions for dynamic payload evaluation

Slide 77

Slide 77 text

Calculate PR specific variables Delete deployment Delete database Delete Identities

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

▪ ▪ ▪

Slide 80

Slide 80 text

▪ ▪ ▪ Pipeline Agent Docker Container Pipeline Job

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 text

▪ ▪ ▪

Slide 85

Slide 85 text

Pipeline Agent Docker Network Container Pipeline Job Build Container Publish Container Container Job Container API App Container SQL Server Deploy DB Run Test Docker Registry

Slide 86

Slide 86 text

No content

Slide 87

Slide 87 text

Container Resources

Slide 88

Slide 88 text

Matrix → run test in different environments in parallel Dynamic service container selection based on matrix variable

Slide 89

Slide 89 text

DB schema deployment Run integration / system tests

Slide 90

Slide 90 text

Docker network container alias Docker network container alias

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

▪ ▪

Slide 93

Slide 93 text

No content

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

No content

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

No content

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

No content

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

No content