Design and implement build and release pipelines Flashcards

1
Q

What percent of the total exam questions are dedicated to this subject?

A

40% to 45 %

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a summary of the various parts of the build automation flow in Azure pipelines?

A
  • A Trigger triggers a pipeline
  • Pipeline consists of stages
  • Each stage is executed as a job on an agent once all of the jobs required upstream jobs are finished
  • A job/stage is a sequence of steps which can be custom scripts or Azure DevOps custom tasks like ‘Publish Build Artifact’
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How can external tools be integrated with the build pipeline?

A

When the needed functionality is not part of the native set of tasks, the visual studio marketplace provides access to many 3rd party tasks. In the event that your need still isn’t covered, custom tasks and extensions can be developed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How and why would quality gates be a configured?

A

Quality gates allow us to define a of minimum criteria which must be met before we deploy. These criteria may be that a specific number or specific people have approved the code, that any issues related to the it are resolved, that a security scan on the code has completed successfully, that the tests have ran successfully, that the network meets specific conditions (speed, connectivity, stability etc.).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What should be considered when designing a testing strategy?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can an Azure DevOps pipeline trigger another pipeline?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the recommended package management tools when working with Azure DevOps?

A

GitHub Packages and Azure Artifacts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the main features of Artifact Feeds?

A
  1. Manage your packages structure (groups, permissions etc.)
  2. Enable your packages to downloaded from everywhere by anyone with a public feed.
  3. Enable subsets of your packages to be available to different configured groups with feed views
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the versioning nomenclature recommended?

A

Semantic versioning or calendar versioning

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the deployment automation solutions offered by Azure DevOps?

A

Using GitHub actions as a trigger for an Azure pipeline or simply A-Z Azure pipeline.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the primary terms associated with ‘build agent infrastructure’?

A
  • Build agents
  • Agent pools
  • Microsoft-hosted agents
  • Self-hosted agents
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are standard specifications of a Microsoft-hosted agent?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the different build triggers and build trigger rules?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How are build pipelines defined?

A

Principally using YAML files or the designerinterface.

Designer is being phased out. Focus on YAML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What does a job execution order including parallelism and multi-stage look like?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Can Microsoft hosted agents access non public endpoints?

A

Probably not. If you need your agents to access internal services which are controlled by network and authentication, you will probably need to configure on-prem agents which can access the internal services and connect them to an Azure agent pool so that they are usable agents for job being run on AzureDevOps.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the purpose of grouping agents in ‘agent pools’?

A

All agents in a particular agent pool are generally part of a category which can execute jobs of a similar nature. You could have a linux-agent-pool and a windows-agent-pool or maybe split by release configuration or even just the product being built. Jobs are given an agent pool as an input so all agents in that pool should be able to execute the job in question.

18
Q

When it comes to self hosted build agents, what is the difference between ‘interactive mode’ and ‘Service mode’?

A

Interactive procresses are usually easier to debug if necessary. Service mode usually means that it is ran as a background process and may not provide the possibility to display a UI.

19
Q

What are the mechanisms availble to make build pipeline logic reusable?

A
  • Separate a set of actions into a semarate yml file and invoke as aften as needed
  • Using the designer interface, create task groups and then reference it when needed in any build pipeline
  • Use variable groups to hold the variables which are then parameters to be used when a repeatable block is re-used
20
Q

What is the difference between designing release gates using the designer UI and in YAML files?

A

Porting the designer interface features to yml required a slight difference in the implementation. YAML files require the use of environments (when using the designer UI the environment is known from your location within the url tree).

The environment is where you implement your criteria for the quality gate such as number of approvals.

21
Q

What are the available deployment slot options?

A
  1. Run Once - run deployment a single time
  2. Rolling - Run this deployment on each of the targets
  3. Canary - Deploy in parallel but manage the traffic (let a little traffic in leak in to those environments)
22
Q

What is a deployment slot?

A

Deployment slots are live apps with their own hostnames. App content and configuration elements can be swapped between two deployment slots, including the production slot.

23
Q

How to define an order of execution in a build pipeline?

A

Using DependsOn on Azure pipelines or needs on Github actions.

