SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Confidential
Azure DevOps
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
DEVOPS IS…
THE UNION OF
PEOPLE, PROCESS,
AND PRODUCTS TO
ENABLE…
CONTINUOUS
DELIVERY OF
VALUE TO OUR END
USERS.
Confidential
1. Live in production
2. Collecting telemetry…
3. …that examines the
hypothesis which motivated
the deployment.
Perfect Definition of Done…
Confidential
We believe {customer segment} wants {product/feature}
because {value proposition}
To prove or disprove the above, the team will conduct the
following experiment(s): …
The above experiment(s) proved or disproved the hypothesis by
impacting the following metric(s): …
Confidential
Azure Boards
Overview of VSTS functionalities
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Dashboards and Wiki
• Summary – Wiki homepage, builds,
releases, commits, pull requests
• Dashboards – for different purposes:
Status of work, Bug tracking, Testing,
Deployments etc. A lot of widgets
available
• Wiki – Use to guide your team on
development practices, way-of-work
etc. or enrich your work item data
with detailed functional specifications
(wiki pages can be linked to work
items, copy paste images)
Confidential
Azure Boards
• Work Items – Place to find assigned to, followed, mentioned, my activity,
recently updated, completed or created work items
• Boards – KanBan board. Work items shown here depends on team settings
(iterations and areas). Can be customized and each team has their own view
to data.
• Backlogs – Multiple levels and more can be added if needed. Use to
prioritize and schedule your work (sprint planning)
• Sprints – Has sprint Backlog for sprint planning and Task board for daily
standups.
• Queries – Has shared and private queries to search and list work item data.
Results can be shown also in dashboards.
Confidential
Azure DevOps Backlog management – Excel
integration
Confidential
DEMO
Azure Dashboards, Wiki, Boards
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Azure Repos
Private and Public Git repositories
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Azure Repos
• Files – Contents and history of
source code files.
• Commits – Who did what, when and
why? Code commenting.
• Branches – Master branch, Release
and Feature branches
• Tags – Official versions that went
production
• Pull Requests – Ensure quality of the
code changes and communicate
changes between team members
• Branch policies – Enforces Pull
Requests and other code quality
practices
Confidential
DEMO
Azure Repos
Pull Requests, Code Reviews, Branches, Branch policies
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Azure Pipelines and ARM
Templates
Infrastructure as code
Continuous Integration
Continuous Delivery
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
RBAC standard roles and scope
Subscription
Resource Groups
Resources
Owner
Can perform all management operations
for a resource and its child resources
including access management and
granting access to others.
Contributor
Can perform all management operations
for a resource including create and delete
resources. A contributor cannot grant
access to other.
Reader
Has read-only access to a resource and its
child resources. A reader cannot read
secrets.
Confidential
Azure Resource Manager Template
A JavaScript Object Notation (JSON)
file that defines:
• one or more resources to deploy
to a resource group
• dependencies between the
deployed resources
The template can be used to deploy
the resources consistently and
repeatedly
Confidential
Azure Resource Management templates
Resource Group
Azure
Repos
Confidential
ARM TEMPLATE
structure
{
"$schema": <uri>,
"contentVersion: "1.0",
"parameters": { },
"variables": { },
"functions": { },
"resources": [ ],
"outputs": { }
}
contentVersion: can be used to make sure that the
right template is being used
parameters: are provided by caller when ARM
deployment is executed
variables: used as JSON fragments in the template
functions: user-defined functions that are available
within the template
resources: Azure service to be deployed…
outputs: values that are returned after deployment
to caller
Confidential
Resources section
structure
"resources": [
{
"apiVersion": "",
"name": "[variables('webSiteName')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"properties": { … }
"tags": {
"displayName": “MyApp Consumption Plan"
},
}
],
type: resource-provider/resource-type
name: unique in resource group sometimes also
globally
location: Azure data center region, usually same as
resource group’s
tags: shown in Azure Portal
Confidential
Tooling arm development
Visual Studio with Azure
development workload installed
• Create ARM templates
• Validate ARM templates
• Deploy ARM templates
• VSTS and Git support
Confidential
QA and Production
Azure DevOps blueprint
Development
Azure Active
Directory
Authentication
Resource group
Azure SQL Database
logical server
database database
App Service Plan
App Service app
Azure Active
Directory
Authentication
Resource group
Azure SQL Database
logical server
database database
App Service Plan
App Service app
Azure Active
Directory
Authentication
Resource group
Azure SQL Database
logical server
database database
App Service Plan
App Service app
QA resource group
• Developers have read role
• Deployments only with Azure pipelines
• Infrastructure with ARM template(s)
Production resource group
• Support has contributor role
• Developers may have read role
• Deployments only with Azure pipelines
• Infrastructure with ARM template(s)
DEV and TMP resource groups
• Developers have contributor role
• Deployments with Azure pipelines (or with
Visual Studio to troubleshoot)
• ARM templates stored to Azure repos (Git)
• Minimal permissions with Azure AD app based service principal
• Role based access control (RBAC) applied to specific resource groups
• Deployments via Azure Pipelines ARM Service Connections
Confidential
DEMO
1. Luodaan tmp, dev, qa ja prod resurssit
2. Luodaan service principalit ja luvitetaan ne contributor rooliin
3. Luoaan Azure DevOps ARM service connectionit
Tehdään tämä kaikki skriptaten…
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
CI/CD - Continuous integration
cspkg
DEV
TFVC
Publish deployment artifacts for release
pipeline only if CI build is passed!
Confidential
CI/CD - Continuous Delivery
cspkg
TFVC
DEV: Deploy as often as possible (every commit)
• Track smoke testing with post deployment approvals
• Automate functional (UI) testing
TEST: Run automated performance and load tests
• Execute and track manual acceptance testing
PROD: Acceptance testing passed
• Use predeployment approvals
• Consider to feature toggling and use of A/B testing
• Use Application monitoring!
UI
80% 20%
Confidential
DEMO
Azure Resource Management templates
Azure Pipelines
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
©2018 Zure Oy | Confidential | www.zure.com
Deployment slots… S1+
• Use deployment slots to route traffic
to different url than production
• Slot name is suffix to CNAME part of
the website url:
• app.domain.fi → app-slotname.domain.fi
• production site can be swapped with any
of slots in matter of few seconds
• Traffic manager is used to configure
how much of the traffic goes to which
slot – other than production
©2018 Zure Oy | Confidential | www.zure.com
DEMO
A/B testing with deployment slots
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
©2018 Zure Oy | Confidential | www.zure.com
Azure Monitoring
Application insights
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Azure DevOps a.k.a VSTS
Commit and
push local
branch to
Azure Repos
(Git)
Edit
code Continuous
Integration
Continuous
Deployment
Azure
App
Service
Azure
SQL
App
Service
Azure
SQL
App
Service
Azure
SQL
Application Insights
Create a Pull
Request for
peer review
Merge to
master
Azure Pipelines – Monitoring
Confidential
What is application insights?
Application Performance Management
service for monitoring live applications.
Detects automatically performance
anomalies.
Provides analytics tools to diagnose
issues and understand app usage.
How does it work?
Requires instrumentation package in
monitored application and resource in
Azure.
The instrumentation monitors app and
sends telemetry data to AI.
Tracking calls are non-blocking, batched
and sent in a separate thread.
©2018 Zure Oy | Confidential | www.zure.com
Track issues with
Azure DevOps
• Connect Application Insights to
Azure DevOps
• User in Azure Portal needs to
have also access to Azure
DevOps – authorized with
OAuth
• Create bugs from exception
details in Application Insights
©2018 Zure Oy | Confidential | www.zure.com
AppInsights in
Azure DevOps
Free extension by Microsoft
• Dashboard can be set to auto
refresh contents – doesn’t
support live monitoring (yet)
• Provides dashboard AI widgets
with plenty of different options
for metrics.
©2018 Zure Oy | Confidential | www.zure.com
AppInsights in Azure Pipelines
Free extension by Microsoft
• Provides a new release
task to add annotations on
Application Insights
monitoring data
• Use release annotations
to track point of time
when deployment to
production was released
©2018 Zure Oy | Confidential | www.zure.com
Appinsights Azure
DevOps
configuration
• AppInsights application ID
and API Access key to
identify which app insights
data you want to access.
• API Access key needs to be
generated – remember to
store the key securely!
Confidential
Azure Security
Azure Key Vaults
Okko Oulasvirta, Azure DevOps dude
@okkooulasvirta
Confidential
Azure Key Vault
Secret Store as a service
- Store and manage SECRETs.
- Isolate cryptographic keys.
Azure Resource Provider
Anchored to Azure AD
- Authentication requires Azure AD token
- Permissions expressed in terms of Azure AD identities
Integrated with other Azure services / SDKs
- Allows automated flows of secrets from source to destination.
Subscription
Resource GroupResource GroupResource Group
Key VaultVMVMVM
Storage accountStorage accountStorage account Key VaultKey Vault...
Secret KeySecretSecret KeyKey
Key VersionSecret VersionSecret VersionSecret Version Key VersionKey Version
SubscriptionSubscription
Confidential
Available worldwide, isolated by geo
You choose the region when creating your key vault.
Secrets and keys in that key vault are stored in that region, and backed up in second region within same geo.
6 total copies ➔ you get very high durability.
Your read/write requests are affinitized to the primary region. But service fails over automatically within
region, or to secondary region ➔ you get high availability.
Geo Regions
US West, East, East 2, Central, North Central, South Central
Europe North, West
Asia East, Southeast
Japan East, West
Australia East, Southeast
Brazil South
USGov Iowa, Virginia
China North, East
Confidential
Best practices
1. Inventory your secrets.
2. Store them in stores designed for
secrets.
3. Tie access to your directory.
4. Minimize permissions, review
permissions periodically.
Storage account keys
Certificates
Encryption keys
Passwords
Secret Custodians
(only a handful)
App developers
App5 - Containers
App2 - Web App
App4 - Cloud Service
App3 - Service Fab
App1 - VMs
Confidential
Best practices
1. Inventory your secrets.
2. Store them in stores designed for
secrets.
3. Tie access to your directory.
4. Minimize permissions, review
permissions periodically.
Secret Custodians
App developers
Storage account keys
Certificates
Encryption keys
Passwords
Storage account keys
Certificates
Encryption keys
Passwords
App5 - Containers
App2 - Web App
App4 - Cloud Service
App3 - Service Fab
App1 - VMs
Storage account keys
Certificates
Encryption keys
Passwords
Storage account keys
Certificates
Encryption keys
Passwords
Storage account keys
Certificates
Encryption keys
Passwords
Confidential
Best practices
Storage account keys
Certificates
Encryption keys
Passwords
App developers
Secret Custodians
Security Analysts &
Auditors
1. Inventory your secrets.
2. Store them in stores designed for
secrets.
3. Tie access to your directory.
4. Minimize permissions, review
permissions periodically.
5. Log access, review logs.
6. Rotate secrets periodically.
App5 - Containers
App2 - Web App
App4 - Cloud Service
App3 - Service Fab
App1 - VMs
Confidential
Best practices
Storage account keys
Certificates
Encryption keys
Passwords
App developers
Secret Custodians
Security Analysts &
Auditors
1. Inventory your secrets.
2. Store them in stores designed for
secrets.
3. Tie access to your directory.
4. Minimize permissions, review
permissions periodically.
5. Log access, review logs.
6. Rotate secrets periodically.
7. Automate → Azure DevOps App5 - Containers
App2 - Web App
App4 - Cloud Service
App3 - Service Fab
App1 - VMs
©2018 Zure Oy | Confidential | www.zure.com
Developer builds application (DEV KV)
AppKey Vault
1. Create Key Vault
2. Authorize app, users
3. Create/import keys/secrets
4. Deploy app, configured with
Key Vault URI of key/secret
5. Use key/secret
dev@aad
©2018 Zure Oy | Confidential | www.zure.com
App moves into test (QA KV)
AppKey Vault
5. Use key/secret
1. Create Key Vault
2. Authorize app, users
3. Create/import keys/secrets
4. Deploy app, configured with
URI of key/secret
dev@aadciso@aad
©2018 Zure Oy | Confidential | www.zure.com
App in production (PROD KV)
AppKey Vault
5. Use key/secret
1. Create Key Vault
2. Authorize app, users
3. Create/import keys/secrets
6. Manage keys/secrets
7. Monitor logs 4. Deploy app, configured with
URI of key/secret
dev@aadciso@aad
No change in
app code!
©2018 Zure Oy | Confidential | www.zure.com 45
Azure Pipelines
Variable Groups and
Azure Key Vault
Use a variable group to store values
that you want to make available across
multiple build and release pipelines.
• Variable groups are defined and
managed in the Library tab of the
Pipelines hub.
• Link secrets from an Azure key vault
as variables
• Requires Azure service connection
with Get and List management
permissions on the vault for secrets
DevOpsVariables
DevOps KeyVault secrets
zure-shared-we-prod-kv
DevOpsVariables
©2018 Zure Oy | Confidential | www.zure.com 46
Secrets in Azure Pipelines (CI/CD)
• Only the secret names are mapped to the variable group the latest version
of the value of each secret is fetched during the build or release
• Any change in the value of a existing secret is available automatically
available for linked Azure pipelines.
• Azure Key Vault supports storing and managing cryptographic keys and
secrets in Azure. Currently, Azure Pipelines variable group integration
supports mapping only Key Vault secrets from the Azure key vault.
Cryptographic keys and certificates are not yet supported → Azure
pipelines has secure files functionality for this
©2018 Zure Oy | Confidential | www.zure.com
DEMO
47
Create Key Vault using AZ CLI
Connect .NET Core web app with Key Vault
https://docs.microsoft.com/en-us/azure/key-vault/quick-create-net
See demo of Managed Service Identity usage with KeyVault
https://azure.microsoft.com/en-us/resources/samples/app-service-msi-keyvault-dotnet
Zure Azure PaaS Zero to Hero - DevOps training day

