Category: AzureDevOps

Azure Devops

In this series of blog posts I will cover Azure Devops, I’ll cover the following

And many more, check back regularly for more on the above.

Please ping me if you have any questions or want something covered which I haven’t mentioned thus far.



Azure DevOps – How to do a fully automated release (Part 3)

Ok so Part 1 covered how to do a manual build of a .NET Core Web App and now I’ll show how to do a manual deployment of the project.

Part 2 covered creating a manual release from the build in Part 1

In Part 3 I’ll cover the magic sauce that make it possible to set up continuous deployment so that when you commit your code its automagically built and deployed.


Automated Builds

  • Ok so start by going to Pipelines and then select Builds
  • Click on Edit to Edit the build we created in Part 1
  • Select Triggers and then click on Enable Continuous Integration and then click Save And Queue like so

 

Once you’ve saved check in a commit and the code will trigger the automated build.


Automated Deployments

  • Ok so start by going to Pipelines and then select Releases
  • Edit the release you had previously created in Part 2
  • Click the lightning icon on the Artifacts part of the release and then click to enable Continuous deployment trigger like so, click Save.

So now if you commit code, you’ll have an automated build and release pipeline using continuous integration and continuous deployment (CI / CD) – way to go!



Azure DevOps – How to do a fully automated release (Part 2)

Ok so Part 1 covered how to do a manual build of a .NET Core Web App and now I’ll show how to do a manual deployment of the project.

Part 2 will cover creating a manual release from the build in Part 1 (I’m assuming your manual build is working)

Before starting this please manually create a Resource Group, App Service Plan and an App Service within the Azure Portal, for this demo I created the following:

Resource Group called BlogPostDemoRG
AppService Plan called BlogPostDemoAppPlan
App Service called BLogPostDemo


  • So back in Azure Devops (devops.azure.com/<your org name here>)
  • Under Pipelines (on the left) click on Releases
  • Choose New Pipeline
  • Choose Azure App Service deployment
  • Click on Artifacts + Add
  • Select the Source and then Click Add
  • At this point you should see something like so


Setup the Stage

  • Enter a Stage Name (leave it as Stage 1 for now), then close the right hand screen
  • Click where it says 1 job, 1 task (it should be red currently as some settings need to be supplied)
  • Add a New Task
  • Choose the Azure App Service Deploy Task
  • Fill in the settings which are red
  • Choose your Azure Subscription
  • Click Authorize and sign in to your Azure Subscription
  • Select your already created App Service (I called my blogpostappdemo)
  • Where it says Package or folder click the ellipses and browse to the drop folder like so

  • Click Ok
  • Click Save to save your changes

Deploy Time

  • At this point you should be able to deploy the code
  • From the Top Click Release, Create a Release
  • Enter Stage 1 as the stages for a trigger change (or whatever you called it in step 4)
  • Select the Artifact from the drop down (artifact is basically which version of the code do you wish to deploy)
  • Click Create
  • In Green header you’ll see that a Release has been created, click on it
  • Underneath the Stage 1 in middle of the screen it’ll say not deployed, select Deploy once you hove over that part
  • Click Deploy, then click where it says In Progress
  • Once the build succeeds go back to the Azure Portal and locate your App Service and click on the url to launch the site

Congrats you should now have your first Azure Devops manual build and now your first manual release,  but lets not stop there as this is only us getting warmed up, how about in Part 3 we automate both the build and the release.



Azure DevOps – How to do a fully automated release (Part 1)

I managed to get an automated build of some new code tonight and I ran into some issues which I have now resolved, so here are the steps to create a fully automated build and release of a brand new .net core web app using Visual Studio and Azure DevOps.

Part 1 will cover creating a manual build

  • Create a DevOps Organization
  • Create a brand new .Net Core Web App in Visual Studio( File, New Project, .Net Core, Asp.Net Core Application)
  • Call it anything you like I called my BlogPostDemo
  • Choose Web Application (Model-View-Controller)
  • Click ok
  • Make sure you have the following VS Extension installed – GitHub Extension for Visual Studio
  • Then do File -> Add to Source Control
  • From Team Explorer select Sync
  • Then where it says Push To Azure DevOps -> Click Publish to Git Repo
  • Make sure your Azure DevOps Organisation is selected and give the Repository a name e.g. (BlogPostDemo)
  • Click Publish
  • You should now be able to see this if you click on Repos within Azure Devops

 


