Version Control Pipeline Flashcards

(48 cards)

1
Q

A repository model is…

A

A model for storing data in a repository

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

A monorepo is a repository model meaning…

A

We have one single repository for all microservices, and when one commits, all of them enter production

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

A multirepo is a repository model meaning…

A

Each microservice has one repository, meaning that when one commits, only that microservice enters production

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

Trunk-based development is a development process that entails…

A

Developers working on a single main branch, wherein if any branches are made, they are merged into the main branch in a matter of minutes

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

Feature-based development is a development process that entails…

A

Developers work on new long-lived branches based on the needs of the project, being merged back into the main branch weeks or even months later

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

An essential practice of version control is to run commit tests locally - this means…

A

We should refresh the local copy of the project before initiating a local build that runs the commit tests

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

An essential practice of version control is to wait for commit tests - this means…

A

We should monitor the build progress attentively until it has completed

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

An essential practice of version control is to avoid commits on a broken build - this means…

A

We should avoid committing to an already broken build

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

An essential practice of version control is to never go home on a broken build - this means…

A

We should never leave a broken build broken

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

An essential practice of version control is to be prepared to revert - this means…

A

We should be prepared to go back on our changes

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

An essential practice of version control is to avoid commenting out tests - this means…

A

We should avoid commenting out tests so that we are sure we are testing all possible measures

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

An essential practice of version control is to take responsibility for breakages - this means…

A

If you commit, and the tests you wrote pass, but others break, it is your responsibility to fix it

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

The three benefits a version control system provides are…

A

The ability to step back to safety, share changes easily and to store changes somewhere safe

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

Multi-repos cannot fulfil all three version control benefits by itself. To solve this, we should…

A

Have fixed, well-understood APIs and flexible, highly compatible APIs.

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

Continuous Integration is the practice of…

A

Integrating new code with the rest of the application

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

At the end of the continuous integration process, we always produce a…

A

Build artifact

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

The delivery of a product is typically separated into four releases…

A

Alpha, beta, release candidate and release

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

The delivery of a feature is typically separated into three environments…

A

Dev, staging and production

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

The development environment is where…

A

The work of a single development team is put together throughout a sprint

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

The staging environment is built where…

A

The work of multiple development teams is put together, and is updated at the end of a sprint

21
Q

The production environment is built where…

A

The work of multiple development teams becomes available to customers, and is updated whenever the business deems is right

22
Q

Assuming a traditional waterfall development cycle, shift-left testing is where…

A

We move testing to earlier in the cycle, reducing bugs and increasing code quality

23
Q

The hierarchy of testing is often called a test pyramid, and describes tests carried out in development, such as…

A

Unit tests, service tests and end-to-end tests

24
Q

Unit tests are run to ensure…

A

Individual functions work properly

25
Service tests are run to ensure...
Services work properly
26
End-to-end tests are run to ensure...
The application as a whole works properly
27
Brittle tests are tests that fail...
Because another service fails
28
Flaky tests are tests that fail...
Sometimes, because another service fails
29
The normalisation of deviance is the notion that...
Over time, we become so accustomed to things being wrong that we start to accept them as normal - "oh, it's always been like that"
30
Build indicators are used in testing to...
Display the current status of the continuous integration pipeline, showing green when successful, and red when it fails
31
Integration hell is a term used to describe...
When development brings together the pieces of a system far too late
32
We should always run commit tests locally because...
The deployment pipeline is a shared resource that shouldn't be blocked by easily-testable-in-local failures
33
We should always fix or revert failures within 10 minutes because...
Any longer and we risk blocking useful progress by others
34
A build sin is a term used to describe...
Errors in your code that someone else notices before you
35
Continuous Delivery is the practice of...
Moving a software product from a source code repository through to the staging environment.
36
One of the principles of continuous delivery is to create a repeatable process, which means...
To create a process that quickly becomes routine
37
One of the principles of continuous delivery is to automate almost everything, which means...
That everything should be automated, ensuring steps are carried out correctly
38
One of the principles of continuous delivery is to use version control for everything, which means...
That it should be possible for any team member to build any version of the application on-demand
39
One of the principles of continuous delivery is 'if it hurts, do it more frequently', which means...
If the build is painful, do it on every commit, as with any activity, one improves with practice
40
One of the principles of continuous delivery is to build quality in, which means...
Defects should be fixed the moment they are found, helping to reduce tech debt
41
One of the principles of continuous delivery is that 'done means released', which means...
A feature is only considered 'done' once it is in production, meaning that things are either done, or they are not
42
One of the principles of continuous delivery is that 'everyone is responsible', which means...
A team succeeds or fails as a team, not as individuals, to avoid infighting
43
One of the principles of continuous delivery is continuous improvement, which means...
Teams should reflect on what has gone well or badly, and on what to improve
44
A/B testing is a method of performing testing in production that entails...
A small percentage of customer traffic is sent to a new, working production interface, and if after a while some customers seem unhappy, all customer traffic is sent to the old interface
45
Canary testing is a method of performing testing in production that entails...
A small percentage of traffic is sent to a new, possibly working version in production, and if customers seem unhappy, all customer traffic is sent to the old interface
46
Blue/green testing is a method of performing testing in production that entails...
The production environment is exchanged with staging, and if after a while some customers seem unhappy, the change is reversed, otherwise it remains permanent
47
Software should always be in the condition of...
Production-ready or releasable
48
Testing should be performed...
All of the time, not just once software has been developed