Interview Questions and Answers

  • 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.

Typically the pre-requisites would include:

  • 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

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.
  • Continuous Integration
  • Continuous Testing
  • Continuous Delivery
  • Continuous Monitoring

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.

In an Agile Sprint for E.g. there are many features or user stories that are developed, tested and ready for deploying. But based on customer scenarios and priorities not all would be deployed. So here in continuous delivery, it is very important to keep the code readily available for deployment.

  • Jira
  • GIT/SVN
  • Bitbucket
  • Jenkins
  • Bamboo
  • SonarQube
  • Artifactory/Nexus
  • Docker
  • Chef / Puppet /Ansible
  • IBM Urbancode Deploy / CA-RA
  • Nagios / Splunk

Configuration management consists of practices and the various tools involved to automate the delivery and infrastructure operations. It is all about keeping the server ready (E.g. Installing system packages, network configuration settings) for application deployment once the application is developed.

  • DevOps Architect – The leader who is responsible for the entire DevOps process.
  • DevOps Engineer – The person should be experienced with Agile, SCM or Version Control, CI /CD and setting up automation tools for the same, Infrastructure automation and Database management skills. Any developer who has skills in coding or scripting and has the acumen to get into deployment or system admin can qualify for the role of a DevOps engineer.

Examples of popular Cloud Computing Platforms:

  1. AWS – Amazon Web Services
  2. Microsoft Azure
  3. Google Cloud

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.

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.

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.

Following approaches can be used but that will vary based on the actual project scenarios or from organization to organization

Stage 1: For any DevOps implementation an assessment of the existing process and implementation for around 2 to 3 weeks taking an average of 5 applications is a must to gauge the AS-IS process, identifies the improvement areas and provides a roadmap for the implementation.

Typically a senior profile like a DevOps architect should be involved to conduct this assessment.

Stage 2: A pilot POC can be done to showcase the end to end working of DevOps. Once this has been accepted and approved by the end users only then the actual implementation, handover and rolls out the plan for the projects involved should be carried out.

Any pieces of training required will also need to be imparted to the process or tools. DevOps architects, engineers, and testers would need to be involved at this stage.

Stage 3: The projects should now be in DevOps mode with all the components of continuous integration/delivery/testing and monitoring that is being followed.

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.

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.

Planning

Jira – Used for Project Planning and Issue management

Continuous Integration

Git – Version Control

Jenkins – Open Source Continuous Integration tool which can also help in Continuous Delivery.

SonarQube – Code analysis

JFrog Artifactory – Binary Repository Manager

Continuous Delivery

Chef / Puppet / Ansible – Configuration Management and Application Deployment

IBM Urbancode Deploy / CA RA – Continuous Delivery

Continuous Monitoring

To be involved in the end to end delivery process and the most important aspect of helping to improve the process so as to enable the development and operations teams to work together and understand each other’s point of view.

Start the change

Register to become an Instructor

Please login to fill in this form.

  • Your name
  • Your email
  • Your phone number
  • Your message

I’m a Copywriter in a Digital Agency, I was searching for courses that’ll help me broaden my skill set. Before signing up for Rob’s.