Ok so now we have the code in place, let’s do a build and make sure the code builds within the repo in Azure DevOps. To create a release I did the following:-

  • Click on Pipelines and then Builds
  • Click new Pipeline
  • Be careful here, I selected to use the visual designer which you can see here:-


  • Then I left the default choices (Azure Repos Git, BlogPostDemo, BlogPostDemo, master branch), click Continue
  • Then I add a ASP.NET Core Template (this gives you Restore, Build, Test, Publish, Publish Artifact steps for you)
  • Click Save and Queue

It’s important to note that at this stage the build is going to be a manual build, we will come back to it and make it an automated build (and release) later on.

Part 2 will cover doing a manual Release and in Part 3 we will make the whole thing automated.



Azure Governance and Security

Recently came across some very useful links for moving to Azure and thought they may be of some use to others as well, the content below covers things like best practice for subscriptions, resource group usage naming conventions, security and more…


 



Azure Pipelines

Azure DevOps allows you to Continuously build, test, and deploy to any platform and cloud. With Azure DevOps gives you 1,800 free minutes for CI / CD (30 hours per month)

If your project is open source (public Git repo on any Git Service), you get 10 free parallel pipelines per month.


To get started with Azure Pipelines I used https://azuredevopsdemogenerator.azurewebsites.net/ to create a project within Azure DevOps for this walk-through I selected the PartsUnlimited Template. This project is a .Net core application and uses the scrum Azure Board type, full source code can be found on GitHub here – https://github.com/Microsoft/PartsUnlimited

From there I cloned the repo locally and made sure I can run it locally – always a good first step in my opinion.

Now I wish to create a build pipeline so here are the steps I carried out to first of all create a new build pipeline:-

  • Click on Builds under Pipelines on the left hand menu
  • Click New, then select new Build Pipeline
  • I then chose use the visual designer (easier than using yaml in my opinion) as below:-


  • Select Azure Repos Git
  • Select Azure Repos Git and Master branch
  • Choose Azure Web App for ASP.NET and then select Apply
  • Within Tasks I normally delete the Azure App Service Deploy Task (right-click on it remove selected task)
  • You should have something that resembles the screen shot below: –


  • Once your happy with the settings select Save and Queue (If its grayed out you’ve missed a setting – normally in red)
  • Build succeeded and you just created your first Azure DevOps Build – congrats!

After that its time to experiment with other types of projects and build’s, one way to do this is to look at samples and play with them and look at what’s possible. A great resource for doing this is again using the https://azuredevopsdemogenerator.azurewebsites.net/ generator, this time lets use the SmartHotel360 app,  like so: –

  • Click Create project and let that install
  • Once Installed select the Pipelines icon and then choose Builds

  • Now choose Edit and you can see the way this build has been constructed

  • From here you can view the actions and see what each of them is doing
  • Once you have had a look at each step, Click Queue to queue a new build

Read more on Azure Pipelines here: – https://azure.microsoft.com/en-us/services/devops/pipelines/



What is Azure DevOps?

In this series of blog posts I cover Azure DevOps, formerly known as Visual Studio Team Services (VSTS).

So what is it and more importantly what can I do with it?

Azure DevOps has been split up into 5 main areas which are: –


 

 

 

 

 

 

 


If you want to get a head start with Azure DevOps and get generate a full Azure DevOps instance you can find out how to do this in 5 easy steps in my blog post on how to get started here:- https://gregorsuttie.com/2018/10/31/how-to-get-started-with-azure-devops/

So lets take each one in turn:-

Azure Pipelines – https://gregorsuttie.com/2018/11/11/azure-pipelines/
Azure Boards – Coming soon…
Azure Repos – Coming soon…
Azure Artifacts – Coming Soon…
Azure Test Plans – Coming Soon…


You can read all the docs on Azure DevOps here: – https://docs.microsoft.com/en-us/azure/devops/?view=vsts and follow their twitter account here: – https://twitter.com/AzureDevOps



How to get started with Azure DevOps

Ok so Azure Devops (formerly Visual Studio Team Services) is out and you have heard good things and want to get started playing around with it.

How would you like to start off with a ready made Azure DevOps template that sets up a lot of the stuff for you and lets you learn how to use it and do whatever you want to it for free?

More info on the solution which we will install below can be found here: – https://github.com/Microsoft/SmartHotel360-Website

