Lecture 2 Flashcards
What are the six capabilities of DevOps? SMURFS
Security, Maintainability, Usability, Reliability, Flexibility, Scalability
What is VCS?
Centralised Version Control System: using a central server to store all files, changes are made directly the the repository, all versions are saved
What is distributed VCS?
Moving from a client-server model to a peer-to-peer approach, every programmer has a local copy and can update these with changes from the central repository
What is an example of a distributed VCS tool?
Git
What is a branching strategy?
The strategy software developers use when writing and merging code when using a VCS
What are the advantages of branching strategies?
-Enhance productivity and enable parallel development
-Map a clear path through production and organise new releases
-Maintain bug-free code by fixing issues faster
What are the commonly used branches of the GitFlow branching strategy?
-A Master/Main branch
-A Development branch
-A Features branch
-A Hotfix branch, for new bugs and errors
What is TBD?
Trunk-Based Development is, unlike GitFlow, when no branches are used; instead all programmers merge their changes onto the “trunk” once a day. This trunk should be ready to go into development at any time.
TBD is a key enabler of what?
CI/CD, since changes are made to the trunk more frequently this allows features to be released faster
What branching strategy is often combined with feature flags?
TBD, this allows changes not ready for release to be hidden even though they are part of the trunk
What is the opposite of a monolithic architecture?
Micro services
What are examples of infrastructure components?
Computing resource, database, network, caching
What does it mean for delivery pipelines that deploy applications/infrastructure to be treated as code?
They should be placed under source control and modularised in reusable components with automated testing and deployment
What are the problems of using a GUI for deployment?
Developers can’t collaborate, difficult to troubleshoot, difficult to rollback changes
What are the four benefits of using pipelines as code?
-Version control
-Audit trails
-Collaboration
-Knowledge sharing