1. What is the need of DevOps?
Ans:
- Increase the deployment frequency
- Lower failure rate of new releases
- Shortened lead time between fixes
- Faster mean time to recovery in the event of new release crashing
2. How DevOps technology is different from Agile / SDLC?
Ans:
3. What are the advantages of DevOps?
Ans:
Technical Benifits:
- Continous software delievery
- less complex problem to fix
- faster resolution of problems
Business Benifits:
- Faster delievery of features
- More Stable operating environments
- More time available to add value (rather than fix/maintain)
4. What is the most important thing in devops to achieve?
Ans: DevOps helps us achieve is to get the changes into production as quickly as possible while minimizing risks in software quality assurance and compliance. This is the primary objective of devops.
5. Describe the branching strategies you have used?
Ans:
- Master Branch: The master branch is the main branch. Â It has the fully tested and stable code that is working successfully in production. The code here acts as the base code for all the future developments and releases.
- Feature Branching: A feature branch model keeps all of the changes for a particular feature inside of a branch. When the feature is fully tested and validated by automated tests, the branch is then merged into master.
- Â It is the place where active development takes place. A feature branch may contain changes for existing features or a new feature for the next release. The developers create multiple feature branches according to the requirement and test each feature branches individually. After that, the developers will merge all the required feature branches to the release branch by using Pull Requests.
- Task Branching: Each task is implemented on its own branch with the task key included in the branch name. It is easy to see which code implements which task, just look for the task key in the branch name.
- Release Branching: Once the develop branch has acquired enough features for a release, you can clone that branch to form a Release branch. Creating this branch starts the next release cycle, so no new features can be added after this point, only bug fixes, documentation generation, and other release-oriented tasks should go in this branch. Once it is ready to ship, the release gets merged into master and tagged with a version number. In addition, it should be merged back into develop branch, which may have progressed since the release was initiated.
- Hotfix Branch: This branch is created when there is a critical bug in the production which needs to be resolved immediately. This branch contains the existing production code taken from the master branch. The bug is fixed and tested here. Finally, the code is merged back to the master branch for fixing the production issue.
6. Why do you need a Continuous Integration of Dev & Testing?
Ans: Continuous Integration of Dev and Testing improves the quality of software, and reduces the time taken to deliver it, by replacing the traditional practice of testing after completing all development.
It allows Dev team to easily detect and locate problems early because developers need to integrate code into a shared repository several times a day (more frequently). Each check-in is then automatically tested.
7. What are the success factors for Continuous Integration?
Ans:
- Maintain a code repository
- Automate the build
- Make the build self-testing
- Everyone commits to the baseline every day
- Every commit (to baseline) should be built
- Keep the build fast
- Test in a clone of the production environment
- Make it easy to get the latest deliverables
- Everyone can see the results of the latest build
- Automate deployment