24
Q

What is a blue green deployment strategy?

A

Deploy to a new environment and use a load balancer to slowly send traffic to the new deployment.

25
Q

What is a hotfix patch

A

A hotfix is an urgent fix to an issuie in the currently released software. Remember that hotfixes from the hotfix branch will need merged in to the main branch at some point.

26
Q

In what fom are load balancers available in Azure DevOps?

A
  • Azure Traffic Manager
  • Azure Web Apps
27
Q

What are the necessary steps to include in any automation which updates an application?

A
28
Q

What is the purpose of the feature flags within Feature Manager?

A

Feature flags wrap features of an application in a kind of if statement which enables it or disables it based on the feature flag. This is useful to be able to push new features to the main branch but avoid that those features are available to the end user.

This is similar to the idea of splitting a feature MR in to two pieces where one adds the functionality and the other a boolean configuration option turning it on or off.

29
Q

Describe the high level application deployment process

A
30
Q
A
31
Q

What are bicep and ARM templates?

A

They are both syntax to describe Azure infrastructure as coe (IaC).
Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. It is being favoured over ARM templates which do exactly the same thing but somewhat cleaner. Both are still used.

32
Q

What is the recommended tool to manage configuration states over time?

A

Azure Automation State Configuration

Can be used as a reference for the state of an agent or application.

https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview

33
Q

What does the acronym DSC stand for?

A

Desired State Configuration

34
Q

How can you deploy infrastructure as part of a build pipeline?

A

Essentially just by having the bicep or ARM file in a version control system and linking a pipeline to the specific project in that version control system. Using Starter Pipeline type.

It is important for the exam to have experience in this process.

35
Q

What are some best practices for writing IaC?

A

Test and lint your code. Azure Resource Manager (ARM) template test toolkit verifies that your template follows best practices.
The bicep liner does the same thing but also checks the syntax of the code as well as best practices for format.

36
Q

If you have a set of permanent hosts, what is the best desired state solution?

A

If the infrastructure is already deployed and permanent, the Azure Automation State Configration solution is probably the best one. ARM and bicep feasible but their usecase is better suited to managing infeastructure it deployed itself and there would be some unecessary hardcoding of resources to make ARM or bicep aware of their existence.

37
Q

What are the principal metrics used to monitor the health of a build pipeline?

A
  • Pipeline pass rate
  • Test failues
  • Pipeline duration
38
Q

Which strategies can be used to optimize the build pipeline

A
  • Push built artifacts to Azure artifacts and fetch from there directly rather than rebuilding every time
  • Use native pipeline cashing (signalled in yml instructions)
39
Q

What is the purpose of Retention Policies?

A

They let you configure how long anything related to a build is kept. It’s separated in to retention policies Pipeline, Release and Test and have several sub configurations for different parts of the product of their runs.

40
Q

When would choosing pipeline caching be preferable over choosing Azure Artifacts when optimising pipeline run times?

A

Azure Artifacts manages the whole lifecycle of a product with versions, permissions control on groups of users or individual users, views on Artifacts etc.

In an instance where the only re-use of a built artifact or value is within the same pipeline and not from other pipelines or other people at different times in the futre, pipeline caching is enough.

41
Q

What’s the difference between a Blue Green and a Canary deployment strategy?

A
  1. Canary Deployment: In this strategy, you deploy the new version of your application to a small subset of your environment to test it, while the rest of the environment continues to run the current version of your application. If the new version works as expected in the canary environment, you can gradually roll it out to the rest of the environment. The goal is to minimize the impact of any potential issues by limiting the exposure to a small subset of users.
  2. Blue-Green Deployment: This strategy involves running two identical production environments, known as Blue and Green. At any given time, only one of these environments is live, with the live environment serving all production traffic. For example, if Blue is currently live, you deploy the new version of your application to Green. You can then test the new version in Green, which is not affecting live production traffic. Once you are satisfied that the new version works as expected, you switch the router so all incoming requests now go to Green instead of Blue. The advantage is that if something unexpected happens with your new version in Green, you can immediately switch back to Blue, minimizing downtime.

*In summary, both strategies aim to reduce risk during deployment, but t