Ah what is SmartHotel360 I hear you ask, ok read here: – https://azure.microsoft.com/en-gb/campaigns/smarthotel360/

For instructions on how to setup SmartHotel360 read here:-

I opened this up in Visual Studio 2107 and then built and ran it and you get the full blown website like below: –


In order to get started with AzureDevops follow these simple steps: –

So what are you waiting for go play with AzureDevops for free and learn how to use the amazing functionality that comes with it – enjoy!

Check back soon for much more on Azure DevOps!

 



New Azure Exams – My thoughts on them

I have sat 6 of the Azure Beta exams in the last couple of months and I just wanted to jot down my thoughts on each of the exams which will hopefully help people who are thinking of doing them in the upcoming months.

You can find out a lot of good info on these exams here:-
https://www.microsoft.com/en-us/learning/azure-exams.aspx

I started with the Azure Administrator Beta exams:-

AZ-100 https://www.microsoft.com/en-us/learning/exam-AZ-100.aspx
AZ-101 https://www.microsoft.com/en-us/learning/exam-AZ-101.aspx

The 2 exams above are now no longer in Beta and are essentially live and good to go.

These exams are the best place to get started in my opinion, recommend you start with these if you haven’t already,


Next up I sat the Azure Architect beta exams:-

AZ-300 – https://www.microsoft.com/en-us/learning/exam-AZ-300.aspx
AZ-301 – https://www.microsoft.com/en-us/learning/exam-az-301.aspx

The 2 exams above are still in Beta and wont go live till the start of January 2019.

Note:- There are a few coding questions on this exam, so if you’re an architect that isn’t hands on I recommend you spend some time doing so, otherwise you might feel disappointed/frustrated after sitting the exam.


Next up I sat the Azure Developer beta exams:-

AZ-200 – https://www.microsoft.com/en-us/learning/exam-az-200.aspx
AZ-201 – https://www.microsoft.com/en-us/learning/exam-az-201.aspx

The 2 exams above are still in Beta and wont go live till the start of January 2019.

Note:- These two exams were very tough for me, I am a developer, now manager and not hands on writing code day in and day out and unless you really know Azure from writing code against it, I think you will struggle on these exams.

The AZ-200 is hard but the AZ-201 is really hard in my opinion, even harder when you find a bug in a radio button and you can’t select your answer.


Overall the exams are pretty good, there are some cross over questions from one exam to the other which I wasn’t expecting, but probably makes sense.

Question:- Which exams should I take first?
Answer:- Obviously it depends on your skill set, but I would probably say start with the Administrator exams if your starting out,  many people have already passed the beta and there will be practice tests and useful blog posts already available for this exam. https://gregorsuttie.com/2018/07/18/microsoft-azure-infrastructure-and-deployment-beta-az-100/ – so my answer would be do the Administrator, Architect, Developer exams if your able to do them all.

Question:- Are there any new types of exam questions?
Answer:- Not that I have seen so far.

Question:- Are they hard?
Answer:- Again depends on your experience, Administrator, Architect, Dev is for me going up the scale in how difficult they were for me, but that’s my own personal take on the exams. My favourite exam was the AZ-301 exam.

Question:- Why are you sitting all these exams, are you insane?
Answer:- I want to learn as much Azure as possible, yes I wont pass some of the exams, maybe even not ever, but that’s ok,  it shows me where my knowledge is weak and where I need to go learn more.

Final thoughts:-

I would encourage everyone to get hands on, reading material isn’t going to get you a pass on any of these exams, especially the Developer exams, there is a lot of content and they focus on the newer technologies that are out. I spent a lot of time reading and going over some topics that haven’t appeared in any of the exams, that’s fine and at least I have learned these topics.

I think that rather than being an expert in any particular area my overall Azure skills have increased a fair bit,  I now know which tools to use and why, if not the low-level details that sometimes get asked in the exams.

The longer you wait the more study materials and practice tests will appear

Best of luck to you all!, and let me know how you get on and how you thought the exams went.



Azure DevOps AZ-400 Exam – Study Notes

 

 

Microsoft recently released information around the new Azure DevOps exam: – https://www.microsoft.com/en-us/learning/exam-az-400.aspx

This blog post will cover available learning materials and docs links to information relevant to the exam AZ-400, links to these articles will be updated regularly.

Hopefully this will give you a head start on what you need to learn in order to pass the AZ-400 exam.

 

