Module 3d - Describe Core Solution and Mgmt Tools - Best Tools to Build Better Solutions Flashcards
What is the CI/CD Toolchain?
The combination of software tools that aid in delivery, development and management of applications throughout the app’s development lifecycle.
The output of one ‘tool’ in the ‘chain’ is the input to the next ‘tool’ in the ‘chain’ (sounds just like Azure DevOps Pipelines?!)
What are the three DevOps solutions offered in Azure for Build Mgmt? (Hint: High level)
- Azure DevOps Services
- GitHub/GitHub Actions
- Azure DevTest Labs
What’s included with Azure DevOps (ADO)?
- Azure Repos (code repositories)
- Azure Boards (Sprints, backlogs, etc. Kanban, reporting)
- Azure Pipelines (Build and Release Pipelines [CID/CD])
- Azure Artifacts (results of your Pipelines, like nuget packages, compiled source code)
- Azure Test Plans (testing tool for your CI/CD pipelines)
What’s GitHub and GitHub Actions?
GitHub is a hosted version of Git, which is a decentralized source code management tool (Source Control). Through GitHub you can:
- do code reviews
- merge code up to your master branch
- build and use Kanban boards
- build out CI/CD pipelines
- document through wiki
- run GitHub on cloud or on-prem
GitHub Actions enables workflow automation with triggers, such as the CI/CD Toolchain.
You can also accept community contributions to improve your code examples, get feedback and bug reports, etc.
Is it possible to use Azure DevOps with GitHub?
Yes. You can connect your Azure Solutions (boards and such) to GitHub Repositories, as well as report on them through Azure
What is Azure DevTest Labs?
Automation for managing the process of building, setting up and tearing down Virtual Machines that contain builds of your software projects. Basically build preconfigured environments for any version of your software and test it in that environment.
Not limited to just VMs!! Anything you can deploy via ARM Templates can be provisioned through DevTest Labs
When you’re an individual developer and want a light-weight tool for contributing to open source code, which do you choose; GitHub or Azure DevOps?
GitHub
When you’re an enterprise developer and need heavier project management and planning tools with access control, which do you choose; GitHub or Azure DevOps?
Azure DevOps
When you need to automate and manage test-lab creation, what build solution do you use?
Azure DevTest Labs. You could automate provisioning a new lab via Azure Pipelines/Github Actions
When you need to build open-source software, what build solution do you use?
Github and Github Actions since GitHub has such a wide adoption, acceptance and world-wide visibility within the Open-Source community. Azure DevOps is a bit closed-source, though you could technically build and deploy with it
When you require source code management and DevOps tools with permissions that allow for higher granularity, what build solution do you use?
Azure DevOps. Permissions can be set on Pipelines, Releases, etc.
To give you an idea of the individual permissions available for Pipelines:
Administer build permissions - Can change any of the other permissions listed here
Queue builds - Can queue new builds
Delete build pipeline - Can delete build pipeline(s)
Delete builds - Can delete builds for a pipeline (retained in the Deleted tab for a period of time before they are destroyed)
Destroy builds - Can delete builds from the Deleted tab.
You can even hook up Azure DevOps to Azure Active Directory~
Why not GitHub? Because GitHub works off a simple read/write permissions model per feature.
When you require source code management and DevOps tools with sophisticated Project Management capabilities and report, what build solution do you use?
Azure DevOps. Highly customizable, metadata capture per work item, etc. You use this at Ceridian so you know how flexible and scalable it is for Project Management and Reporting
Not not GitHub? Git hub has Issues with tagging, work items, and Kanban, but it’s just not as expansive
When you require source code management and DevOps tools with the ability to integrate with third-party tools, what build solution do you use?
Either Azure DevOps or GitHub. Most third-party vendors that want to integrate into CI/CD solutions create APIs or hooks built for maximum compatibility
Use Case: When you need to give managers and executives high-level reporting (burndown charts, tracking Epic progress, or custom information), and also require limited data availability/visibility for external resources, which services should you choose?
Azure DevOps for project management, reporting, customizable reporting, etc. Also for customized permissions for external resources.
Use Case: Though you have a closed-source application/API, you want to document usage of it by providing example code and make it easily available. Which service should you choose?
GitHub. Since it’s widely adopted with world-wide visibility. Code can be instantly shared on and downloaded from the internet. You can also accept community contributions to improve your code examples, get feedback and bug reports, etc.
Why not Azure? Because feedback capabilities are less accessible when compared to GitHub