DevOps Flashcards
(38 cards)
explain the differences between docker image and docker container
docker images are templates of docker containers, containers are runtime instances of docker docker images. An image is build using Docker file, containers are created using docker images. Images are stores in a docker repo containers are stored in the docker daemon. The image layer is read only.
What are the advantages of docker ?
occupy less space. short boot up time, easy to scale up, High efficiency, easily portable across different platforms, data volumes are shared and used again across multiple containers.
what are the ways in which a build can be scheduled in Jenkins ?
By source code mgt commits ie webhooks, After the completion of other builds, scheduled to run at a specific time, manual build.
explain the concept of branching in git
Suppose you are working on an app, and you want to add a new feature to the app , you can create a new new branch and build the new feature to the branch.
what is the difference between git fetch and git pull?
git fetch only downloads new data from a remote repo, git pull updates the current head branch with the latest changes. Git fetch does not integrate any new data into your working file, git pull downloads new data and integrates it with the current working files.
what is the process of reverting a change that has already been pushed and made public?
remove or fix the bad file in a new commit and push it to the remote repo. create a new commit that undo’s all the changes made in the bad commit. git revert <command></command>
what is the difference between a centralized and distributed VCS?
In a centralized VCS, all file versions are stored in a central server, no developer has a copy of all files on a local system. In a distributed VCS, every developer has a copy of all versions of the code on their systems. There is no threat even if the server crashes.
What is blue green deployment?
It is a method of CD where traffic is transferred from one instance to another , in order to include a fresh version of the code. The new version exists in a green env and the old version exists in a blue env.
what is shift left?
It refers to starting testing and quality assurance earlier in the software development process instead of waiting till the end of development to test the software. this helps to identify and fix issues sooner, leading to higher quality software and a more efficient development process.
Describe the branching strategy you have used.
Feature Branching: Maintains all modifications for a specific feature contained withing a branch. the branch gets merged into main once the feature has been completely tested and approved by using automated tests. GITFLOW: A branching model with dedicated branches for feature, release and hot fixes and a main branch for stable releases.
what are the benefits of using VCS?
See who made what changes to the a project, team members can work on any file at anytime which can be integrated into a single version, All previous versions are properly stores. A complete history of a project can be retrieve even if the main server goes down.
what is the role of AWS in DevOps?
provides ready to use services without the need to install the software. it allows you to automate tasks, giving you more time to innovate, It supports a large ecosystem of partners that integrate with and extend aws services.
Name three important KPI’s (key performance indicators) in DevOps
KPI’s are metrics used to elevate the effectiveness and success of DevOps practices within an org. DEPLOYMENT FREQUENCY: How often new code is deployed to production. MTTR: the average time it takes to recover from production failure. CHANGE FAILURE RATE: The percentage of deployment that causes failure in production.
what is the role of configuration management in DevOps?
Enables the management of multiple systems, standardizes resource configurations, helps with the management of multiple servers and maintains the integrity of the entire infrastructure.
what is the difference between CD and CI?
Continuous delivery delivers every change to a production like env’t through rigorous automated testing. In continuous deployment, every change that passes the automated tests is deployed to production automatically.
How will you approach a project that needs to implement DevOps?
Assess the project and create a road map, create a POC before starting the actual project plan, Go ahead and implement DevOps by using VCS, integration, testing, deployment, delivery and monitoring.
What are some of the core benefits of DevOps/
continuous software delivery
less complex problems to manage
early detection and faster correction of defects
stable operating environment
improved operating environment
improved communication and collaboration between teams.
what are the different phases in DevOps?
PLAN: get a rough picture of the process
CODE: written as per user requirements
BUILD: The code
TESTS: test the app, rebuild if necessary
INTEGRATE: integrate multiple codes into VCS
DEPLOY: code is deployed into a cloud env
OPERATE: perform operations if required
MONITOR: changes are made to meet end user requirements.
How is DevOps different from agile methodology?
DevOps is a culture that allows the dev and ops teams to work together, this results in continuous development, testing, integration, deployment and monitoring of the software through the lifecycle.
Agile is a SD methodology that focuses on iterative, incremental, small and rapid releases of software along with customer feedback. It addresses the gaps and conflicts between the customer and developer.
what is CI?
A software development practice where members of a team integrate their code changes frequently, typically multiple times a day.
what is continuous delivery?
A software development practice that aims to automate the process of delivering code changes to production in a reliable and efficient manner.
what is DevOps?
A combination of bests practices and tools that enhance the ability of an organization to deliver application and services quickly with a minimal failure rate.
How do you resolve a git conflict?
identify the conflict files
find remove the conflict markers in a text editor
manually merge the changes, save the changes and commit push the changes to the remote repo.
what is a VCS?
A software that allows multiple contributors to work on the same set of files, keeping track of who made changes and when.