1. DevOps! How can you define it in your words?
Answer: Its highly effective daily collaboration between software developers and IT operations/web operation engineers to produce a working system or release software.
A devOps implementation is generally aligned with Agile methodologies where deploying working software to Production is generally the highest priority. On Agile implementations, the emphasis is placed on people over processes, so a DevOps engineer must be willing to work very closely with Agile development teams to ensure they have an environment necessary to support functions such as automated testing, continuous integration, and continuous delivery. On a traditional implementation, without DevOps, the operations team is often isolated from developers, often working under a help desk model under general service level agreements where the system operations team treats developers as a customer. This is a proven model which obviously can work very well, but in a DevOps environment, development and operations are streamlined and barriers between the two groups should not exist.
2. Why we need DevOps?
Answer: Companies are now facing the need to delivering more and faster and better applications to meet the ever more pressing demands of conscious users to reduce the ” Time To Market “. Devops often helps deployment to happen very fast.
3. How does HTTP work?
Answer: The HTTP protocol works in a client and server model like most other protocols. A web browser using which a request is initiated is called as a client and a web server software which responds to that request is called a server. World Wide Web Consortium and the Internet Engineering Task Force are two important spokes in the standardization of the HTTP protocol.
4. Describe two-factor authentication?
Answer: Two-factor authentication is a security process in which the user provides two means of identification from separate categories of credentials; one is typically a physical token, such as a card, and the other is typically something memorized, such as a security code.
These are some of the popular questions asked in DevOps interviews. Always be prepared to answer all types of questions — technical skills, interpersonal, leadership or methodology. If you are someone who has recently started your career in DevOps, you can always get certified in the various tools and skills needed to be an expert in the field.
5. What testing is necessary to ensure a new service is ready for production?
Answer: Continuous testing
6. What is agile development and Scrum?
Answer: Agile development used as an alternative to Waterfall development practice. In Agile, the development process is more iterative and incremental, there are more testing and feedback at every stage of development as opposed to only the last stage in the Waterfall.
Scrum is used to manage complex software and product development, using iterative and incremental practices. Scrum has three roles ie product owner, scrum master, and team.
7. Can we consider DevOps as an agile methodology?
Answer: Of course! DevOps is a movement to reconcile and synchronize development and production start through a set of good practices. Its emergence is motivated by a deep changing demands of business, who want to speed up the changes to stick closer to the requirements of business and the customer.
8. What is DevOps engineer’s duty with regards to Agile development?
Answer: DevOps engineer works very closely with Agile development teams to ensure they have an environment necessary to support functions such as automated testing, Continuous Integration, and Continuous Delivery. DevOps engineer must be in constant contact with the developers and make all required parts of the environment work seamlessly. Learn Devops Training Online From Real-Time Experts.
9. What is the role of a configuration management tool in devops?
Answer: Automation plays an essential role in server configuration management. For that purpose we use CM tools, they store information about versions and builds of the software and testware and provide the traceability between software and testware.
10. What is post mortem meetings?
Answer: It is a meeting where we discuss what went wrong and what steps should be taken so that failure doesn’t happen again. Post mortem meetings are not about finding the one to be blamed, they are for preventing outages from the reoccurring and planing redesign of the infrastructure so that downtime can be minimized. It is about learning from mistakes.
11. What do you know about the serverless model?
Answer: Serverless refers to a model where the existence of servers is hidden from developers. It means you no longer have to deal with capacity, deployments, scaling and fault tolerance and OS. It will essentially reduce maintenance efforts and allow developers to quickly focus on developing codes.
Examples are Amazon AWS Lambda and Auth0 serverless platform.
12. Explain your understanding and expertise on both the software development side and the technical operations side of an organization you’ve worked for in the past?
What Most People Say: “The DevOps role entailed working in a silo, doing just infrastructure automation or release management by pushing development and the ops team.”
What You Should Say: “DevOps engineers almost always work in a 24/7 business-critical online environment. I was adaptable to on-call duties and able to take up real-time, live-system responsibility. I successfully automated processes to support continuous software deployments. I have experience with public/private clouds, tools like Chef or Puppet, scripting and automation with tools like Python and PHP, and a background in Agile.”
Why You Should Say It: Display a flexible mindset. Know the latest and greatest software engineering techniques and explain how you’ll use those tools and skills to solve problems the interviewer throws your way. It’s also important to express a passion and curiosity to learn something new and a willingness to tackle new challenges. It’s all about a willingness to adapt.
13. How would you make software deployable?
Answer: The ability to script the installation and reconfiguration of software systems is essential to control, automated change. Although (rightly) there is an increasing trend for new software to enable this, older systems and products suffer from the assumption that changes would be infrequent and minor, and so make automated changes difficult.
Software team members who appreciate the need to expose configuration and settings in a manner accessible to automation will talk about Inversion of Control (IoC) and Dependency Injection, scripted installation, test harnesses, separation of concerns, command-line tools, and “infrastructure as code“.
14. What’s your career objective in your role as a DevOps engineer?
What Most People Say: “I have a desire to move into development. That’s my eventual career goal.”
What You Should Say: “My passion is breaking down the barriers and building and improving processes so that the engineering and operations teams work better and smarter. That’s why I love DevOps. It’s an opportunity to be involved in the entire delivery system from start to finish.”
Why You Should Say It: No employer wants to hire someone whose only goal is to move quickly into another role, or who lacks energy and enthusiasm for the job under discussion. Your passion and excitement will show your potential employer that you’re a great fit for DevOps. These are important soft skills that are at the heart of the DevOps engineer, and they lay the groundwork for future moves.
15. What DevOps tools have you worked with?
Answer: DevOps involves a constant cycle of coding, testing, deployment, and refinements. The right tools depend on team size and specializations within the organization.
Software configuration management and build/release (version control) tools, including Apache Subversion, Mercurial, Fossil and others, help document change requests. Developers can more easily follow the company’s best practices and policies while software changes.
Continuous integration (CI) tools such as Rational Build Forge, Jenkins and Semaphore merge all developer copies of the working code into a central version. These tools are important for larger groups where teams of developers work on the same codebase simultaneously.
QA experts use code analyzers to test software for bugs, security, and performance. If you’ve used HP’s Fortify Static Code Analyzer, talk about how it identified security vulnerabilities in coding languages. Also speak about tools like GrammaTech’s CodeSonar that you used to identify memory leaks, buffer underruns and other defects for C/C++ and Java code.
It is essential that you have an adequate command of principal languages — Ruby, C#, .NET, Perl, Python, Java, PHP, Windows PowerShell — and are comfortable with the associated OS environments — Windows, Linux, and Unix.
16. What are the DevOps tools you like to use?
Answer: I’m growing fond of Ansible, which we use at Ethoca.
Jenkins is another tool that just works and does what it’s supposed to.
Git, Maven, and Python are also well established.
I’ve also found my background in Perl programming has allowed me to pick up and code with other programming languages very quickly.
And last but not least, I’ve enjoyed using Ruby with mini-test for automation and testing work in the past. I’ve also used other expensive tools, but open-source tools always work best for me. (Interview Questions and Answers)
17. Explain with a use case where DevOps can be used in industry / real-life?
Answer: There are many industries that are using DevOps so you can mention any of those use cases, you can also refer the below example:
Etsy is a peer-to-peer e-commerce website focused on handmade or vintage items and supplies, as well as unique factory-manufactured items. Etsy struggled with slow, painful site updates that frequently caused the site to go down. It affected sales for millions of Etsy’s users who sold goods through the online market place and risked driving them to the competitor.
With the help of a new technical management team, Etsy transitioned from its waterfall model, which produced four-hour full-site deployments twice weekly, to a more agile approach. Today, it has a fully automated deployment pipeline, and its continuous delivery practices have reportedly resulted in more than 50 deployments a day with fewer disruptions.
18. Which are the components of DevOps?
Operations: which is is responsible for the infrastructure and operational environments that support application deployment, including the network infrastructure. In most cases, we can say this is the Sys Admin
Devs: which is responsible for software engineering development. In most case Developers, Architects fall in this category.
Quality Assurance: which are responsible for verifying the quality of the product such as Product Testers.
19. Do you think Devs and Ops will radically change their working routine?
Answer: In most cases not. Ops will still be Ops and Devs will still be Devs. The difference is, these teams need to begin working closely together.
20. How can you improve DevOps culture?
Open communication: a new culture is always created through discussions. In the Devops approach, however, the talks are focused on the product through its lifecycle rather discussing the organization.
Responsibility: DevOps becomes most effective when its principles pervade all the organization rather than being limited to single roles. Everyone is accountable for building and running an application that works as expected. This turns in assigning wider responsibilities and rewards at various levels.
Respect: As open communication is necessary so does respect which means respectful discussion and listening to other opinions and experiences.
Trust: In a perfect Devops trust is essential. Operations must trust Development they are doing their best according to the common plan. Development must trust that Quality Assurance is there to improve the quality of their work and Product Manager needs to trust that Operations is going to provide precise metrics and reports on the product deployment.
21. Which technologies can act as a driver to enable DevOps?
Paas: which is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure.
Iaas: which is a category of cloud computing services that abstract the user from the details of infrastructure like physical computing resources, location, data partitioning, scaling, security, backup, etc.
Configuration automation: Automation is a big win in part because it eliminates the labor associated with repetitive tasks. Codifying such tasks also means documenting them and ensuring that they’re performed correctly, in a safe manner, and repeatedly across different infrastructure types.
Microservices: which consists of a particular way of designing software applications as suites of independently deployable services.
Containers: Containers modernize IT environments and processes, and provide a flexible foundation for implementing DevOps. At the organizational level, containers allow for appropriate ownership of the technology stack and processes, reducing hand-offs and the costly change coordination that comes with them.
Devops Training Free Demo
22. What are microservices and why they have an impact on operations?
Answer: Microservices is a product of software architecture and programming practices. Microservices architectures typically produce smaller, but more numerous artifacts that Operations is responsible for regularly deploying and managing. For this reason, microservices have an important impact on Operations. The term that describes the responsibilities of deploying microservices is micro deployments. So, what DevOps is really about is bridging the gap between microservices and micro deployments.
23. Which tools are typically integrated into DevOps workflow?
Answer: Many different types of tools are integrated into the DevOps workflow at this point. For example:
- Code repositories: like Git
- Container development tools: to convert code in a repository into a portable containerized image that includes any required dependencies
- Virtual machines software: like Vagrant for creating and configuring lightweight, reproducible, and portable development environments
- IDE: like Eclipse which has integration with DevOps platforms like Openshift
- Continuous Integration and Delivery software: like Jenkins which automates pushing the code directly to production once it has passed automated testing.
24. What is automation?
Answer: Automation is the process of removing manual, error-prone operations from your services, ensuring that your applications or services can be repeatedly deployed.
25. Automation is a key point of devops, however, what is the prerequisite of it?
Answer: The necessary prerequisite of it is standardization. Which means both a:
- Techincal standardization: choose standard Operating systems and middleware, develop with a standard set of common libraries
- Process standardization: standard systems development life cycle, release management, monitoring and escalation management.
26. At which level can applied automation in DevOps?
Answer: At three levels:
1) Automate the application lifecycle: in terms of software features, version control, build management, integration frameworks
2) Automate the middleware platform automation: such as installing middleware, autoscaling and resources optimization of middleware components
3) At infrastructure by provisioning operating system resources and virtualizing them
27. How Database fits in a DevOps?
Answer: In a perfect DevOps world, the DBA is an integral part of both Development and Operations teams and database changes should be as simple as code changes. So, you should be able to version and automate your Database scripts as your application code. In terms of choices between RDBMS, NoSQL or another kind of storage solutions a good database design means fewer changes to your schema of Data and more efficient testing and service virtualization. Treating database management as an afterthought and not choosing the right database during the early stages of the software development lifecycle can prevent successful adoption of the true DevOps movement.
28. Which are the reasons against using an RDBMS?
Answer: In a nutshell, if your application is all about storing application entities in a persistent and consistent way, then an RDBMS could be an overkill. A simple Key-Value storage solution might be perfect for you. Note that the Value is not meant to be a simple element but can be a complex entity in itself!
Another reason could be if you have hierarchical application objects and need some query capability into them then most NoSQL solutions might be a fit. With an RDBMS you can use ORM to achieve the same result but at the cost of adding extra complexity.
RDBMS is also not the best solution if you are trying to store large trees or networks of objects. Depending on your other needs a Graph Database might suit you.
If you are running in the Cloud and need to run a distributed database for durability and availability then you could check Dynamo and Big Table based datastores which are built for this core purpose.
Last but not least, if your data grows too large to be processed on a single machine, you might look into Hadoop or any other solution that supports distributed Map/Reduce.
29. What is 2 factors authentication?
Answer: In terms of authentication, when you have to enter only your username and one password, that’s considered a single-factor authentication. 2 factors authentication requires the user to have two out of three types of credentials before being able to access an account. The three types are:
- Something you know, such as a personal identification number (PIN), password
- Something you have, such as a digital ATM card, phone
- Something you are, such as a biometric like voice or a fingerprint
30. What is a PTR record and how to add one?
Answer: While a record points a domain name to an IP address, the PTR record resolves the IP address to a domain/hostname. PTR records are used for the reverse DNS (Domain Name System) lookup. Using the IP address you can get the associated domain/hostname. A record should exist for every PTR record.
You can check whether there is a PTR record set for a defined IP address. The syntax of the commands on a Linux OS is:
1 $ dig -x IP