Version Control Pipeline Flashcards
(48 cards)
A repository model is…
A model for storing data in a repository
A monorepo is a repository model meaning…
We have one single repository for all microservices, and when one commits, all of them enter production
A multirepo is a repository model meaning…
Each microservice has one repository, meaning that when one commits, only that microservice enters production
Trunk-based development is a development process that entails…
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
Feature-based development is a development process that entails…
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
An essential practice of version control is to run commit tests locally - this means…
We should refresh the local copy of the project before initiating a local build that runs the commit tests
An essential practice of version control is to wait for commit tests - this means…
We should monitor the build progress attentively until it has completed
An essential practice of version control is to avoid commits on a broken build - this means…
We should avoid committing to an already broken build
An essential practice of version control is to never go home on a broken build - this means…
We should never leave a broken build broken
An essential practice of version control is to be prepared to revert - this means…
We should be prepared to go back on our changes
An essential practice of version control is to avoid commenting out tests - this means…
We should avoid commenting out tests so that we are sure we are testing all possible measures
An essential practice of version control is to take responsibility for breakages - this means…
If you commit, and the tests you wrote pass, but others break, it is your responsibility to fix it
The three benefits a version control system provides are…
The ability to step back to safety, share changes easily and to store changes somewhere safe
Multi-repos cannot fulfil all three version control benefits by itself. To solve this, we should…
Have fixed, well-understood APIs and flexible, highly compatible APIs.
Continuous Integration is the practice of…
Integrating new code with the rest of the application
At the end of the continuous integration process, we always produce a…
Build artifact
The delivery of a product is typically separated into four releases…
Alpha, beta, release candidate and release
The delivery of a feature is typically separated into three environments…
Dev, staging and production
The development environment is where…
The work of a single development team is put together throughout a sprint
The staging environment is built where…
The work of multiple development teams is put together, and is updated at the end of a sprint
The production environment is built where…
The work of multiple development teams becomes available to customers, and is updated whenever the business deems is right
Assuming a traditional waterfall development cycle, shift-left testing is where…
We move testing to earlier in the cycle, reducing bugs and increasing code quality
The hierarchy of testing is often called a test pyramid, and describes tests carried out in development, such as…
Unit tests, service tests and end-to-end tests
Unit tests are run to ensure…
Individual functions work properly