- DevOps promotes communication and collaboration between business, development & operations teams. In a way, we are talking about unification.
- DevOps is not only about tools but also about involving people and process.
- DevOps is inspired by the Agile process.
- DevOps is about automating the development, release and operation processes.
- DevOps helps in the speed of delivering applications to the end users.
- DevOps is also about continuous improvement which helps in learning through feedback.
Explain a few prerequisites that are useful for DevOps implementation.
- Commitment at the senior level in the organization.
- Need for change to be communicated across the organization.
- Version control software.
- Automated tools for compliance to process.
- Automated Testing
- Automated Deployment
What are the best practices for DevOps implementation?
- DevOps implementation varies from one organization to other organization. Today organizations are looking to deliver the software faster and from that point of view here are my thoughts on how DevOps can bring about efficient communication with all the stakeholders including the operations team.
- Every organization has certain business goals and DevOps implementation should align with it. There should be a certain need for change.
- Encouraging communication and collaboration especially between development and operations.
- Automation is the key and should be done and carried out wherever possible within the SDLC stages to facilitate the working of DevOps.
- The tools used in DevOps should integrate very well. From the point of view of any commercial tools like IBM Rational CLM or Microsoft TFS, implementation of DevOps is good as it is from a single vendor. Similarly, one needs to look at open source tools which integrate to give the similar desired results.
- DevOps implementation is not successful without CI and CD practices. So continuous integration of your code with rigorous testing and doing continuous delivery is the key for it.
- It is very important for the Ops team to ensure that the applications are working very well at appropriate levels. If required they will need to work with the development teams to build any tools that would help to build the right monitoring capabilities into the applications.
- Finally, encourage feedback from end users to enable continuous improvement which provides the key for improving the process and delivering quality software.
What are the key components of DevOps?
- Continuous Integration
- Continuous Testing
- Continuous Delivery
- Continuous Monitoring
Explain Continuous Integration.
Continuous Integration is a very important component of the Agile process. Typically developers work on features or user stories within a sprint and commit their changes to the version control repository.
Once the code is committed, then the entire work of developers is well integrated and the build is performed on a regular basis based on every check-in or schedule. Hence, Continuous Integration as a practice forces the developer to integrate their changes with the others so as to get an early feedback.
Explain Continuous Delivery.
Continuous Delivery is an extension of Continuous Integration which primarily helps to get the features which the developers are developing out to the end users as soon as possible. During this process, it goes through various stages of QA, Staging etc., and then for delivery to the PRODUCTION system.
Explain Continuous Testing.
From the above goal of Continuous Integration which is to get the application out to end users are primarily enabling continuous delivery. This cannot be completed without a sufficient amount of unit testing and automation testing.
Hence, we need to validate that the code produced and integrated with all the developers who perform as required.
Explain Continuous Monitoring.
As the application is developed and deployed, we do need to monitor its performance. Monitoring is also very important as it might help to uncover the defects which might not have been detected earlier.
Can DevOps be applied to a Waterfall process? Explain the significance of the Agile process in DevOps implementation. In the waterfall process, as all of us are aware initially complete Requirements are gathered, next the System is designed, Implementation of the System is then done followed by System testing and deployed to the end users. In this process, the problem was that there was a huge waiting time for build and deployment which made it very difficult to get the feedback.
The solution to the above problem was that the Agile process has to bring in agility in both development and operations. The agile process could be the principle or a certain pre-requisite may be required for DevOps implementation. DevOps goes hand in hand with the Agile process.
The focus area is to release the software in a very timely manner with shorter release cycles and quick feedback. So the agile process focus will mainly be on speed and in DevOps, it works well with the automation of various tools.
What is your expertise on the DevOps projects?
- Explain your role as a DevOps Engineer and how you were working as a part of the 24*7 environment and maybe in shifts, the projects involved in automating the CI and CD pipeline and providing support to the project teams.
- Hence taking complete responsibility for maintaining and extending the environments for DevOps automation to more and more projects and different technologies (e.g. .NET, J2EE projects) involved within the organization.
- Also, explain about the process (e.g. Agile) and tools that were involved in an end to end automation. You could also talk about your experience, if any, in devops support over the Cloud environment.