Most companies today, right from start-ups to Fortune 500 are adapting DevOps practices to increase the speed and quality of their software development and deployments.
A review of DevOps job statistics shows that DevOps engineers will be in high demand in the next few years and the median salary offered is a whopping six figure ($122,969-$133,378 yearly, according to Indeed and Glassdoor surveys).
Impressive isn’t it? However, to grab a DevOps role in IT industry will require extensive preparation in terms of job interview, apart from developing your real technical skills and writing that perfect DevOps resume.
As a potential interviewee, you may be asked general as well as specific tools related questions. Let’s start with few general DevOps questions and then move on to specific tools:
1. Why is DevOps gaining importance? What are the benefits of using DevOps?
Answer: DevOps has gained importance due to the changing market trend where unlike the traditional practice of introducing large changes or features, companies are now trying to introduce small features with a series of frequent releases leading to improved quality and fast market response.
The practice of DevOps helps the companies fulfilling these requirements in terms of more frequent deployments, less chances of failed releases, small bug fixing time between releases and quick recovery in case of crashed releases.
In addition, companies like Netflix or Facebook have been practicing DevOps and are successful in scaling up their operations by implementing millions of lines of code on a frequent basis without compromising on quality or security.
2 Are DevOps and Agile different? If yes, how?
Answer: Yes. DevOps is a different approach from Agile. While Agile is a software development methodology with emphasis on development of software, DevOps is a methodology dealing with both software development and deployment.
Both these methodologies have been evolved due to changing business needs. In agile model, software development happens in short release cycles where changing business requirements are readily incorporated in new releases along with the bug fixing making the development Agile.
However, operations are unable to keep pace with Agile development approach. And so, the DevOps approach goes one step further creating collaboration in development and operations making both Agile with the help of continuous development, continuous testing, continuous integration, continuous deployment and monitoring.
3 Which popular DevOps tools do you know? Or have worked on?
Answer: Some of the widely used DevOps tools are:
- Version control: Git,SVN
- Code building: Ant, Maven
- Continuous integration: Jenkins
- Continuous testing: Selenium, TestNG, JUnit
- Configuration management/deployment: Puppet, Chef, Ansible
- Continuous monitoring: Nagios, ELK Stalk
- Containerization: Docker
These are a few popular DevOps tools. Here, you should clearly mention which tools you have hands-on experience. For the remaining tools you can say that you have exposure only not hands-on experience.
4 Can you explain how the above tools can be combined to get a seamless delivery?
Answer: During the continuous development phase, software development is done in numerous sprints in short development cycles. Here different versions of code are maintained using version control tools like SVN or Git. Building tools like Ant or Maven are used to package the code for testing.
In the continuous testing phase, automation testing tools like Selenium or Junit are used. Also, Docker containers can be used to simulate testing environment.
Once tested, the new code can be integrated with the pre-existing code using a continuous integration tool like Jenkins. This will ensure smooth integration. Latest code version from Git can be used to build and then test or deploy in production using Jenkins.
After this, the next stage is deployment in production server. Here you need to ensure that servers are scaled up in case you receive increased traffic. Here configuration management tools like Puppet, Ansible etc can be used.
In the continuous monitoring stage, the performance of system is monitored in terms of any bugs or unusual system behaviour. In this stage, the tools like ELK Stack or Nagios can be used to monitor the system closely. You need to repeat these stages until you get the desired quality software.
5 Can you provide few real-life use cases of DevOps from any industry?
Answer: There can be numerous examples. You can give one or all of these-
Facebook used DevOps principles and dark launching techniques for launching new features to a limited user before making it available to complete user community. Facebook resorted to this strategy as launching new features to everyone in one go had led server meltdown and inconclusive responses from users.
Etsy, a vintage item selling e-commerce company struggled with slow website frequently going down causing huge business losses. Initially it transitioned from waterfall model to Agile model. Later it shifted to DevOps methodology having continuous delivery and many deployments everyday with few troubles.
6 Why do we use version control? Have you used any version control Tool?
Answer: You can start with explaining what a version control is and ell that it’s a system that records changes (in code or file) such that later you can extract earlier versions if you need. It helps you take your file or project back to any earlier state. You can also do a comparison of changes introduced over a time. In case of any problem due to changes, it helps you know the person who has made those changes.
A version control tool such as Git allows the team members to work on a file and later merge the changes creating a version.
7 What is Continuous Integration? Why do you need it?
Answer: Since development of software is done on a continuous basis, you also need to continuously integrate the updated code to the pre-existing code. This will ensure that code having new functionality is smoothly integrated continuously with already existing code making the changes available to end users.
8 Have you used any configuration Management Tool? If yes, can you explain how does it work?
Answer: Here you can explain the CM tool of your choice. For example if you used Puppet, you can say that the configuration management tool Puppet automates the administration tasks. Puppet has a Master-Slave architecture which requires the slave to send the request for signing of certificate to master. Once the master signs it, a secure connection is established between the two. Puppet slave has to send request to master after which puppet master pushes configuration on slave.
Top comments (0)