UPDATE: The following course is the best study resource I have found before I sat and passed this exam: –

These 2 are also very good: –


Introducing Azure DevOps – https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ and https://azure.microsoft.com/en-us/solutions/devops/

And how about some free Azure DevOps labs – https://azuredevopslabs.com/

Checkout Donovan Brown and others demoing off Azure Devops  – https://www.youtube.com/watch?v=FWmcGK714IE

Design a DevOps Strategy (20-25%)
Recommend a migration and consolidation strategy for DevOps tools – Analyze existing artifact (e.g. deployment packages, NuGet) and container repositories
– Analyze existing test management tools
– Analyze existing work management tools
– Recommend migration and integration strategies for artifact repositories, source control, test management, and work management

Azure Test Plans – https://azure.microsoft.com/en-gb/services/devops/test-plans/
Azure Boards – https://docs.microsoft.com/en-us/azure/devops/boards/get-started/what-is-azure-boards?view=vsts&tabs=new-nav
Migrate to Azure DevOps – https://docs.microsoft.com/de-de/azure/devops/articles/migration-overview?view=vsts

Design and implement an Agile work management approach – Identify and recommend project metrics, KPIs, and DevOps measurements (e.g. cycle time, lead time, Azure Kubernetes Service, WIP limit)
– Implement tools and processes to support Agile work management
– Mentor team members on Agile techniques and practices
– Recommend an organization structure that supports scaling Agile practices
– Recommend in-team and cross-team collaboration mechanisms
Implement tools and processes to support Agile work management – https://docs.microsoft.com/en-us/azure/devops/boards/get-started/what-is-azure-boards?view=vsts&tabs=new-nav

Design a quality strategy – Analyze existing quality environment
– Identify and recommend quality metrics
– Recommend a strategy for feature flag lifecycle
– Recommend a strategy for measuring and managing technical debt
– Recommend changes to team structure to optimize quality
– Recommend performance testing strategy

Design a secure development process – Inspect and validate code base for compliance
– Inspect and validate infrastructure for compliance
– Recommend a secure development strategy
– Recommend tools and practices to integrate code security validation (e.g. static code analysis)
– Recommend tools and practices to integrate infrastructure security validation

Getting started with the Secure DevOps Kit for Azure (AzSK) – https://azure.microsoft.com/en-gb/resources/videos/azure-friday-getting-started-with-the-secure-devops-kit-for-azure-azsk/
Use InSpec for compliance automation of your Azure infrastructure – https://docs.microsoft.com/en-us/azure/chef/chef-inspec-overview
Mindset shift to a DevSecOps culture – https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/security-in-devops
Static Code Analyis – https://marketplace.visualstudio.com/items?itemName=Veracode.veracode-vsts-build-extension
Learn how to add continuous security validation to your CI/CD pipeline – https://docs.microsoft.com/en-us/azure/devops/articles/security-validation-cicd-pipeline?view=vsts

Design a tool integration strategy – Design a license management strategy (e.g. VSTS users, concurrent pipelines, test environments, open source software licensing, DevOps tools and services, package management licensing)
– Design a strategy for end-to-end traceability from work items to working software
– Design a strategy for integrating monitoring and feedback to development teams
– Design an authentication and access strategy
– Design a strategy for integrating on-premises and cloud resources


Implement DevOps Development Processes (20-25%)
Design a version control strategy – Recommend branching models
– Recommend version control systems
– Recommend code flow strategy

Git –  https://docs.microsoft.com/en-us/azure/devops/learn/git/what-is-git
Branch policies –  https://docs.microsoft.com/en-gb/azure/devops/repos/git/branch-policies?view=vsts

Implement and integrate source control – Integrate external source control
– Integrate source control into third-party continuous integration and continuous deployment (CI/CD) systems

Implement and manage build infrastructure – Implement private and hosted agents
– Integrate third party build systems
– Recommend strategy for concurrent pipelines
– Manage VSTS pipeline configuration (e.g. agent queues, service endpoints, pools, webhooks)

Pipelines – https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=vsts
Concurrent Jobs – https://docs.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs-vsts?view=vsts

Implement code flow – Implement pull request strategies
– Implement branch and fork strategies
– Configure branch policies

Pull Requests – https://blogs.msdn.microsoft.com/devops/2014/06/10/conduct-a-git-pull-request-on-visual-studio-online/
Branch Policies:-
https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=vsts
https://blogs.msdn.microsoft.com/buckh/2016/03/20/gated-checkin-for-git-using-branch-policies-to-run-a-build-in-vsts-and-tfs/
https://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies-overview?view=vsts

