Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
6. DotNetCode.IT
Microsoft .Net Coding Community
AGENDA
• Definizione di CI /CD
• Introduzione a Azure DevOps.
• Strumenti di Azure DevOps a supporto
• Creazione di una pipeline di build
• Attivare una build in modalità continua
• Rilascio di una build in ambienti di Produzione
• Continuous Deployments Multi Stage
• Q&A
8. DotNetCode.IT
Microsoft .Net Coding Community
Definizione di CI
Continuous Integration sono delle pratiche che favoriscono
l’integrazione del codice sorgente, anche più volte al giorno,
sviluppato dai team, minimizzando possibili errori di compilazioni
dovuti alla merge del codice.
Permette di rilevare bug e segnalarli in automatico al team di
sviluppo responsabile di quella porzione di codice.
E’ MOLTO importante correlare il codice di test di integrazione
e di unit test
9. DotNetCode.IT
Microsoft .Net Coding Community
Definizione di CD
Continuous Deployment sono delle pratiche che favoriscono il
processo di messa in produzione del codice validato, anche più
volte al giorno.
Automatizza il ciclo di rilascio per renderlo il più possibile
immediato
Permette una gestione della configurazione centralizzata
10. DotNetCode.IT
Microsoft .Net Coding Community
?
2)
• Gestione di un solo repository del codice
• Escuzione di test automatici nella build stessa
• Commit consistenti e frequenti
• Piccole funzionalità implementate in modo
incrementale
1)
• Maggiore controllo sul vostro codice
• Maggiore qualità del codice rilasciato
• Facile risposta ai cambiamenti tecnologici
• Facile risposta ai cambiamenti di business
• Facile risposta ai cambiamenti di design
• Build automatizzata
• Replicabile su ambienti diversi
3)
• Manifesto agile
• https://agilemanifesto.org/iso/it/manifesto.html
• https://agilemanifesto.org/iso/it/principles.html
• «La nostra massima priorità è soddisfare il cliente
rilasciando software di valore, fin da subito
e in maniera continua»
11. DotNetCode.IT
Microsoft .Net Coding Community
What is DevOps?
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
DevOps is the union of people,
process, and products to
enable continuous delivery of
value to your end users.
13. DotNetCode.IT
Microsoft .Net Coding Community
Introducing Azure DevOps
Deliver value to your users faster
using proven agile tools to plan,
track, and discuss work across
your teams.
Build, test, and deploy with CI/CD that
works with any language, platform,
and cloud. Connect to GitHub or any
other Git provider and deploy
continuously.
Get unlimited, cloud-hosted
private Git repos and collaborate
to build better code with pull
requests and advanced file
management.
Test and ship with confidence
using manual and exploratory
testing tools.
Create, host, and share packages
with your team, and add artifacts to
your CI/CD pipelines with a single
click.
Azure Boards Azure ReposAzure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops
➔
15. DotNetCode.IT
Microsoft .Net Coding Community
Azure DevOps Services Pricing
Free
Unlimited users and build time
• Azure Pipelines: 10 parallel jobs with
unlimited minutes for CI/CD
• Azure Boards: Work item tracking and
Kanban boards
• Azure Repos: Unlimited public Git repos
Free
Start free with up to 5 users
• Azure Pipelines: Run 1 Microsoft-hosted
job for 1,800 minutes per month and 1
self-hosted job for any amount of time
• Azure Boards: Work item tracking and
Kanban boards
• Azure Repos: Unlimited private Git repos
• Azure Artifacts: package management
• Load testing (20,000 VUMs/month)
• Unlimited stakeholders
Starts at $6
per user, per month for Boards & Repos*
Easy pricing that grows with your team
• Azure Pipelines: Run 1 Microsoft-hosted
job for 1,800 minutes per month and 1
self-hosted job for any amount of time
• Azure Boards: Work item tracking and
Kanban boards
• Azure Repos: Unlimited private Git repos
• Azure Artifacts: package management
• Load testing (20,000 VUMs/month)
• Unlimited stakeholders
• Visual Studio subscribers included free
https://azure.com/pricing/details/devops/➔
5 Boards & Repos users and 5 Artifacts users free. Pipelines
with unlimited minutes, Test Plans users and additional
Artifacts users also available. Please see the Azure pricing
calculator for details.
*
17. DotNetCode.IT
Microsoft .Net Coding Community
Build pipeline
Una build è definita da task. Un task ha diverse versioni
Utilizza un agent o un set di agent (agentpool) per eseguire i comandi dei
task
Utilizza token e variabili per identificare una build in maniera univoca
Una build può essere startata anche da eventi (CI)
18. DotNetCode.IT
Microsoft .Net Coding Community
Build pipeline
L’ agent può essere di tipo Microsoft hosted o custom
Le varibili possono essere utilizzate per I task condizionali
• Build.ArtifactStagingDirectory è il path dove l’agent crea gli artefatti prima di essere copiati sulla destinazione
indicate dal task (c:agent_work1a )
• Build.BinariesDirectory è il path dove l’agent ha copiato le vostre dll prima di essere pubblicate sulla destinazione
(c:agent_work1b)
• Build.Repository.LocalPath è il path dove l’agent deposita il codice sorgente (c:agent_work1s)
• Build.StagingDirectory ha la stessa funzione di Artifact ma viene ripulita ad ogni build
Eventi basati su Path filters
21. DotNetCode.IT
Microsoft .Net Coding Community
Release pipeline
Una release è definita da task. Un task ha diverse versioni
Utilizza un agent o un set di agent (agentpool) per eseguire i comandi dei task
Utilizza token e variabili per identificare una build in maniera univoca
Una release può essere startata anche da eventi (CD)
E’ composta da uno o più environment