DevOps is an essential skillset for all developers and operations people nowadays. It is so embedded into the SDLC that one must know answers to certain interview questions. DevOps interview questions are mostly covered in all kinds of interviews, even if you applied for different roles.
Let’s start straight away.
What is DevOps?
I suggest explaining cultural shift-left, instead of plainly explaining what it means literally. Also cover why we required DevOps, otherwise the next question will be why we need DevOps. Don’t go into details about tools of DevOps.
Ans: DevOps is a cultural shift-left and a collaborative approach where developers and operations teams come together and collaborate on certain tasks. It is also an implementation of Agile in both development and operations tasks.
Previously developers and operations team worked independently. Whenever there is any production deployment/maintenance tasks operations team work independently, and development tasks worked by the developers. As a result, it creates silos for both the teams. Both the teams are unaware of each other’s challenges. That is what DevOps do, filling the collaboration gap and removing silos.
Note: Remember, DevOps is not a bundle of tools or technologies but it’s a cultural shift. If you just focus on tools and technologies then you won’t able to establish the DevOps culture properly between the development and operations teams. Tools and technologies obviously we are using heavily for DevOps.
Half of the answer is covered in the last question. In the remaining part of the answer, you can cover advantages of DevOps.
DevOps practices yields
- Shorter development/release cycles (thus faster time to market) and faster innovation – Improves speed and stability of software development and deployment
- Reduced deployment/delivery failures, quick rollbacks and time to recover
- Improved collaboration and communication, removed silos between different teams
- Increased efficiency (with automation) and reduced costs of developing/running/maintaining applications
- Key focus of DevOps is people and culture, not the tools or technologies
What are the key principles of DevOps?
There are mainly six principles of DevOps:
- Collaborative Environment
- This is the key principle of DevOps
- Create, Develop & maintain a collaborative environment
- Bring all the development process, operations and other contributors under a single collaborative unilateral team, which then focuses on the shared goals
- Sense of Responsibility
- In the DevOps culture, every individual is responsible for success/failure end-of-day
- Diverting credit/blame to one person will push back to the ‘me-centric’ ethos
- In DevOps failures are acceptable/welcomed
- It is an essential practice of DevOps
- Automate as much of SDLC as possible
- Key element for CI/CD pipelines
- Continuous Improvement
- In DevOps CI focuses on experimentation, minimizing waste, and optimizing for speed, cost, and ease of delivery
- It’s tied with Continuous Integration, Continuous Delivery, development efficiency, etc.
- Customer-centric/Feedback loops
- Short feedback loops with customers and end-users for improving products and services
- This principle enables rapid feedback collection and response to it via rapid deployment and real-time live monitoring
- Create with the end in mind
- Solve real problems by understanding customer needs via products and services
- DevOps teams should have a holistic understanding of the product, from creation to implementation
What are the benefits of DevOps?
There are three types of benefits of DevOps:
- Cultural benefits
- Productive and efficient teams
- Happier customer
- Business benefits
- Greater collaboration and trust between team members
- Faster delivery and stable operating environments
- Technical benefits
- Continuous delivery
- Faster problem resolution
- Reduced complexity
- Minimizing human error by automation
What is SRE? How does it relate to DevOps?
Ans: SRE (Site Reliability Engineering) is a set of principles and practices that incorporates aspects of software engineering and applies them to infrastructure and operations problems. The main goals are to create scalable and highly reliable software systems. -Wikipedia
SRE provides a hands-on approach to solve DevOps problems. Imagine DevOps is an interface, so SRE is its implementation.
SRE = Specific implementation of DevOps -Wikipedia
How does SRE implement DevOps Principles?
- Removing silos
- SRE shares ownership of projects/tasks between teams
- SRE ensures smooth cooperation between teams by using the same instruments (codebase, repositories, toolset, etc.)
- Implement incremental changes
- SRE enables teams to perform small, frequent updates that ensure application stability and availability
- SRE uses automation to make better processes and service delivery
- Continuous improvement
- SRE provides continuous monitoring, logging and tracing for continuous improvement
In the first part I just covered basic questions, so that the concepts are clear around DevOps and SRE. In the next part I will cover more questions around toolset and technologies used for DevOps.