SlideShare a Scribd company logo
Prepared by Name Surname, Position www.intellias.com
CI/CD Azure DevOps
Tips and Tricks for .NET
Workloads
www.intellias.com
Sergiy Seletsky
Senior Solution Architect
Agenda
1. What is a good CI?
2. CI/CD Flows best practice
3. Build pipelines
4. Gated pipeline
5. Repo structure
6. Roslyn Analyzers
7. Sonar Cloud
8. Post-merge pipeline
9. Release pipeline
What is a good CI?
1. Should block pull requests
2. Should run faster than 5 minutes
3. Should run tests unit/integration/contract
4. Should run linters/analyzers
5. Should collect metrics quality/coverage
Build Pipelines
Each microservice has at
least 3 pipelines:
• Gated – pre-merge
blocking pipeline to
verify pull-requests.
• Build – just build
package/container after
merge and push to
artifacts.
• Deploy – IaaC build
and verify and push to
artifacts.
PULL
REQUEST Gated
Restore
Build
Test /
Coverage
Lint
Analyse
Sonar
MERGED
Recommended pipeline flow
Build
Restore
Build
Pack
Push
Publish
ARTIFACTS
Release
Restore
Run
IaaC
Deploy
Verify
Gated Pipeline
1. Restore NuGet/Npm etc. only automated dependencies.
2. Build with Roslyn analyzers
3. Prepare Sonar environment
4. Build with Sonar analysis
5. Provision Azure Disposable Environment
6. Run tests unit/integration/cloud specific.
7. Push result of tests and coverage
8. Run Sonar Analyze
9. Publish result to Sonar Pull Request scope
10. Run extra analysis like R# or NDepend.
11. Use parallel jobs for slow parts, e.g. contract / E2E testing.
Repo Structure
1. One microservice – one repo.
2. Separate folders for src/test/IaaC/Pipelines code.
3. Use .editorconfig.
4. One Directory.Build.props per repo.
5. Readme.md should contain useful info that clearly define how to
build and run this code.
6. Configure pipeline filters to be triggered on folder content
change. E.g. change of IaaC only trigger Deploy Build.
7. Test folder should be excluded from advanced code analysis
and analytics but still Roslyn ruleset should be followed.
Roslyn Analyzers
Run checks in IDE if possible.
• Should be always runed on build
pipeline for double-check.
• Force null free code.
• No warning allowed.
• Use team agreement ruleset. Code
Convention as a Code.
• Make sure FullDebug mode
enabled for proper Sonar/Roslyn
pipeline analysis.
• Recommended list of analysers,
adjust for your needs.
Sonar Cloud
Must have on any project.
• Make sure Sonar block pull
request, configured in Azure
DevOps Pipeline services.
• Make sure valid Azure DevOps
PAT set in Sonar to leave
comments in pull-request code
review.
• Make sure no rules conflicts with
Roslyn.
Post-merge build pipeline
Post-merge build pipeline.
• Contain only production related
steps, no debug, no analysis, no
tests.
• Should build release mode
artifacts.
• Should prepare artifacts containers
e.g. Docker/Lambda/Funcs.
• Contracts and SDKs exported by
service must be packaged in
NuGet/NPM and pushed to
artifacts.
Release pipelines
Each microservice has
own release pipeline and
environments.
• Triggered by pushed
artifacts
• Continuous
Deployment for
Dev/Test/Stage
• Continuous Delivery for
Prod
• Do not follow Blame Driven Development .
• Automate DoD checks (definition of done).
• Calculate roughly CBA for automation.
• Force engineering culture.
• Refactoring is a part of development.
• Do not grow technical debt, ban it at start.
• Do not create/store useless/outdated documentation.
• Provide SDK/NuGet for APIs consumers.
• Build once – deploy many.
• Parallel pipeline and invest in fast build agent, it is
cheaper than the salary of engineer and ROI is
surprisingly short.
Recommendations
WE INVITE TALENTED MIDDLE/SENIOR .NET ENGINEERS TO JOIN
OUR TEAM
The selection of original .NET vacancies,
from cutting-edge e-learning platforms to
innovative Automotive solutions.
Pick a project of your choice, check out
vacancies, and join in for the most
exciting career development of your
winter.
Prepared by Name Surname, Position www.intellias.com
Thank you!
sseletskyi@intellias.com
www.intellias.com
https://www.linkedin.com/in/sergeyseletsky/

More Related Content

PPTX
Microservice.net by sergey seletsky
PPTX
Intellias CQRS Framework
PDF
DCEU 18: From Monolith to Microservices
PPTX
Cqrs and event sourcing in azure
PPTX
Continuous delivery by sergey seletsky
PPTX
Eco system apps
PDF
56k.cloud training
PPTX
.NET microservices with Azure Service Fabric
Microservice.net by sergey seletsky
Intellias CQRS Framework
DCEU 18: From Monolith to Microservices
Cqrs and event sourcing in azure
Continuous delivery by sergey seletsky
Eco system apps
56k.cloud training
.NET microservices with Azure Service Fabric