Implement a mobile DevOps strategy – Manage mobile target device sets and distribution groups
– Manage target UI test device sets
– Provision tester devices for deployment
– Create public and private distribution groups

Mobile DevOps – https://channel9.msdn.com/Shows/DevOps-Lab/Real-World-Mobile-DevOps-with-VSTS-and-App-Center
UI Tests – https://docs.microsoft.com/en-us/appcenter/test-cloud/vsts-plugin
Distribution Groups – https://docs.microsoft.com/en-us/appcenter/distribution/groups

Managing application configuration and secrets – Implement a secure and compliant development process
– Implement general (non-secret) configuration data
– Manage secrets, tokens, and certificates
– Implement applications configurations (e.g. Web App, Azure Kubernetes Service, containers)
– Implement secrets management (e.g. Web App, Azure Kubernetes Service, containers, Azure Key Vault)
– Implement tools for managing security and compliance in the pipeline

Secure DevOps Kit for Azure – https://www.microsoft.com/itshowcase/Article/Content/919/Building-cloud-apps-using-the-Secure-DevOps-Kit-for-Azure
Manage secrets, tokens and certs – https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=vsts
Implement applications configurations (e.g. Web App, Azure Kubernetes Service, containers) – https://azuredevopslabs.com/
Implement secrets management – https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/manage-conditional-access?view=vsts
Implement tools for managing security and compliance in the pipeline – https://docs.microsoft.com/en-us/azure/devops/release-notes/2018/sprint-141-update


Implement Continuous Integration (10-15%)
Manage code quality and security policies – Monitor code quality
– Configure build to report on code coverage
– Manage automated test quality
– Manage test suites and categories
– Monitor quality of tests
– Integrate security analysis tools (e.g. SonarQube, WhiteSource Bolt, Open Web Application Security Project)

Monitor Code Quality – https://docs.microsoft.com/en-us/azure/architecture/example-scenario/apps/devops-dotnet-webapp
DevOps Reporting – https://azure.microsoft.com/en-gb/services/devops/reporting/
Automated Testing – https://channel9.msdn.com/Events/Microsoft-Azure/Azure-DevOps-Launch-2018/A104
Test suites and categories – https://www.azuredevopslabs.com/labs/azuredevops/testmanagement/
Integrate security analysis tools – https://docs.microsoft.com/en-us/azure/devops/java/sonarqube?view=vsts

Implement a container build strategy – Create deployable images (e.g. Docker, Azure Container Registry)
– Analyze and integrate Docker multi-stage builds

Container DevOps in Azure – https://channel9.msdn.com/Events/Build/2018/BRK2142
Add a container registry in Azure – https://www.linkedin.com/learning/developing-container-based-applications-with-visual-studio-and-azure/add-a-container-registry-in-azure and https://blogs.msdn.microsoft.com/devops/2017/06/09/deploying-applications-to-azure-container-service/

Implement a build strategy – Design build triggers, tools, integrations, and workflow
– Implement a hybrid build process
– Implement multi-agent builds
– Recommend build tools and configuration
– Set up an automated build workflow

Design build triggers – https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=vsts&tabs=yaml and https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=vsts
Azure Pipelines – https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=vsts
DevOps tool integrations – https://azure.microsoft.com/en-gb/products/devops-tool-integrations/
DevOps overview for Azure DevOps Services – https://docs.microsoft.com/en-us/azure/devops/user-guide/devops-alm-overview?view=vsts


Implement Continuous Delivery (10-15%)
Design a release strategy – Recommend release tools
– Identify and recommend release approvals and gates
– Recommend strategy for measuring quality of release and release process
– Recommend strategy for release notes and documentation
– Select appropriate deployment pattern

Use the visual designer – https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-designer?view=vsts&tabs=new-nav
Use approvals and gates to control your deployment – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/deploy-using-approvals?view=vsts
Release approvals and gates overview – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/?view=vsts
Release deployment control using gates – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/gates?view=vsts

Set up a release management workflow – Automate inspection of health signals for release approvals by using release gates
– Configure automated integration and functional test execution
– Create a release pipeline (e.g. Azure Kubernetes Service, Service Fabric, WebApp)
– Create multi-phase release pipelines
– Integrate secrets with release pipeline
– Provision and configure environments
– Manage and modularize tasks and templates (e.g. task and variable groups)

