Resources questions Part 1 - VishalPatangay/My-devops-repo GitHub Wiki

Design a devops Strategy

  1. Technical debt can be reduced by reducing the code complexity.

https://dzone.com/articles/fight-through-the-pain-how-to-deal-with-technical the term technical debt refers to the cumulative result of postponing work and cutting corners in software development.

  1. Microsoft Teams helps as a Communication channel - ability to isolate members of different Teams, Avaialble on windows, mac, IOS, Ability to add external contractors, integrate directly with devops. Slack also is the right option.

  2. If your project users TFS and you want to migrate to Azure Devops preserving the dates of the TFS change sets, preserve the change dates of the work items, minimize migration effort, Migrate TFS artifacts. On the TFS server you will: Upgrade TFS to the most recent RTM release - so that it is as close to the Azure devops version as possible. and use the TFS database import service in Azure.

  3. YOu need to increase the security of your teams development process, we use

    1. Static code analysis for Continuous Integration
    1. Threat Modeling for pull requests
    1. Penetration testing for Continous Delivery
  1. During code review if you see many issues with code like unused variables, empty catch blocks, to recommend a better solution In Maven build task, select Run PMD. PMD is a source code analyser used to find unused variables, empty catch blocks, unnecessary object creation etc.

  2. Which project metrics will you use in azure dashboards: Leadtime: The elapsed time from the creation of the work items to their completion. Cycle Time: The elapsed time to complete work item once they are active. Remaining Work: Burn Down

  3. When developers introduce open source libraries it may cause an issue with the licenses, how to detect any such anamolies in a build pipeline Use Whitesource Bolt. This is a open source security management solution designed specifically for azure devops. https://www.azuredevopslabs.com/labs/vstsextend/whitesource/

  4. If you have a bitbucket for Git based source control and is protected by firewall which blocks Internet Traffic, you plan to have azure devops for projects. How do you integrate bit bucket and azure devops? A self hosted agent and External Git connection is required.

Ref: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git?view=azure-devops

  1. To make a custom package available to all the developers centrally managed and is with the latest version. Solution: Publish the package to the feed - We can publish, pack and push the built project to our Nuget project.

Create a new feed - By using NuGet package feed with in devops, u will be able to distribute your packages in your organization with ease.

Add the package URL to NuGet package manager - Consume your private Nuget Feed - Go to packages area in Axzure devops - select your feed and hit "Connect your feed". https://medium.com/medialesson/get-started-with-private-nuget-feeds-in-azure-devops-8c7b5f022a68

  1. You store source code in a Git repository in Azure devops. If you are using a third party Continuous Integration tool to manage builds then Azure devops authorises the toll authentication using Personal Access Token(PAT). Using PAT you can connect to Azure without using Username and password.

https://docs.microsoft.com/en-us/azure/devops/repos/git/auth-overview?view=azure-devops

  1. If you have to manage the user management process(ever-increasing team needs) except for Procurement of Licenses, most of the other tasks can be automated.

  2. You are developing Multi Tier application and using Azure web services as front end and Azure SQL Server as backend. The application used Azure functions to write to Azure Storage. YOu need to notify Azure devops team when the frontend fails to send a 200 message. what feature do we use? Application Map in Azure Application insights helps with this. Application map helps you spot performance bottlenecks across all components of your application. Each node in the app represents application component and has health KPI and alert status.

https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-map?tabs=net

  1. You use Azure artifacts to host NuGet Packages, if you have to make one of the NuGet packages available to an anonymous user outside the organization Then create a new feed for the package. You can use to organize and control access to your packages. Packages you have in Azure Artifacts are stored in a Feed. Setting permissions on a feed allows you to share your packages with people. Feeds have 4 levels of access: Owner, Contributors, Collaborators, and Readers.

  2. Your company uses Git for complex app called App1. You plan to add new functionality to App1. YOu need to design a branching model for new functionality. Use Branch Lifetime as Short Lived. Branch Type: Feature, Feature branches are used when developing a new feature. When starting development, the deployment in which this feature may be released may not be known. No matter when the feature branch will be released it will be merged with the master branch.

  3. When you have 4 teams of 15 members. YOu need to structure the work of the teams so that each own respective work and reach common goal. Which part of taxonomy should you enable the team to perform autonomously. Features and Tasks. Feature typically represents shippable component of a software. User stories and Tasks are used to track work.

  4. How do you clone the repository from Git to Azure Devops project. Use the Import Feature in Git Repository.

To import a new repo into Azure Devops: Select Repos > Files> Select Import Repository. If the source repo is publicly available you can use the clone URL here to import.

  1. HOw do you restore a NUGet Package automatically. What should the project use to automate authentication? Azure Artifacts credential Provider.

Azure artifacts Credential provider automates the acquisition of credentials needed to restore NuGet Packages as part of the .NET development workflow. The credential provider will automatically acquire and securely store a token on behalf of NuGet package.

  1. Kanban boards are used for sprint planning. First to visualise the flow of work.

  2. Use Scrum when your project used Project backlog items(PBIs) to track the work. Use Agile when your team agile planning methods, including scrum, tracks development and testing activities separately. CMMI: Formal project methods including requirements, change requests, risks and reviews.