Contenu connexe

Tendances

2019 04 Containers - The secret to shipping cloud workloads
2019 04 Containers - The secret to shipping cloud workloads 2019 04 Containers - The secret to shipping cloud workloads
2019 04 Containers - The secret to shipping cloud workloads Adam Stephensen
 
V mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitV mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitsolarisyougood
 
AWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAmazon Web Services
 
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on Azure
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on AzureVoxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on Azure
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on AzureVoxxed Days Thessaloniki
 
An Introduction to Enterprise Design Patterns
An Introduction to Enterprise Design PatternsAn Introduction to Enterprise Design Patterns
An Introduction to Enterprise Design PatternsAdam Stephensen
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codesriram_rajan
 
How to build a cloud adapter
How to build a cloud adapterHow to build a cloud adapter
How to build a cloud adapterMaarten Smeets
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for DevelopersSarah Dutkiewicz
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopManuel Garcia
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoAmazon Web Services
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapShay Hassidim
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & ActuatorsVMware Tanzu
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...cornelia davis
 
OpenStack for devops environment
OpenStack for devops environment OpenStack for devops environment
OpenStack for devops environment Orgad Kimchi
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsIan Robinson
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Diveneil_richards
 

Tendances (20)

2019 04 Containers - The secret to shipping cloud workloads
2019 04 Containers - The secret to shipping cloud workloads 2019 04 Containers - The secret to shipping cloud workloads
2019 04 Containers - The secret to shipping cloud workloads
 
V mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitV mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kit
 
AWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment Complexity
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on Azure
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on AzureVoxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on Azure
Voxxed Days Thesaloniki 2016 - A journey to Open Source Technologies on Azure
 
An Introduction to Enterprise Design Patterns
An Introduction to Enterprise Design PatternsAn Introduction to Enterprise Design Patterns
An Introduction to Enterprise Design Patterns
 
DevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as codeDevOps Toolbox: Infrastructure as code
DevOps Toolbox: Infrastructure as code
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
How to build a cloud adapter
How to build a cloud adapterHow to build a cloud adapter
How to build a cloud adapter
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
Cloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment WorkshopCloud Foundry: Hands-on Deployment Workshop
Cloud Foundry: Hands-on Deployment Workshop
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
GigaSpaces CCF 4 Xap
GigaSpaces CCF 4 XapGigaSpaces CCF 4 Xap
GigaSpaces CCF 4 Xap
 
Agility and DevOps on AWS
Agility and DevOps on AWSAgility and DevOps on AWS
Agility and DevOps on AWS
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 
OpenStack for devops environment
OpenStack for devops environment OpenStack for devops environment
OpenStack for devops environment
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 

Similaire à Zure Azure PaaS Zero to Hero - DevOps training day

Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarCambay Digital
 