UI test with Selenium – https://docs.microsoft.com/en-us/azure/devops/pipelines/test/continuous-test-selenium?view=vsts
Run Functional Tests task – https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/run-functional-tests?view=vsts
Set up environments to run continuous test tasks with your build tasks – https://docs.microsoft.com/en-us/azure/devops/pipelines/test/set-up-continuous-test-environments-builds?view=vsts
Run automated tests from test plans – https://docs.microsoft.com/en-us/azure/devops/test/run-automated-tests-from-test-hub?view=vsts
Continuously build, test and deploy to any platform and cloud – https://azure.microsoft.com/en-gb/services/devops/pipelines/
Define your multi-stage continuous deployment (CD) pipeline – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/define-multistage-release-process?view=vsts
Multi-phase builds – VSTS Sprint 123 Update – https://docs.microsoft.com/en-us/azure/devops/release-notes/2017/sep-15-team-services
Release stages, queuing policies, and options – https://docs.microsoft.com/en-us/azure/devops/pipelines/release/environments?view=vsts
Multiple jobs – https://docs.microsoft.com/en-us/azure/devops/pipelines/process/multiple-phases?view=vsts&tabs=yaml
Azure Key Vault task – https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-key-vault?view=vsts
Task and variable groups – https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=vsts&tabs=yaml
Task groups for builds and releases – https://docs.microsoft.com/en-us/azure/devops/pipelines/library/task-groups?view=vsts

Implement an appropriate deployment pattern – Implement blue-green deployments
– Implement canary deployments
– Implement progressive exposure deployments
– Scale a release pipeline to deploy to multiple endpoints (e.g. deployment groups, Azure Kubernetes Service, Service Fabric)

Implement blue-green deployments – https://azure.microsoft.com/en-us/blog/blue-green-deployments-using-azure-traffic-manager/
https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/jenkins/jenkins-aks-blue-green-deployment.md
Implement progressive exposure deployments – https://blogs.msdn.microsoft.com/devops/2018/05/07/release-gates-enable-progressive-exposure-and-phased-deployments/
https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/progressive-experimentation-feature-flags
Explore how to progressively expose your Azure DevOps extension releases in production to validate, before impacting all users – https://docs.microsoft.com/en-us/azure/devops/articles/phase-rollout-with-rings?view=vsts

 


Implement Dependency Management (5-10%)
Design a dependency management strategy – Recommend artifact management tools and practices
– Abstract common packages to enable sharing and reuse
– Inspect codebase to identify code dependencies that can be converted to packages
– Identify and recommend standardized package types and versions across the solution
– Refactor existing build pipelines to implement version strategy that publishes packages

Getting started with package management using Azure Artifacts – https://www.youtube.com/watch?v=b3BPkyikvNM
Azure Artifacts – https://azure.microsoft.com/en-gb/services/devops/artifacts/
Secure and share packages using feed permissions – https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=new-nav
Collaborate more and build faster with packages – https://docs.microsoft.com/en-us/azure/devops/artifacts/collaborate-with-packages?view=vsts
Versioning – https://marketplace.visualstudio.com/items?itemName=gittools.gitversion

Manage security and compliance – Inspect open source software packages for security and license compliance to align with corporate standards (e.g. GPLv3)
– Configure build pipeline to access package security and license rating (e.g. Black Duck, White Source)
– Configure secure access to package feeds

Configure build pipeline to access package security and license rating (e.g. Black Duck, White Source) – https://marketplace.visualstudio.com/items?itemName=black-duck-software.hub-tfs
Configure secure access to package feeds – https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/feed-permissions?view=vsts&tabs=new-nav


Implement Application Infrastructure (15-20%)
Design an infrastructure and configuration management strategy – Analyze existing and future hosting infrastructure
– Analyze existing Infrastructure as Code technologies
– Design a strategy for managing technical debt on templates
– Design a strategy for using transient infrastructure for parts of a delivery lifecycle
– Design a strategy to mitigate infrastructure state drift

