AZ-400 Chapter 4-6 Flashcards

1
Q

What is centralized source control?

A

Where only the server has the full history and set of branches.
Users ‘check out’ the latest set of changes only
Allows for tight security control

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

What is decentralized source control?

A

Where each user has a full copy and the history
Everything can live on a sever but it’s cloned to your local machine so no need to be connected actively
Harder to limit security on this type of source control

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

How do you store large files in git?

A

Using LFS (large file storage). It stores a pointer to the real file
use ‘git lfs install’ to install it
then ‘git lfs track “*.mp4” ‘ to use it for all mp4 files

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

Git command to add a new remote?

A

git remote add myNewRemote https://pathToMyNewRemote

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

What are the 3 branching strategies?

A

GitFlow, GitHub Flow, and Release Flow

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

What is Github Flow?

A

There’s 1 master branch always in a deployable state
You pull a new branch down when you start work on a feature

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

What is GitFlow?

A

The most elaborate of the schemes
Have a master and a develop branch
Features are then branched off of develop
Features merge back to develop, then a release branch is made
When release branch is cleared, it’s merged back to master

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

What is Release Flow?

A

There is a master branch
Features are branched off of here and then merged back to master
However master is never deployed
A new release branch is made for each deployment
This ensures theres a snapshot of each release

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

What is branching by abstraction?

A

Essentially maintaining 2 copies of the code within the repo

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

What are the types of merge commit?

A

Merge commit - just like a normal merge. You can see both sources
Squash commit - combine all individual comments from source and put it into one commit. Keeps log looking clean
Rebase - pushes your local changes out. Brings in newer changes from the master, then puts your changes back in

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

What’s a monolithic repo?

A

All projects and apps in one repo
Pros: Easy code reuse, changes across apps can be done in one commit
Cons: very very large, plus tight coupling between apps

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

What are some things you can secure with branch policies?

A

Set min # of reviewers
Limit merge types
Config build validation (and disallow merging if failed)
Call other API’s for validation

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

What is Continuous Integration?

A

Integration of your changes with others changes, which when tested combined, still work.
Integration is ideally once per day
Works in conjunction with static analysis/unit testing

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

What are the 4 pillars of CI?

A

Version Control
Package Management
CI system (Pipelines)
Automated Build

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

What are examples of agentless pipeline tasks?

A

Waiting for manual approval
Inserting a delay
Calling a REST service

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

What are pipeline variables and variable groups?

A

Variables store things like passwords, keys, or values
They can be locked and encrypted. Can link to Azure Key Vault
Use variable with syntax $(varName)
Variable groups are under the Pipeline / Library. They can’t be set a queue time. They can be shared across pipelines

17
Q

Pull requests and CI

A

You can have a CI build run every time a change or pull request is done. You can also deny the pull is the build fails
You can set an expiration for how long the clean build is valid

18
Q

What are YAML pipelines?

A

Pipelines run via a YAML config file
They don’t have to be connected to a source control task
Implicitly runs as one job
2 advantages: the file is stored with the codebase, available in every branch so it can be tailored to the branch

19
Q

What’s the basic structure of a YAML file?

A

Trigger - what starts the build
Steps - pieces to be run. Contains tasks and inputs
Can include jobs too. Jobs then contain steps
Order is ensured by using ‘dependsOn’ or condition logic

20
Q

What are agent pools?

A

built-in agent pools: managed by Microsoft, you can’t install extra stuff
private agent pools: defined by you on your own servers. You install the agent runtime. Allows for cost optimization, extra software and whitelisting

21
Q

Continuous deployment versus continuous delivery

A

Continuous deployment - artifacts are continuously validated and ready to be deployed
Continuous delivery - every version deployed passes all tests and deployed automatically

22
Q

What are deployment groups?

A

Every server the app will deploy to has an Agent installed on it. These boxes are then put in a deployment group. Tasks for this run on those machines, not on the devops agent

23
Q

What are blue-green deployments?

A

New version of the app deployed never deployed to live PROD
New version is deployed to a parallel PROD environment, then if it looks good, a proxy switches traffic to the new box

24
Q

What are immutable servers?

A

When a new version of the app is ready, a entirely new VM is brought up, and the old VM turned off. The old server is kept for a grace period, then destroyed

25
Q

What is progressive exposure?

A

Deployment strategy where users are slowly switched to the new code version over time

26
Q

What are canary deployments?

A

A progressive exposure tactic where only a small subset of users are sent to the new app version. If those users go well, the rest of users can be switched

27
Q

What are ring based deployments?

A

Multiple PROD environments exist and the servers are slowly switched to the new code version. Each server only serves part of the total user base, switching groups at a time. Used sometimes for global software

28
Q

What are feature flags?

A

A way to slowly expose new features.
The code has if/else logic and a database or setting file for which flags are on
Flags should be removed once the code is found to be working
Downside is there are more complex code paths, and more testing paths

29
Q

How to deploy mobile apps?

A

Use the VS App Center
You need an app definition for each OS you deploy to (iOS, Microsoft, Android)
You can use distribution groups to control test users
Can integrate with Pipelines for end to end traceability

30
Q

How to automate release notes?

A

Download Azure Release Notes Generator from GitHub
This will pull all work items and commits
Then generate a markdown file