Secure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in AzureSecure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in Azurekloia
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersSarah Dutkiewicz
 
Azure DevOps työkalut - Roundtable 14.3.2019
Azure DevOps työkalut - Roundtable 14.3.2019Azure DevOps työkalut - Roundtable 14.3.2019
Azure DevOps työkalut - Roundtable 14.3.2019Janne Mattila
 
Microsoft Tech Series 2019 - Azure DevOps
Microsoft Tech Series 2019 - Azure DevOpsMicrosoft Tech Series 2019 - Azure DevOps
Microsoft Tech Series 2019 - Azure DevOpsTomasz Wisniewski
 
Azure DevOps for QA Automation
Azure DevOps for QA AutomationAzure DevOps for QA Automation
Azure DevOps for QA AutomationEvgeny Popovich
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Mary Joy Sabal
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOpsNaoki (Neo) SATO
 
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackTooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackMicrosoft Tech Community
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Amazon Web Services
 
Aws User Group Singapore Presentation Oct-21-2020
Aws User Group Singapore Presentation Oct-21-2020Aws User Group Singapore Presentation Oct-21-2020
Aws User Group Singapore Presentation Oct-21-2020Varun Manik
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01Scott Miao
 
What are the key features of Azure DevOps and how are they beneficial to the ...
What are the key features of Azure DevOps and how are they beneficial to the ...What are the key features of Azure DevOps and how are they beneficial to the ...
What are the key features of Azure DevOps and how are they beneficial to the ...kzayra69
 