Analyze existing Infrastructure as Code technologies – https://docs.microsoft.com/en-us/azure/devops/learn/what-is-infrastructure-as-code
Design a strategy for managing technical debt on templates – https://www.azuredevopslabs.com/labs/azuredevops/sonarcloud/
Design a strategy for using transient infrastructure for parts of a delivery lifecycle – https://docs.microsoft.com/en-us/dotnet/standard/modernize-with-azure-and-containers/modernize-existing-apps-to-cloud-optimized/reasons-to-modernize-existing-net-apps-to-cloud-optimized-applications
Design a strategy to mitigate infrastructure state drift – https://blogs.msdn.microsoft.com/tomholl/2017/10/16/detecting-drift-between-arm-templates-and-azure-resource-groups/

Implement Infrastructure as Code – Create nested resource templates
– Manage secrets in resource templates
– Provision Azure resources
– Recommend an Infrastructure as Code (IaC) strategy
– Recommend appropriate technologies for configuration management

Create nested resource templates – https://samcogan.com/modularisation-and-re-use-with-nested-arm-templates/
Manage secrets in resource templates – https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-parameter
Provision Azure resources – https://blogs.msdn.microsoft.com/azuredev/2017/02/11/iac-on-azure-an-introduction-of-infrastructure-as-code-iac-with-azure-resource-manager-arm-template/
Recommend an Infrastructure as Code (IaC) strategy – https://www.youtube.com/watch?v=eFo9cdxG9Hs

Manage Azure Kubernetes Service infrastructure – Provision Azure Kubernetes Service (e.g. using ARM templates, CLI)
– Create deployment file for publishing to Azure Kubernetes Service (e.g. kubectl, Helm)
– Develop a scaling plan

Provision Azure Kubernetes Service (e.g. using ARM templates, CLI) – https://www.azuredevopslabs.com/labs/vstsextend/kubernetes/
Create deployment file for publishing to Azure Kubernetes Service (e.g. kubectl, Helm) –  https://docs.microsoft.com/en-us/azure/devops-project/azure-devops-project-aks
Develop a scaling plan – https://docs.microsoft.com/en-us/azure/devops/organizations/projects/about-projects?view=vsts&tabs=new-nav

Implement infrastructure compliance and security – Implement compliance and security scanning
– Prevent drift by using configuration management tools
– Set up an automated pipeline to inspect security and compliance

Implement compliance and security scanning – https://docs.microsoft.com/en-us/azure/devops/articles/team-services-security-whitepaper?view=vsts
Prevent drift by using configuration management tools – https://docs.microsoft.com/en-us/azure/automation/tutorial-configure-servers-desired-state


Implement Continuous Feedback (10-15%)
Recommend and design system feedback mechanisms – Design practices to measure end-user satisfaction (e.g. Send a Smile, app analytics)
– Design processes to capture and analyze user feedback from external sources (e.g. Twitter, Reddit, Help Desk)
– Design routing for client application crash report data (e.g. HockeyApp)
– Recommend monitoring tools and technologies
– Recommend system and feature usage tracking tools

Design processes to capture and analyze user feedback from external sources – https://docs.microsoft.com/en-us/azure/devops/project/feedback/get-feedback?view=vsts
https://docs.microsoft.com/en-us/azure/devops/test/provide-stakeholder-feedback?view=vsts
Design routing for client application crash report data (e.g. HockeyApp) – https://hockeyapp.net/features/crashreports/
https://azure.microsoft.com/en-gb/services/hockeyapp/
Recommend monitoring tools and technologies – https://azure.microsoft.com/en-gb/product-categories/management-tools/

Implement process for routing system feedback to development teams – Configure crash report integration for client applications
– Develop monitoring and status dashboards
– Implement routing for client application crash report data (e.g. HockeyApp)
– Implement tools to track system usage, feature usage, and flow
– Integrate and configure ticketing systems with development team’s work management system (e.g. IT Service Management connector, ServiceNow Cloud Management, App Insights work items)

Configure crash report integration for client applications –
Develop monitoring and status dashboards – https://azure.microsoft.com/en-us/services/devops/reporting/
Implement routing for client application crash report data (e.g. HockeyApp) – https://azure.microsoft.com/en-gb/services/hockeyapp/

Optimize feedback mechanisms – Analyze alerts to establish a baseline
– Analyze telemetry to establish a baseline
– Perform live site reviews and capture feedback for system outages
– Perform ongoing tuning to reduce meaningless or non-actionable alerts

Analyze alerts to establish a baseline –
Perform live site reviews and capture feedback for system outages – https://docs.microsoft.com/en-us/azure/devops/learn/devops-at-microsoft/live-site-culture-and-reliability