2. WHO AM I?
• Systems Engineering Advisor at One Identity
• Microsoft MVP – Developer Technologies
• Professional Scrum Master 1
matteo.emili@live.com || @MattVSTS || https://mattvsts.blogspot.com
6. WHAT I AM *NOT* GOING TO SHOW
• Interact with Azure DevOps via VSTeam or TfsCmdlets
https://www.powershellgallery.com/packages/VSTeam/4.0.10
https://github.com/igoravl/tfscmdlets
• Use the Azure DevOps REST APIs for automations
https://docs.microsoft.com/en-us/rest/api/vsts/?view=vsts-rest-4.1
• Deploy infrastructure via Azure Resource Manager
https://mva.microsoft.com/en-us/training-courses/azure-resource-
manager-devops-jump-start-8413
• Use a Version Control System (Git or TFVC)
• Best practices (?)
11. AZURE DEVOPS IS AN INTEGRATED
STACK
It used to be called VSTS…
12. THERE ARE SO MANY POINTS WHERE
THEY BENEFIT FROM EACH OTHER
13. SOME EXAMPLES OF SYSTEM
INTERACTION
• Full power of PowerShell on target agent or deployment group
• Deploy infrastructure with DSC or Azure Resource Manager
• Create complex set of tasks to automate as much as possible
• Integrate your custom scripts in a CI/CD Pipeline to make it behave like
out-of-the-box tasks
14. SCRIPTS ARE FIRST CLASS CITIZENS
• Re-use your set of scripts and re-distribute them internally as pre-
packed Azure DevOps tasks
• Have a consistent behaviour for free
• Leverage on variables to pass parameters
• Integrate your outputs with Azure DevOps logging system to provide an
integrated experience for the end-user
28. HOW A CUSTOM BUILD TASK IS MADE
• Create the extension’s scaffolding with tfx
• Add your scripts as the core portion of the custom task (targeting
Windows)
• Edit the manifest and (if you want) add an icon
• Install the PowerShell SDK for extensions
• Re-package, publish and potentially distribute to the marketplace!
39. RECAP
• Extract maximum value from out-of-the-box tasks
• Integrate your PowerShell scripts with Azure DevOps Pipelines as first
class citizens
• Re-use set of tasks via Task Groups to share them with your teams
• Create custom Build or Release Tasks as Azure DevOps Extensions, for
both private and public consumption within Pipelines
• Apply CI/CD concepts to your custom libraries and store them in an
Artifacts feed to redistribute them for managed consumption