What's hot (20)

PPTX
Going serverless with aws
PDF
berne.*tesday1
PPTX
Next generation pipelines
PDF
GWT Enterprise Edition
PDF
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
PDF
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
PPTX
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
PPTX
Serverless Reality
PDF
Docker in Production at the Aurora Team
PPTX
Docker Serverless
PDF
Matt Chung (Independent) - Serverless application with AWS Lambda
PDF
Netflix Open Source: Building a Distributed and Automated Open Source Program
PPTX
Go Serverless with Azure
PDF
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
PPTX
Cloudsolutionday 2016: Docker & FAAS at getvero.com
PDF
Build Robust Blockchain Services with Hyperledger and Containers
PPTX
OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack Meetup
PDF
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
PDF
The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...
PPT
Sebastien goasguen cloud stack the next year
Going serverless with aws
berne.*tesday1
Next generation pipelines
GWT Enterprise Edition
Brendon Foxen (Channel 4) - Speeding up Software Delivery at Channel 4
On-the-Fly Containerization of Enterprise Java & .NET Apps by Amjad Afanah
20 mins to Faking the DevOps Unicorn by Matt williams, Datadog
Serverless Reality
Docker in Production at the Aurora Team
Docker Serverless
Matt Chung (Independent) - Serverless application with AWS Lambda
Netflix Open Source: Building a Distributed and Automated Open Source Program
Go Serverless with Azure
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
Cloudsolutionday 2016: Docker & FAAS at getvero.com
Build Robust Blockchain Services with Hyperledger and Containers
OpenStack and Containers - Will they blend? A prequel. SF Bay OpenStack Meetup
Everything You Need to Know About Docker and Storage by Ryan Wallner, ClusterHQ
The Complexity to "Yes" in Analytics Software and the Possibilities with Dock...
Sebastien goasguen cloud stack the next year
Ad

Similar to CICD Azure DevOps (20)

PDF
Continuous Delivery in the Cloud with Bitbucket Pipelines
PDF
Использование AzureDevOps при разработке микросервисных приложений
PDF
Getting to Walk with DevOps
PDF
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
PDF
Next Generation Architecture Showcase July 2019
PPTX
Modern Web-site Development Pipeline
PPTX
CI/CD on AWS
PDF
Efficient Parallel Testing with Docker by Laura Frank
PPTX
Automating Your Salt Tests
PPTX
Version Control and Continuous Integration
PDF
Building Efficient Parallel Testing Platforms with Docker
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
PDF
CI/CD with Azure DevOps and Azure Databricks
PDF
Versioning for Developers
PDF
Continuous Deployment of your Application @jSession#5
PDF
Containerising bootiful microservices javaeeconf
PPTX
WebLogic Stability; Detect and Analyse Stuck Threads
PPTX
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
PDF
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
PPTX
Power of Azure Devops
Continuous Delivery in the Cloud with Bitbucket Pipelines
Использование AzureDevOps при разработке микросервисных приложений
Getting to Walk with DevOps
CarTrawler's Feature Team Architecture and Development Process Showcase by Lu...
Next Generation Architecture Showcase July 2019
Modern Web-site Development Pipeline
CI/CD on AWS
Efficient Parallel Testing with Docker by Laura Frank
Automating Your Salt Tests
Version Control and Continuous Integration
Building Efficient Parallel Testing Platforms with Docker
Continuous Deployment To The Cloud @DevoxxPL 2017
CI/CD with Azure DevOps and Azure Databricks
Versioning for Developers
Continuous Deployment of your Application @jSession#5
Containerising bootiful microservices javaeeconf
WebLogic Stability; Detect and Analyse Stuck Threads
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Quality in a Square. K8s-native Quality Assurance of Microservices with Testkube
Power of Azure Devops
Ad

More from Sergey Seletsky (9)

PDF
AI engineering productivity cookbook.pdf
PPTX
CQRS and Event Sourcing
PPTX
IoT Smart Home
PPTX
WiFi anywhere
PPTX
MicroServices on Azure
PPTX
Asp.net mvc 5 course module 1 overview
PPTX
Mobile development with visual studio
PPTX
Make your project up to date
PPTX
Scrum and Kanban
AI engineering productivity cookbook.pdf
CQRS and Event Sourcing
IoT Smart Home
WiFi anywhere
MicroServices on Azure
Asp.net mvc 5 course module 1 overview
Mobile development with visual studio
Make your project up to date
Scrum and Kanban

Recently uploaded (20)

PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Digital Strategies for Manufacturing Companies
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
AI in Product Development-omnex systems
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Introduction to Artificial Intelligence
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
history of c programming in notes for students .pptx
Softaken Excel to vCard Converter Software.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Navsoft: AI-Powered Business Solutions & Custom Software Development
Digital Strategies for Manufacturing Companies
Upgrade and Innovation Strategies for SAP ERP Customers
PTS Company Brochure 2025 (1).pdf.......
wealthsignaloriginal-com-DS-text-... (1).pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
AI in Product Development-omnex systems
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Introduction to Artificial Intelligence
Odoo POS Development Services by CandidRoot Solutions
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
history of c programming in notes for students .pptx

CICD Azure DevOps

  • 1. Prepared by Name Surname, Position www.intellias.com CI/CD Azure DevOps Tips and Tricks for .NET Workloads www.intellias.com Sergiy Seletsky Senior Solution Architect
  • 2. Agenda 1. What is a good CI? 2. CI/CD Flows best practice 3. Build pipelines 4. Gated pipeline 5. Repo structure 6. Roslyn Analyzers 7. Sonar Cloud 8. Post-merge pipeline 9. Release pipeline
  • 3. What is a good CI? 1. Should block pull requests 2. Should run faster than 5 minutes 3. Should run tests unit/integration/contract 4. Should run linters/analyzers 5. Should collect metrics quality/coverage
  • 4. Build Pipelines Each microservice has at least 3 pipelines: • Gated – pre-merge blocking pipeline to verify pull-requests. • Build – just build package/container after merge and push to artifacts. • Deploy – IaaC build and verify and push to artifacts.
  • 5. PULL REQUEST Gated Restore Build Test / Coverage Lint Analyse Sonar MERGED Recommended pipeline flow Build Restore Build Pack Push Publish ARTIFACTS Release Restore Run IaaC Deploy Verify
  • 6. Gated Pipeline 1. Restore NuGet/Npm etc. only automated dependencies. 2. Build with Roslyn analyzers 3. Prepare Sonar environment 4. Build with Sonar analysis 5. Provision Azure Disposable Environment 6. Run tests unit/integration/cloud specific. 7. Push result of tests and coverage 8. Run Sonar Analyze 9. Publish result to Sonar Pull Request scope 10. Run extra analysis like R# or NDepend. 11. Use parallel jobs for slow parts, e.g. contract / E2E testing.
  • 7. Repo Structure 1. One microservice – one repo. 2. Separate folders for src/test/IaaC/Pipelines code. 3. Use .editorconfig. 4. One Directory.Build.props per repo. 5. Readme.md should contain useful info that clearly define how to build and run this code. 6. Configure pipeline filters to be triggered on folder content change. E.g. change of IaaC only trigger Deploy Build. 7. Test folder should be excluded from advanced code analysis and analytics but still Roslyn ruleset should be followed.
  • 8. Roslyn Analyzers Run checks in IDE if possible. • Should be always runed on build pipeline for double-check. • Force null free code. • No warning allowed. • Use team agreement ruleset. Code Convention as a Code. • Make sure FullDebug mode enabled for proper Sonar/Roslyn pipeline analysis. • Recommended list of analysers, adjust for your needs.
  • 9. Sonar Cloud Must have on any project. • Make sure Sonar block pull request, configured in Azure DevOps Pipeline services. • Make sure valid Azure DevOps PAT set in Sonar to leave comments in pull-request code review. • Make sure no rules conflicts with Roslyn.
  • 10. Post-merge build pipeline Post-merge build pipeline. • Contain only production related steps, no debug, no analysis, no tests. • Should build release mode artifacts. • Should prepare artifacts containers e.g. Docker/Lambda/Funcs. • Contracts and SDKs exported by service must be packaged in NuGet/NPM and pushed to artifacts.
  • 11. Release pipelines Each microservice has own release pipeline and environments. • Triggered by pushed artifacts • Continuous Deployment for Dev/Test/Stage • Continuous Delivery for Prod
  • 12. • Do not follow Blame Driven Development . • Automate DoD checks (definition of done). • Calculate roughly CBA for automation. • Force engineering culture. • Refactoring is a part of development. • Do not grow technical debt, ban it at start. • Do not create/store useless/outdated documentation. • Provide SDK/NuGet for APIs consumers. • Build once – deploy many. • Parallel pipeline and invest in fast build agent, it is cheaper than the salary of engineer and ROI is surprisingly short. Recommendations
  • 13. WE INVITE TALENTED MIDDLE/SENIOR .NET ENGINEERS TO JOIN OUR TEAM The selection of original .NET vacancies, from cutting-edge e-learning platforms to innovative Automotive solutions. Pick a project of your choice, check out vacancies, and join in for the most exciting career development of your winter.
  • 14. Prepared by Name Surname, Position www.intellias.com Thank you! sseletskyi@intellias.com www.intellias.com https://www.linkedin.com/in/sergeyseletsky/