Similaire à Zure Azure PaaS Zero to Hero - DevOps training day (20)

Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 
Secure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in AzureSecure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in Azure
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Azure DevOps työkalut - Roundtable 14.3.2019
Azure DevOps työkalut - Roundtable 14.3.2019Azure DevOps työkalut - Roundtable 14.3.2019
Azure DevOps työkalut - Roundtable 14.3.2019
 
Microsoft Tech Series 2019 - Azure DevOps
Microsoft Tech Series 2019 - Azure DevOpsMicrosoft Tech Series 2019 - Azure DevOps
Microsoft Tech Series 2019 - Azure DevOps
 
Azure DevOps for QA Automation
Azure DevOps for QA AutomationAzure DevOps for QA Automation
Azure DevOps for QA Automation
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps
 
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure StackTooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
Tooling and DevOps for the Hybrid Cloud with Azure and Azure Stack
 
Azure Devops
Azure DevopsAzure Devops
Azure Devops
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
 
Aws User Group Singapore Presentation Oct-21-2020
Aws User Group Singapore Presentation Oct-21-2020Aws User Group Singapore Presentation Oct-21-2020
Aws User Group Singapore Presentation Oct-21-2020
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
What are the key features of Azure DevOps and how are they beneficial to the ...
What are the key features of Azure DevOps and how are they beneficial to the ...What are the key features of Azure DevOps and how are they beneficial to the ...
What are the key features of Azure DevOps and how are they beneficial to the ...
 

Plus de Okko Oulasvirta

Global DevOps Bootcamp Helsinki keynote
Global DevOps Bootcamp Helsinki keynoteGlobal DevOps Bootcamp Helsinki keynote
Global DevOps Bootcamp Helsinki keynoteOkko Oulasvirta
 
VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30Okko Oulasvirta
 
Mobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterMobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterOkko Oulasvirta
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Okko Oulasvirta
 
2 6 dev ops - paas a-b testing
2 6 dev ops - paas a-b testing2 6 dev ops - paas a-b testing
2 6 dev ops - paas a-b testingOkko Oulasvirta
 
1 7 dev ops - ci+cd pipeline
1 7 dev ops - ci+cd pipeline1 7 dev ops - ci+cd pipeline
1 7 dev ops - ci+cd pipelineOkko Oulasvirta
 
1 2 dev ops - vsts overview
1 2 dev ops - vsts overview1 2 dev ops - vsts overview
1 2 dev ops - vsts overviewOkko Oulasvirta
 

Plus de Okko Oulasvirta (8)

Global DevOps Bootcamp Helsinki keynote
Global DevOps Bootcamp Helsinki keynoteGlobal DevOps Bootcamp Helsinki keynote
Global DevOps Bootcamp Helsinki keynote
 
VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30
 
Mobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenterMobile DevOps with VSTS and AppCenter
Mobile DevOps with VSTS and AppCenter
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
2 6 dev ops - paas a-b testing
2 6 dev ops - paas a-b testing2 6 dev ops - paas a-b testing
2 6 dev ops - paas a-b testing
 
1 7 dev ops - ci+cd pipeline
1 7 dev ops - ci+cd pipeline1 7 dev ops - ci+cd pipeline
1 7 dev ops - ci+cd pipeline
 
1 6 serverless
1 6 serverless1 6 serverless
1 6 serverless
 
1 2 dev ops - vsts overview
1 2 dev ops - vsts overview1 2 dev ops - vsts overview
1 2 dev ops - vsts overview
 

Dernier

Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatmentnswingard
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Baileyhlharris
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIINhPhngng3
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lodhisaajjda
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoKayode Fayemi
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Delhi Call girls
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsaqsarehman5055
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCamilleBoulbin1
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 

Dernier (20)

Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
Busty Desi⚡Call Girls in Sector 51 Noida Escorts >༒8448380779 Escort Service-...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animals
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
Causes of poverty in France presentation.pptx
Causes of poverty in France presentation.pptxCauses of poverty in France presentation.pptx
Causes of poverty in France presentation.pptx
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 

