What Is Gitflow And How Does It Compare To Trunk
Gitflow is a workflow for Git that makes heavy use of branches. In Gitflow, all the code is merged into the develop branch instead of the main branch, which serves as an abridged version of the projects history.
Features are worked on specific feature branches . In the same fashion, releases also create a dedicated release/ branch.
Compared with trunk-based development, Gitflow is more complex and has a higher chance of inducing merge conflicts, which is why it has fallen out of favor among the development community.
Devops Principles #: Collaboration Is Key
DevOps and Agile are methodologies for developing software quickly and efficiently through collaboration between teams without cross-functionalities.
- DevOps focuses on collaboration between large software development teams and operations teams that otherwise work independently with limited or no cross-functionality. DevOps focuses on continuous testing and delivery. DevOps focuses on quality and automation using key practices like Continuous Integration and Continuous Development.
- Agile as an iterative approach focuses on product development teams collaborating with stakeholders to integrate changing customer and market requirements for rapid releases continuously. Agile focuses on timelines and agility using key practices like Scrum and Kanban.
DevOps Interview Question on Collaboration
- How is DevOps different from the Agile methodology of software development?
What Are Some Common Tools Used Across The Different Phases Of Devops
Following are some common tools of DevOps.
1. Planning and Collaboration – Confluence, Jira, VersionOne
2. Code Repository – Git, Subversion, Bitbucket
3. Build – Maven, Gradle, Sbt
4. Test – JMeter, Selenium, Cucumber
5. Integration and Release – Jenkins, Spinnaker, Bamboo, Circleci, Travis CI
6. Deploy – JFrog, Sonatype, nuget, docker, AWS, Azure, Heroku
7. Operate – Kubernetes, Ansible, Chef
8. Monitor – AppDynamics, Splunk, Datadog, New Relic, Dynatrace
Recommended Reading: How To Go For An Interview
Q7 In Git How Do You Revert A Commit That Has Already Been Pushed And Made Public
There can be two answers to this question so make sure that you include both because any of the below options can be used depending on the situation:
- Remove or fix the bad file in a new commit and push it to the remote repository. This is the most natural way to fix an error. Once you have made necessary changes to the file, commit it to the remote repository for that I will usegit commit -m commit message
- Create a new commit that undoes all changes that were made in the bad commit.to do this I will use a commandgit revert < name of bad commit>
Q7 Mention Some Of The Core Benefits Of Devops
![Python Interview Questions For Devops Python Interview Questions For Devops](https://www.interviewprotips.com/wp-content/uploads/python-interview-questions-for-devops-interviewprotips-com.jpeg)
- Faster development of software and quick deliveries.
- DevOps methodology is flexible and adaptable to changes easily.
- Compared to the previous software development models, confusion about the project is decreased due to increased product quality.
- The gap between the development team and operation team is bridged. i.e, the communication between the teams has been increased.
- Efficiency is increased by the addition of automation of continuous integration and continuous deployment.
- Customer satisfaction is enhanced.
Recommended Reading: Medical Device Sales Interview Questions
How Is Iac Implemented Using Aws
Start by talking about the age-old mechanisms of writing commands onto script files and testing them in a separate environment before deployment and how this approach is being replaced by IaC. Similar to the codes written for other services, with the help of AWS, IaC allows developers to write, test, and maintain infrastructure entities in a descriptive manner, using formats such as JSON or YAML. This enables easier development and faster deployment of infrastructure changes.
Whats The Difference Between End
End-to-end usually involves testing the application by using the UI to simulate user interaction. Since this requires the application to run in a complete production-like environment, end-to-end testing provides the most confidence to developers that the system is working correctly.
Acceptance testing is the practice of verifying acceptance criteria. Acceptance criteria is a document with the rules and behaviors that the application must follow to fulfill the users needs. An application that fulfills all acceptance criteria meets the users business needs by definition.
The confusion stems from the fact that acceptance testing implements the acceptance criteria verification with end-to-end testing. That is, an acceptance test consists of a series of end-to-end testing scenarios that replicate the conditions and behaviors expressed in the acceptance criteria.
You May Like: What Questions To Ask Interviewer At The End
How Is A Bare Repository Different From The Standard Way Of Initializing A Git Repository
Using the standard method:
- You create a working directory with git init
- A .git subfolder is created with all the git-related revision history
Using the bare way
git init –bare
- It does not contain any working or checked out a copy of source files
- Bare repositories store git revision history in the root folder of your repository, instead of the .git subfolder
Q13 Can You Differentiate Between Continuous Testing And Automation Testing
Continuous Testing | Automation Testing |
Continuous Testing is a process that involves executing all the automated test cases as a part of the software delivery pipeline | Automation testing is a process tool that involves testing the code repetitively without manual intervention. |
This process mainly focuses on business risks. | This process mainly focuses on a bug-free environment. |
Its comparatively slow than automation testing | Its comparatively faster than continuous testing. |
Also Check: How To Ask Someone For An Interview Example
Q20how Do I See A List Of All Of The Ansible: Variables
Ansible by default gathers facts about the machines under management, and these facts can be accessed in Playbooks and in templates. To see a list of all of the facts that are available about a machine, you can run the setup module as an ad-hoc action:Ansible -m setup hostnameThis will print out a dictionary of all of the facts that are available for that particular host.
Q9 What Is Selenium Ide
My suggestion is to start this answer by defining Selenium IDE. It is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run in.Now include some advantages in your answer. With autocomplete support and the ability to move commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.
Don’t Miss: How To Record Phone Interviews For Podcast
Q12 How To Create Docker Container
I will suggest you to give a direct answer to this. We can use Docker image to create Docker container by using the below command:docker run -t -i < image name> < command name> This command will create and start container.You should also add, If you want to check the list of all running container with status on a host use the below command:docker ps -a
What Is The Role Of Aws In Devops
![CI/CD in Azure to trigger releases to environments based off the branch ... CI/CD in Azure to trigger releases to environments based off the branch ...](https://www.interviewprotips.com/wp-content/uploads/cicd-in-azure-to-trigger-releases-to-environments-based-off-the-branch.png)
AWS has the following role in DevOps:
- Flexible services – Provides ready-to-use, flexible services without the need to install or set up the software.
- Built for scale – You can manage a single instance or scale to thousands using AWS services.
- Automation – AWS lets you automate tasks and processes, giving you more time to innovate
- Secure – Using AWS Identity and Access Management , you can set user permissions and policies.
- Large partner ecosystem – AWS supports a large ecosystem of partners that integrate with and extend AWS services.
Recommended Reading: How To Interview A Person
How Will You Approach A Project That Needs To Implement Devops
The following standard approaches can be used to implement DevOps in a specific project:
Stage 1
An assessment of the existing process and implementation for about two to three weeks to identify areas of improvement so that the team can create a road map for the implementation.
Stage 2
Create a proof of concept . Once it is accepted and approved, the team can start on the actual implementation and roll-out of the project plan.
Stage 3
The project is now ready for implementing DevOps by using version control/integration/testing/deployment/delivery and monitoring followed step by step.
By following the proper steps for version control, integration, testing, deployment, delivery, and monitoring, the project is now ready for DevOps implementation.
What Is The Key Features Of Git That Makes It More Efficient Compared To Other Version Control Systems Such As Svn And Cvs
Distributed: Git is a distributed version control system. Git has a central server which maintains the project file and its history, called as a repository. Each user of Git has a complete and independent copy of this repository on his own local machine. Hence, Git users can continue working with Git and refer to history even if the central repository is unavailable.
Like Git, alternative source control systems such as SVN and CVS also have a central server which maintains the project files and its history. But unlike Git, users of these version control system do not have a local copy of the project files and its history. Hence these users are dependent on the central system, and cannot continue to work with the version control system if the central server becomes unavailable for any reason.
Snapshot-based: Git is a snapshot-based version control system. Every time a user commits the project, Git takes a snapshot of the project files and changes at that moment and stores a reference to that snapshot. If a file has not changed, Git links to the previous file instead of storing the file again.
Alternative version control systems such as SVN and CVS are delta-based version control systems. These systems store the project files and changes made to each file over time.
Integrity: Every file in Git is checksummed using a SHA-1 hash before it is stored, and is referred to with that checksum. This makes it impossible to lose or corrupt the files without Git detecting it.
Read Also: What Questions To Ask In An Interview Software Developer
Q4 What Are Plugins In Nagios
Begin this answer by defining Plugins. They are scripts that can run from a command line to check the status of a host or service. Nagios uses the results from Plugins to determine the current status of hosts and services on your network. Once you have defined Plugins, explain why we need Plugins. Nagios will execute a Plugin whenever there is a need to check the status of a host or service. Plugin will perform the check and then simply returns the result to Nagios. Nagios will process the results that it receives from the Plugin and take the necessary actions.
Q10 Explain How You Can Setup Jenkins Job
A pattern can be defined as an ideology on how to solve a problem. Now anti-pattern can be defined as a method that would help us to solve the problem now but it may result in damaging our system .
Some of the anti-patterns we see in DevOps are:
- DevOps is a process and not a culture.
- DevOps is nothing but Agile.
- There should be a separate DevOps group.
- DevOps solves every problem.
- DevOps equates to developers running a production environment.
- DevOps follows Development-driven management
- DevOps does not focus much on development.
- As we are a unique organization, we dont follow the masses and hence we wont implement DevOps.
- We dont have the right set of people, hence we cant implement DevOps culture.
Read Also: How To Prepare For Amazon Sde 2 Interview
Some General Interview Questions For Ci/cd Pipeline
1. How much will you rate yourself in CI/CD Pipeline?
When you attend an interview, Interviewer may ask you to rate yourself in a specific Technology like CI/CD Pipeline, So It’s depend on your knowledge and work experience in CI/CD Pipeline.
2. What challenges did you face while working on CI/CD Pipeline?
This question may be specific to your technology and completely depends on your past work experience. So you need to just explain the challenges you faced related toCI/CD Pipeline in your Project.
3. What was your role in the last Project related to CI/CD Pipeline?
It’s based on your role and responsibilities assigned to you and what functionality you implemented using CI/CD Pipeline in your project. This question is generallyasked in every interview.
4. How much experience do you have in CI/CD Pipeline?
Here you can tell about your overall work experience on CI/CD Pipeline.
We have covered some frequently asked CI/CD Pipeline Interview Questions and Answers to help you for your Interview. All these Essential CI/CD Pipeline Interview Questions are targeted for mid level of experienced Professionals and freshers. While attending any CI/CD Pipeline Interview if you face any difficulty to answer any question please write to us at . Our IT Expert team will find the best answer and will update on the portal. In case we find any new CI/CD Pipeline questions, we will update the same here.
Are You Aware Of Other Continuous Integration Tool Other Than Jenkins How Does Jenkins Compare With Them
There are many CL/CD tools available online and the most prominent are:
Each one offers its own set of functionalities. For Instance, TeamCity offers great .NET support but it is costly & complex. Travis CI is free to use, just like Jenkins, and does support good documentation. Bamboo also offers efficient and faster builds but it does levy a charge and so on.
Recommended Reading: Best Audio Recorder For Interviews
What Is Continuous Testing
Continuous Testing constitutes the running of automated tests as part of the software delivery pipeline to provide instant feedback on the business risks present in the most recent release. In order to prevent problems in step-switching in the Software delivery life-cycle and to allow Development teams to receive immediate feedback, every build is continually tested in this manner. This results in significant increase in speed in a developer’s productivity as it eliminates the requirement for re-running all the tests after each update and project re-building.
What Is Ci/cd Pipeline
![Clone private git repo in Docker file using CI/CD pipeline Clone private git repo in Docker file using CI/CD pipeline](https://www.interviewprotips.com/wp-content/uploads/clone-private-git-repo-in-docker-file-using-cicd-pipeline-stack-overflow.png)
CI/CD is a combination of continuous integration and continuous delivery or continuous deployment in software engineering. Modern DevOps operations are built on the foundation of continuous integration and continuous delivery, or the CI/CD pipeline. You can automate your software delivery process with a CI/CD pipeline. As part of the pipeline, code is built, tests are run , and a new version of the application is safely deployed . By automating pipelines, manual errors are eliminated, developers are provided with standardized feedback loops, and iterating on products is made more efficient. In DevOps, continuous integration and continuous delivery are best practices that ensure that code changes are delivered regularly and reliably.
You May Like: What Is The Best Answer For Interview Questions
Q4 Which Are The Top Devops Tools Which Tools Have You Worked On
The most popular DevOps tools are mentioned below:
- Git : Version Control System tool
- Jenkins : Continuous Integration tool
- Puppet, Chef, Ansible : Configuration Management and Deployment tools
- Nagios : Continuous Monitoring tool
- Docker : Containerization tool
You can also mention any other tool if you want, but make sure you include the above tools in your answer.The second part of the answer has two possibilities:
What Are The Different Kinds Of Jfrog Repositories
There are four kinds of JFrog repositories.
1. Local repositories – Local repositories contain artifacts that you upload and manage locally.
2. Remote repositories – Remote repositories contain cached artifacts from public cloud repositories like DockerHub, MVNRepository, NPM repository etc.
3. Virtual repositories – Virtual repository aggregates local and remote repositories into one logical repository.
4. Distribution repositories – Distribution repositories contain artifacts that can be easily moved from Artifactory to bintray, for distribution to end users.
Read Also: Questions To Ask Hospice Interview
Using Ci/ Cd Pipelines And Indexeddb For A Jquery Ui Web Application
Using a simple PostgreSQL database, well be storing some client-side data in IndexedDB storage. This technique can be a convenient and robust solution for storing some data in the browser.
Using IndexedDB is a much better alternative to the Document Object Model for storing and querying client-side data because of how easy it is to manage and query data. Lets get started with our project.
Jenkins Ci Interview Questions
28) How to trigger a build remotely from Jenkins? How to configure Git post commit hook?
The requirement is whenever changes are made in the Git repository for a particular project it will automatically start Jenkins build for that project.
A) As mentioned in Polling must die: triggering Jenkins builds from a git hook, you can notify Jenkins of a new commit:
With the latest Git plugin 1.1.14 , you can now do this more > easily by simply executing the following command:
curl https://yourserver/jenkins/git/notifyCommit?url=< URL of the Git repository> This will scan all the jobs thats configured to check out the specified URL, and if they are also configured with polling, itll immediately trigger the polling
This allows a script to remain the same when jobs come and go in Jenkins.Or if you have multiple repositories under a single repository host application , you can share a single post-receive hook script with all the repositories. Finally, this URL doesnt require authentication even for secured Jenkins, because the server doesnt directly use anything that the client is sending. It runs polling to verify that there is a change, before it actually starts a build.
As mentioned here, make sure to use the right address for your Jenkins server:
since were running Jenkins as standalone Webserver on port 8080 the URL should have been without the /jenkins, like this:
To reinforce that last point, ptha adds in the comments:
It may be obvious, but I had issues with:
Recommended Reading: What’s A Digital Interview