Zure Azure PaaS Zero to Hero - DevOps training day

  • 1. Confidential Azure DevOps Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 2. Confidential DEVOPS IS… THE UNION OF PEOPLE, PROCESS, AND PRODUCTS TO ENABLE… CONTINUOUS DELIVERY OF VALUE TO OUR END USERS.
  • 3. Confidential 1. Live in production 2. Collecting telemetry… 3. …that examines the hypothesis which motivated the deployment. Perfect Definition of Done…
  • 4. Confidential We believe {customer segment} wants {product/feature} because {value proposition} To prove or disprove the above, the team will conduct the following experiment(s): … The above experiment(s) proved or disproved the hypothesis by impacting the following metric(s): …
  • 5. Confidential Azure Boards Overview of VSTS functionalities Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 6. Confidential Dashboards and Wiki • Summary – Wiki homepage, builds, releases, commits, pull requests • Dashboards – for different purposes: Status of work, Bug tracking, Testing, Deployments etc. A lot of widgets available • Wiki – Use to guide your team on development practices, way-of-work etc. or enrich your work item data with detailed functional specifications (wiki pages can be linked to work items, copy paste images)
  • 7. Confidential Azure Boards • Work Items – Place to find assigned to, followed, mentioned, my activity, recently updated, completed or created work items • Boards – KanBan board. Work items shown here depends on team settings (iterations and areas). Can be customized and each team has their own view to data. • Backlogs – Multiple levels and more can be added if needed. Use to prioritize and schedule your work (sprint planning) • Sprints – Has sprint Backlog for sprint planning and Task board for daily standups. • Queries – Has shared and private queries to search and list work item data. Results can be shown also in dashboards.
  • 8. Confidential Azure DevOps Backlog management – Excel integration
  • 9. Confidential DEMO Azure Dashboards, Wiki, Boards Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 10. Confidential Azure Repos Private and Public Git repositories Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 11. Confidential Azure Repos • Files – Contents and history of source code files. • Commits – Who did what, when and why? Code commenting. • Branches – Master branch, Release and Feature branches • Tags – Official versions that went production • Pull Requests – Ensure quality of the code changes and communicate changes between team members • Branch policies – Enforces Pull Requests and other code quality practices
  • 12. Confidential DEMO Azure Repos Pull Requests, Code Reviews, Branches, Branch policies Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 13. Confidential Azure Pipelines and ARM Templates Infrastructure as code Continuous Integration Continuous Delivery Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 14. Confidential RBAC standard roles and scope Subscription Resource Groups Resources Owner Can perform all management operations for a resource and its child resources including access management and granting access to others. Contributor Can perform all management operations for a resource including create and delete resources. A contributor cannot grant access to other. Reader Has read-only access to a resource and its child resources. A reader cannot read secrets.
  • 15. Confidential Azure Resource Manager Template A JavaScript Object Notation (JSON) file that defines: • one or more resources to deploy to a resource group • dependencies between the deployed resources The template can be used to deploy the resources consistently and repeatedly
  • 16. Confidential Azure Resource Management templates Resource Group Azure Repos
  • 17. Confidential ARM TEMPLATE structure { "$schema": <uri>, "contentVersion: "1.0", "parameters": { }, "variables": { }, "functions": { }, "resources": [ ], "outputs": { } } contentVersion: can be used to make sure that the right template is being used parameters: are provided by caller when ARM deployment is executed variables: used as JSON fragments in the template functions: user-defined functions that are available within the template resources: Azure service to be deployed… outputs: values that are returned after deployment to caller
  • 18. Confidential Resources section structure "resources": [ { "apiVersion": "", "name": "[variables('webSiteName')]", "type": "Microsoft.Web/sites", "location": "[resourceGroup().location]", "properties": { … } "tags": { "displayName": “MyApp Consumption Plan" }, } ], type: resource-provider/resource-type name: unique in resource group sometimes also globally location: Azure data center region, usually same as resource group’s tags: shown in Azure Portal
  • 19. Confidential Tooling arm development Visual Studio with Azure development workload installed • Create ARM templates • Validate ARM templates • Deploy ARM templates • VSTS and Git support
  • 20. Confidential QA and Production Azure DevOps blueprint Development Azure Active Directory Authentication Resource group Azure SQL Database logical server database database App Service Plan App Service app Azure Active Directory Authentication Resource group Azure SQL Database logical server database database App Service Plan App Service app Azure Active Directory Authentication Resource group Azure SQL Database logical server database database App Service Plan App Service app QA resource group • Developers have read role • Deployments only with Azure pipelines • Infrastructure with ARM template(s) Production resource group • Support has contributor role • Developers may have read role • Deployments only with Azure pipelines • Infrastructure with ARM template(s) DEV and TMP resource groups • Developers have contributor role • Deployments with Azure pipelines (or with Visual Studio to troubleshoot) • ARM templates stored to Azure repos (Git) • Minimal permissions with Azure AD app based service principal • Role based access control (RBAC) applied to specific resource groups • Deployments via Azure Pipelines ARM Service Connections
  • 21. Confidential DEMO 1. Luodaan tmp, dev, qa ja prod resurssit 2. Luodaan service principalit ja luvitetaan ne contributor rooliin 3. Luoaan Azure DevOps ARM service connectionit Tehdään tämä kaikki skriptaten… Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 22. Confidential CI/CD - Continuous integration cspkg DEV TFVC Publish deployment artifacts for release pipeline only if CI build is passed!
  • 23. Confidential CI/CD - Continuous Delivery cspkg TFVC DEV: Deploy as often as possible (every commit) • Track smoke testing with post deployment approvals • Automate functional (UI) testing TEST: Run automated performance and load tests • Execute and track manual acceptance testing PROD: Acceptance testing passed • Use predeployment approvals • Consider to feature toggling and use of A/B testing • Use Application monitoring! UI 80% 20%
  • 24. Confidential DEMO Azure Resource Management templates Azure Pipelines Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 25. ©2018 Zure Oy | Confidential | www.zure.com Deployment slots… S1+ • Use deployment slots to route traffic to different url than production • Slot name is suffix to CNAME part of the website url: • app.domain.fi → app-slotname.domain.fi • production site can be swapped with any of slots in matter of few seconds • Traffic manager is used to configure how much of the traffic goes to which slot – other than production
  • 26. ©2018 Zure Oy | Confidential | www.zure.com DEMO A/B testing with deployment slots Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 27. ©2018 Zure Oy | Confidential | www.zure.com Azure Monitoring Application insights Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 28. Confidential Azure DevOps a.k.a VSTS Commit and push local branch to Azure Repos (Git) Edit code Continuous Integration Continuous Deployment Azure App Service Azure SQL App Service Azure SQL App Service Azure SQL Application Insights Create a Pull Request for peer review Merge to master Azure Pipelines – Monitoring
  • 29. Confidential What is application insights? Application Performance Management service for monitoring live applications. Detects automatically performance anomalies. Provides analytics tools to diagnose issues and understand app usage. How does it work? Requires instrumentation package in monitored application and resource in Azure. The instrumentation monitors app and sends telemetry data to AI. Tracking calls are non-blocking, batched and sent in a separate thread.
  • 30. ©2018 Zure Oy | Confidential | www.zure.com Track issues with Azure DevOps • Connect Application Insights to Azure DevOps • User in Azure Portal needs to have also access to Azure DevOps – authorized with OAuth • Create bugs from exception details in Application Insights
  • 31. ©2018 Zure Oy | Confidential | www.zure.com AppInsights in Azure DevOps Free extension by Microsoft • Dashboard can be set to auto refresh contents – doesn’t support live monitoring (yet) • Provides dashboard AI widgets with plenty of different options for metrics.
  • 32. ©2018 Zure Oy | Confidential | www.zure.com AppInsights in Azure Pipelines Free extension by Microsoft • Provides a new release task to add annotations on Application Insights monitoring data • Use release annotations to track point of time when deployment to production was released
  • 33. ©2018 Zure Oy | Confidential | www.zure.com Appinsights Azure DevOps configuration • AppInsights application ID and API Access key to identify which app insights data you want to access. • API Access key needs to be generated – remember to store the key securely!
  • 34. Confidential Azure Security Azure Key Vaults Okko Oulasvirta, Azure DevOps dude @okkooulasvirta
  • 35. Confidential Azure Key Vault Secret Store as a service - Store and manage SECRETs. - Isolate cryptographic keys. Azure Resource Provider Anchored to Azure AD - Authentication requires Azure AD token - Permissions expressed in terms of Azure AD identities Integrated with other Azure services / SDKs - Allows automated flows of secrets from source to destination. Subscription Resource GroupResource GroupResource Group Key VaultVMVMVM Storage accountStorage accountStorage account Key VaultKey Vault... Secret KeySecretSecret KeyKey Key VersionSecret VersionSecret VersionSecret Version Key VersionKey Version SubscriptionSubscription
  • 36. Confidential Available worldwide, isolated by geo You choose the region when creating your key vault. Secrets and keys in that key vault are stored in that region, and backed up in second region within same geo. 6 total copies ➔ you get very high durability. Your read/write requests are affinitized to the primary region. But service fails over automatically within region, or to secondary region ➔ you get high availability. Geo Regions US West, East, East 2, Central, North Central, South Central Europe North, West Asia East, Southeast Japan East, West Australia East, Southeast Brazil South USGov Iowa, Virginia China North, East
  • 37. Confidential Best practices 1. Inventory your secrets. 2. Store them in stores designed for secrets. 3. Tie access to your directory. 4. Minimize permissions, review permissions periodically. Storage account keys Certificates Encryption keys Passwords Secret Custodians (only a handful) App developers App5 - Containers App2 - Web App App4 - Cloud Service App3 - Service Fab App1 - VMs
  • 38. Confidential Best practices 1. Inventory your secrets. 2. Store them in stores designed for secrets. 3. Tie access to your directory. 4. Minimize permissions, review permissions periodically. Secret Custodians App developers Storage account keys Certificates Encryption keys Passwords Storage account keys Certificates Encryption keys Passwords App5 - Containers App2 - Web App App4 - Cloud Service App3 - Service Fab App1 - VMs Storage account keys Certificates Encryption keys Passwords Storage account keys Certificates Encryption keys Passwords Storage account keys Certificates Encryption keys Passwords
  • 39. Confidential Best practices Storage account keys Certificates Encryption keys Passwords App developers Secret Custodians Security Analysts & Auditors 1. Inventory your secrets. 2. Store them in stores designed for secrets. 3. Tie access to your directory. 4. Minimize permissions, review permissions periodically. 5. Log access, review logs. 6. Rotate secrets periodically. App5 - Containers App2 - Web App App4 - Cloud Service App3 - Service Fab App1 - VMs
  • 40. Confidential Best practices Storage account keys Certificates Encryption keys Passwords App developers Secret Custodians Security Analysts & Auditors 1. Inventory your secrets. 2. Store them in stores designed for secrets. 3. Tie access to your directory. 4. Minimize permissions, review permissions periodically. 5. Log access, review logs. 6. Rotate secrets periodically. 7. Automate → Azure DevOps App5 - Containers App2 - Web App App4 - Cloud Service App3 - Service Fab App1 - VMs
  • 41. ©2018 Zure Oy | Confidential | www.zure.com Developer builds application (DEV KV) AppKey Vault 1. Create Key Vault 2. Authorize app, users 3. Create/import keys/secrets 4. Deploy app, configured with Key Vault URI of key/secret 5. Use key/secret dev@aad
  • 42. ©2018 Zure Oy | Confidential | www.zure.com App moves into test (QA KV) AppKey Vault 5. Use key/secret 1. Create Key Vault 2. Authorize app, users 3. Create/import keys/secrets 4. Deploy app, configured with URI of key/secret dev@aadciso@aad
  • 43. ©2018 Zure Oy | Confidential | www.zure.com App in production (PROD KV) AppKey Vault 5. Use key/secret 1. Create Key Vault 2. Authorize app, users 3. Create/import keys/secrets 6. Manage keys/secrets 7. Monitor logs 4. Deploy app, configured with URI of key/secret dev@aadciso@aad No change in app code!
  • 44. ©2018 Zure Oy | Confidential | www.zure.com 45 Azure Pipelines Variable Groups and Azure Key Vault Use a variable group to store values that you want to make available across multiple build and release pipelines. • Variable groups are defined and managed in the Library tab of the Pipelines hub. • Link secrets from an Azure key vault as variables • Requires Azure service connection with Get and List management permissions on the vault for secrets DevOpsVariables DevOps KeyVault secrets zure-shared-we-prod-kv DevOpsVariables
  • 45. ©2018 Zure Oy | Confidential | www.zure.com 46 Secrets in Azure Pipelines (CI/CD) • Only the secret names are mapped to the variable group the latest version of the value of each secret is fetched during the build or release • Any change in the value of a existing secret is available automatically available for linked Azure pipelines. • Azure Key Vault supports storing and managing cryptographic keys and secrets in Azure. Currently, Azure Pipelines variable group integration supports mapping only Key Vault secrets from the Azure key vault. Cryptographic keys and certificates are not yet supported → Azure pipelines has secure files functionality for this
  • 46. ©2018 Zure Oy | Confidential | www.zure.com DEMO 47 Create Key Vault using AZ CLI Connect .NET Core web app with Key Vault https://docs.microsoft.com/en-us/azure/key-vault/quick-create-net See demo of Managed Service Identity usage with KeyVault https://azure.microsoft.com/en-us/resources/samples/app-service-msi-keyvault-dotnet