DevOps is a new term emerging from the collision of two major related trends. The first was also called “agile infrastructure” or “agile operations”; it sprang from applying Agile and Lean approaches to operations work. The second is a much expanded understanding of the value of collaboration between development and operations staff throughout all stages of the development lifecycle when creating and operating a service, and how important operations has become in our increasingly service-oriented world

Here are some important interview questions on DevOps:

1. What is DevOps?
Answer :
It is a newly emerging term in IT field, which is nothing but a practice that emphasizes the collaboration and communication of both software developers and other information technology (IT) professionals. It focuses on delivering software product faster and lowering the failure rate of releases.

2. Name the popular scripting language of DevOps?
Answer: Python

3. Discuss your experience building bridges between IT Ops, QA and development?
Answer : DevOps is all about effective communication and collaboration. I’ve been able to deal with production issues from the development and operations sides, effectively straddling the two worlds. I’m less interested in finding blame or playing the hero than I am with ensuring that all of the moving parts come together.

4.What types of testing are needed?
Answer : Software teams will often look for the “fair weather” path to system completion; that is, they start from an assumption that software will usually work and only occasionally fail. I believe to practice defensive programming in a pragmatic way, which often means assuming that the code will fail and planning for those failures. I try to incorporate unit test strategy, use of test harnesses, early load testing; network simulation, A/B and multivariate testing etc.

5. Which scripting languages do you think are most important for a DevOps engineer?
Answer : As far as scripting languages go, the simpler the better. In fact, the language itself isn’t as important as understanding design patterns and development paradigms such as procedural, object-oriented, or functional programming.

6. How do you expect you would be required to multitask as a DevOps professional?
Answer : Focus attention on bridging communication gaps between Development and Operations teams.

Understand system design from an architect’s perspective, software development from a developer’s perspective, operations and infrastructure from the perspective of a seasoned Systems Administrator.

Execute – to be able to actually do what needs to be done.

7. What testing is necessary to ensure that a new service is ready for production?
Answer : DevOps is all about continuous testing throughout the process, starting with development through to production. Everyone shares the testing responsibility. This ensures that developers are delivering code that doesn’t have any errors and is of high quality, and it also helps everyone leverage their time most effectively.

8. What’s a PTR in DNS?
Answer : Pointer records are used to map a network interface (IP) to a hostname. These are primarily used for reverse DNS. Reverse DNS is setup very similar to how normal (forward) DNS is setup. When you delegate the DNS forward, the owner of the domain tells the registrar to let your domain use specific name servers.

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

10. Which are the best DevOps instruments?
Answer : The most popular DevOps tools are mentioned below:

Git : Version Control System tool
Jenkins : Continuous Integration tool
Selenium : Continuous Testing tool
Puppet, Chef, Ansible : Configuration Management and Deployment tools
Nagios : Continuous Monitoring tool
Docker : Containerization tool

11. What are your desires from a career viewpoint of DevOps?
Answer : To be included within the conclusion to end delivery process and the foremost vital perspective of making a difference to move forward the method so as to empower the advancement and operations groups to work together and get it each other’s point of view

12. Clarify a few of the measurements that were taken after for DevOps success.
Answer : A few of the cases that may be specified are as follows:
The first and most important factor is the speed of delivery which means time taken for any work item to get into the production environment.
Next would be the deployment and how much time it would take once this process is automated.

It is almost necessary to track how many defects are found in different environments with respect to the PRODUCTION environment. This is very important in considering the features that need to be released faster. Use of Agile methodologies helps a lot and the prime goal is to reduce PRODUCTION level defects.

Normally deployments do not fail but it is very important to keep a track on this aspect and have a mechanism to roll back to the previous stable version.
In any DevOps implementation, unit testing is the key as well as functional testing. Based on the code changes done, often we need to look at whether these test break and to what extent. It is imperative that the automated test is robust enough to sustain any code changes.

It is very important to measure the actual or the average time that it takes to recover in case of a failure in the PRODUCTION environment. This is termed as Mean Time To Recover (MTTR) and it should be short. This also means that one needs to have proper monitoring tools to keep the recovery time short.

Performance of the application is another key metric which should be monitored especially after any deployments are done.

A very important factor for success is the number of bugs being reported by the customers which primarily depends on the quality of the application.

13. Have you been included in DevOps execution within the cloud? On the off chance that yes which cloud computing stage?
Answer : Examples of popular Cloud Computing Platforms:

AWS – Amazon Web Services
Microsoft Azure
Google Cloud

14. Explain the typical roles involved in DevOps.
Answer : 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.

15. Which scripting tools are used in DevOps?
Answer : Python, Ruby

16. What is configuration management in terms of infrastructure and mention a few popular tools used?
Answer : 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.

So the Ops or the system admin needs to ensure parity in different environments (Dev, QA, PROD etc…) by provisioning the systems.

Tools Used in this space to automate the tasks of configuration management described above are Chef / Puppet / Ansible

17. Explain a few prerequisites that are useful for DevOps implementation.
Answer : 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

18. What are the key components of DevOps?
Answer : Continuous Integration
Continuous Testing
Continuous Delivery
Continuous Monitoring

19. Explain Continuous Integration.
Answer : Continuous Integration may be a exceptionally critical component of the Spry handle. Ordinarily designers work on highlights or client stories inside a sprint and commit their changes to the adaptation control repository.

Once the code is committed, at that point the whole work of designers is well coordinates and the construct is performed on a standard premise based on each check-in or plan. Subsequently, Nonstop Integration as a hone forces the engineer to coordinated their changes with the others so as to induce an early criticism.

20. Explain Continuous Delivery.
Answer : 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.

21. Explain Continuous Testing.
Answer : 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.

22. Explain Continuous Monitoring.
Answer : 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

23.What is Extreme Programming (XP)?
Answer : Extreme Programming commonly referred to as XP is one of the most popular agile methodologies, which executes software development. XP rules are designed to focus more on customer satisfaction. It empowers developers to respond confidently to requirement changes through smaller iterations. XP emphasizes teamwork as managers, customers and developers work as equal partners in a collaborative team. Most of the companies use XP in their DevOps Journey.

24. What is Pair Programming?
Answer : Pair programming is one of the engineering practices of Extreme Programming rules. In this practice two programmers work on one computer, on the same design/algorithm/code/test.

One programmer acting as a “driver”, and the other acting as an “observer” who continuously watches/monitors to identify problems. Both roles can be exchanged at any point of time without any handoff.

25. What are the advantages of Pair Programming?
Answer : Pair Programming helps in raising discussions from two different points of view, which in turn help in increased understanding of code/algorithm/design/test.

26. What is Test Driven Development (TDD)?
Answer : Test Driven Development is one of the core agile and DevOps practices, which is more helpful in quick iterations and continuous integrations. In this method, test cases become the key to development process. This method ensures that problems are identified quickly, which helps manage risk elegantly.

TDD is a practice where you write code to address a failing test case. It is not only considered as a testing methodology, but also as a design and development methodology.

TDD starts with taking customer requirements, writing test cases and running the code against test cases. Test Cases fail as there is no code to address the test scenario; then, you write a simple code to PASS the test case.

27. What are the advantages of Test Driven Development?
Answer : As TDD first starts with the test case, the quality of code is increased as there will be one or more test cases for all the functionalities.

Refactoring code can be done confidently.

Eventually, the complete code in your application is well tested; since, it is constructed to address all the test cases.

Code turns more modular and flexible as developer is addressing all the test cases by coding in smaller units.

Note: TDD is only as good as its tests. If the tests are not reflecting the requirements, code cannot reflect the requirements.

To know more about Test Driven Development, you can refer to-

‘Test Driven Development: A Practical GUIDE – David Astels.’

28. What is a build?
Answer : Build is a process in which the source code is put together to verify whether it works as a single unit. In the process of build creation or generation, the source code will undergo compilation, testing, inspection and deployment. Usually, build generation process is completely automated in a way that a single command does everything.

29. What is Continuous Integration?
Answer : Continuous delivery is an important aspect to be understood when it comes to DevOps. On the path to Continuous delivery, Continuous Integration is a critical step. Continuous Integration defines when an automated build has to be generated. CI is one of the software development practices where member of the team frequently integrates their code, which then undergoes build generation process verifying the code written by individuals. Generally, each member will integrate his/her code once in a day. Each integration is verified and tested as part of build generation process.

Developer commits his changes

CI server polls Version Control repository every few minutes for changes.

CI server picks up changes and kicks off the build script.

Build scripts run and CI server generates a feedback based on the output of build script.

Feedback is checked to ensure that the build has run successfully; if not, the developer addresses the issue.

CI server keeps polling the Version Control Repository for more changes.

30. What are the benefits of Continuous Integration?
Answer : Software is deployable at any time. Having an immediate feedback mechanism helps the developers to quickly act if there are any issues.

Software quality increases as defects are prevented from being integrated.

Due to automated inspection and testing, software health can be tracked easily.

Results of the builds are published, which highlight the test cases that have failed.

Accountability of code is always recorded

31. What are Design Patterns?
Answer : In simple terms, Design Patterns are the solution to problems faced by developers- they represent the best practices that are used by developers. Design Patterns help an inexperienced developer to learn easily and quickly. Design Patterns have standard terminologies addressing specific scenario.

There are mainly 3 types of Design Patterns:

Creational: addresses design problems.

Structural: simplifies relationships between objects.

Behavioral: simplifies how objects interact with each other.

32. What is Component Based Development?
Answer : In CBD approach; unlike traditional way of development, developers look for existing well defined, tested and verified components to compose and assemble them to a product, instead of developing it from scratch.

33. What is Continuous Deployment?
Answer : Continuous Deployment is majorly about instrumenting the most important steps within the project life-cycle when moving code from quality assurance step to production environment. Continuous Deployment is a critical capability to enable in the continuous delivery pipeline. There are several patterns that enable the nature of Continuous DevOps deployment.

34. What is Blue/Green Deployment Pattern?
Answer : Blue/Green Deployment pattern addresses one of the most important challenges faced by automatic deployments; i.e., the cutover from final stage of testing to live production. Ensuring this cutover happens quickly is the best way to reduce system downtime.

In Blue/Green Deployment approach, the team first ensures two identical production environments; but, only one among them is LIVE at any given point of time.

The LIVE environment is considered as Blue environment, and as the team prepares the next release of their software, they conduct their final stage of testing; considering it as Green environment. Once the team completes their final round of testing, they utilize some sort of tools which enable the user requests directly to the new Green environment. The Blue environment is considered as idle. The basic idea here is to easily switch between the environments.

35. hat are the Advantages of Blue/Green Deployment Pattern?
Answer :
A stand-by production node is always running.

Allows rollback testing with every release.

Rollback option is always available.

36. What are the Disadvantages of Blue/Green Deployment Pattern?
Answer :
Cost of maintaining 2 production environments.

Databases are a challenge that may require refactoring.

37. What is Canary Release?
Answer : Canary release is a pattern that reduces the risk of introducing a new version of software into production; this is done by making it available in a controlled manner to a subset of users before making it available to the entire user set.

In this pattern, the team deploys the new version only to a subset of the infrastructure, where there are no user request routed. Once the team is happy with the performance tests, they start routing a selected group of users to the application. As and when they feel confident, the company can release more servers as the team also routes more user requests.

38.What are the Advantages of Canary Release?
Answer :
Slow Ramp-up/down helps in monitoring/metrics.

Ability to do capacity testing.

Very safe rollback strategy.

39.What are the Disadvantages of Canary Release?
Answer :
Managing more than one software at a time.

Hard to work on distributed software.

40. What is the importance of Continuous Testing?
Answer : Continuous Testing actually means testing earlier across the software development life cycle by enabling ongoing testing and verification of the code; so that it ensures the code actually functions and performs as designed.

41. What is Functional Testing and Non-functional Testing?
Answer : Functional Testing mainly targets the business goals as a way of ensuring that, within the code design and features, the product meets the customer’s business requirements.

On the other hand, non-functional testing focuses on performance, security, compatibility, usability, user experience, resource utilization, etc.

42. What are the foundational pillars of DevOps Testing?
Answer : The primary pillars of DevOps testing are:

Embrace testing early and ensure production readiness at all times.

Utilize proven technologies and patterns.

Apply appropriate rigor.

43. What is white box and black box testing?
Answer : Black box testing is where the tester does not know anything about internal structures of the application. On the other hand, box testing is where the tester knows about the structure and designs of the product.

White box testing is done at the unit and component level of testing; whereas, black box testing is done at the system and acceptance level of testing.

White box testing essentially needs some programming languages; whereas, black box testing may or may not need any programming skills.

44. What are the types of testing frameworks available in the market?
Answer : There are four types of testing frameworks available in the market. They are-

Modular Testing Frameworks: Aligns itself closely to the module structure of the application that is targeted for testing. Individual modules have their own test scripts and can be built hierarchically into larger and larger sets.
Advantage: It is very easy and quick going.

Disadvantage: Data gets embedded in test scripts, which in turn makes it tough to maintain.

Data driven Testing Frameworks: Test case logic is defined in the test scripts and input test data is kept outside of the test scripts. Test data can be in Excel files, CSV, JSON, etc. When test suite is run, the test data is loaded into variables in the test scripts.
Advantage: Requires less number of test scripts over modular framework.

Disadvantage: There still exists tight coupling between data and scripts.

Keyword Driven Testing Frameworks: It requires development of keywords and test data tables independent of test automation tool used to execute. Tests can be designed with or without the application.
Advantage: More flexible as both Data and Keywords can be reused across the scripts.

Disadvantage: Flexibility comes at the cost of complexity.

Hybrid Testing Frameworks: Tends to take the best of the other frameworks mentioned above and combines to a structured framework.
Advantage: Incorporates all the testing framework approaches.

Disadvantage: Very complex.

45. Name some automation testing frameworks you know.
Answer : Selenium, QTP, Appium, IBM Rational Functional Tester, Robot Framework, Cucumber, Nose, etc.

46. What is Resilience Test?
Answer : Tests that ensure recovery without data and functionality loss after a failure are called Resiliency tests. Here are the examples of Resilience test tools.

Hystrix: An open source tool, which has latency and fault tolerance libraries, designed to isolate points of access to remote systems and services.

Chaos Monkey: Developed by Netflix to randomly disable parts of the system and simulate production failures.

47. What is Configuration Management?
Answer : The process of storing, modifying, assessing and identifying all the artifacts of a project and understanding their interconnectedness is called Configuration Management. Configuration Management strategy is key for any project because it is the plan that outlines how you will manage the changes within your project. Configuration Management is synonymous with Version Control.

48. What is Version Control?
Answer : Version Control is an application that keeps track of different versions of your project as well as its artifacts and components. Storing files on USB drives is not version control. People think that version control is only for code, but its not. Every single artifact that is related to your project- source code, deployment scripts, test scripts, database scripts, documentation, libraries and configuration files, etc., are included.

There are two types of Version Control Systems:

Centralized Version Control System

Distributed Version Control System

49. What do you know about Git?
Answer : Git is a distributed version control system, it plays an important role in achieving DevOps. Git is a free software, distributed under the terms of GNU General Public License V2.0.

Advantages:

Git is a free and open source software.

There is no single point of failure.

No need of high end servers.

Git has the hash key mechanism to authenticate users.

Easy and Fast

As there are multiple copies of the code, probability of losing data is very less.

50.What is git stash?
Answer : Let’s suppose, a user is working on one of the features and suddenly a customer escalates an issue. User may have to keep his work aside and resolve the customer’s issue as a high priority. User cannot commit his partial code and cannot throw away his changes; in such cases git provides a solution with stash operation. Git stash operation moves all the modified files, stages, changes and pushes them onto a stack of unfinished changes that a user can get back any time.

Commands:
$] git stash
To see the list of stash
$] git stash list
To get back the stashed files to current working directory
$] git stash pop

51. What is git rebase?
Answer : After creating a personal branch and adding and modifying files; what if the master branch is updated and your branch becomes stale? In such scenarios, one can use git rebase. Git rebase command e will replay the changes made in your local branch at the tip of master, allowing conflicts to be resolved in the process.

52. What is git stash drop?
Answer : In order to remove stashed items, git stash drop command is used. By default this command deletes the last stashed items. We can also delete a particular stash item. Git stash list command lists all the stashed items. We can select the stash item to be removed and pass its name to stash drop command.

53. How do you create a new repository in git?
Answer : Create a project directory and run “git init” under that directory. It creates .git directory in the project directory.

54. How can one know the branches that are already merged into the master branch?
Answer :
git branch -merged master lists branches merged into master.

git branch -no-merged lists branches that have not been merged.

55. What Is Amazon Web Services In Devops?
Answer : AWS provides services that help you practice DevOps at your company and that are built first for use with AWS. These tools automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps.

56. What Is The Role Of A Devops Engineer?
Answer : There’s no formal career track for becoming a DevOps engineer. They are either developers who get interested in deployment and network operations, or sysadmin who have a passion for scripting and coding, and move into the development side where they can improve the planning of test and deployment.

57. What Is Devops With Cloud Computing?
Answer : Inseparable development and operations practices are universally relevant. Cloud computing, agile development, and DevOps are interlocking parts of a strategy for transforming IT into a business adaptability enabler. If cloud is an instrument, then DevOps is the musician that plays it.

58. What Is Devops Tooling By Aws?
Answer : AWS provides services that help you practice DevOps at your company and that are built first for use with AWS. These tools automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps.

59. How Do You Handle Continuous Integration And Continuous Delivery In Aws Devops?
AnswerANS : The AWS Developer Tools help you securely store and version your application’s source code and automatically build, test, and deploy your application to AWS or your on-premises environment.
Start with AWS Code Pipeline to build a continuous integration or continuous delivery workflow that uses AWS Code Build, AWS Code Deploy, and other tools, or use each service separately.

60. What Is Aws Code Pipeline In Aws Devops?
Answer : AWS Code Pipeline is a continuous integration and continuous delivery service for fast and reliable application and infrastructure updates. Code Pipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define. This enables you to rapidly and reliably deliver features and updates.

61. What Is Aws Code Build In Aws Devops?
Answer : AWS Code Build is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. With Code Build, you don’t need to provision, manage, and scale your own build servers. Code Build scales continuously and processes multiple builds concurrently, so your builds are not left waiting in a queue.

62. What Is Aws Code Deploy In Aws Devops?
Answer : AWS Code Deploy automates code deployments to any instance, including Amazon EC2 instances and on-premises servers. AWS Code Deploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications.

63. What Is Aws Code Star In Aws Devops?
Answer : AWS Code Star enables you to quickly develop, build, and deploy applications on AWS. AWS Code Star provides a unified user interface, enabling you to easily manage your software development activities in one place. With AWS Code Star, you can set up your entire continuous delivery tool chain in minutes, allowing you to start releasing code faster.

64. How Instacart Uses Aws Devops?
Answer : Instacart uses AWS Code Deploy to automate deployments for all of its front-end and back-end services. Using AWS Code Deploy has enabled Instacart developers to focus on their product and worry less about deployment operations.

65. How Lulu Lemon Athletic Uses Aws Devops?
Answer : Lulu lemon athletic uses a variety of AWS services to engineer a fully automated, continuous integration and delivery system. Lulu lemon deploys artifacts distributed via Amazon S3 using AWS Code Pipeline. From this stage, the artifacts are deployed to AWS Elastic Beanstalk.

66. What Is Amazon Elastic Container Service In Aws Devops?
Answer : Amazon Elastic Container Service (ECS) is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances.

67. What Is Aws Lambda In Aws Devops?
Answer : AWS Lambda lets you run code without provisioning or managing servers. With Lambda, you can run code for virtually any type of application or backend service – all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability.

68. What Are Aws Developer Tools?
Answer : The AWS Developer Tools is a set of services designed to enable developers and IT operations professionals practicing DevOps to rapidly and safely deliver software.

Together, these services help you securely store and version control your application’s source code and automatically build, test, and deploy your application to AWS or your on-premises environment. You can use AWS Code Pipeline to orchestrate an end-to-end software release workflow using these services and third-party tools or integrate each service independently with your existing tools.

69. What Is Code Commit In Aws Devops?
Answer : AWS Code Commit is a fully-managed source control service that makes it easy for companies to host secure and highly scalable private Git repositories. Code Commit eliminates the need to operate your own source control system or worry about scaling its infrastructure. You can use Code Commit to securely store anything from source code to binaries, and it works seamlessly with your existing Git tools.

70. What Are The Benefits Of Aws Code Build In Aws Devops?
Answer : AWS Code Build is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. With Code Build, you don’t need to provision, manage, and scale your own build servers.

Code Build scales continuously and processes multiple builds concurrently, so your builds are not left waiting in a queue. You can get started quickly by using prepackaged build environments, or you can create custom build environments that use your own build tools. With Code Build, you are charged by the minute for the computer resources you use.

AWS Code Build Benefits:

Fully Managed Build Service AWS Code Build eliminates the need to set up, patch, update, and manage your own build servers and software. There is no software to install or manage.
Continuous Scaling – AWS Code Build scales automatically to meet your build volume. It immediately processes each build you submit and can run separate builds concurrently, which means your builds are not left waiting in a queue.
Pay as You Go – With AWS Code Build, you are charged based on the number of minutes it takes to complete your build.
Extensible – You can bring your own build tools and programming runtimes to use with AWS Code Build by creating customized build environments in addition to the prepackaged build tools and runtimes supported by Code Build.
Enables Continuous Integration and Delivery – AWS Code Build belongs to a family of AWS Code Services, which you can use to create complete, automated software release workflows for continuous integration and delivery (CI/CD). You can also integrate Code Build into your existing CI/CD workflow.
Secure – With AWS Code Build, your build artifacts are encrypted with customer-specific keys that are managed by the AWS Key Management Service (KMS). Code Build is integrated with AWS Identity and Access Management (IAM), so you can assign user-specific permissions to your build projects.

71. What Is Amazon S3 In Aws Devops?
Answer : Amazon Simple Storage Service (Amazon S3) is object storage with a simple web service interface to store and retrieve any amount of data from anywhere on the web.

72. What Is Amazon Rds In Aws Devops?
Answer : Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud.

73. What Is Amazon Quick Sight In Aws Devops?
Answer : Amazon Quick Sight is a fast, cloud-powered business analytics service that makes it easy to build visualizations, perform ad-hoc analysis, and quickly get business insights from your data.

74. What Is Aws Iot In Aws Devops?
Answer : AWS IoT is a managed cloud platform that lets connected devices easily and securely interact with cloud applications and other devices.

75. What Are The Benefits Of Aws Code Deploy In Aws Devops?
Answer : AWS Code Deploy is a service that automates software deployments to a variety of computer services including Amazon EC2, AWS Lambda, and instances running on-premises.

AWS Code Deploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications.

AWS Code Deploy Benefits:

Automated Deployments – AWS Code Deploy fully automates your software deployments, allowing you to deploy reliably and rapidly. You can consistently deploy your application across your development, test, and production environments whether deploying to Amazon EC2, AWS Lambda, or instances running on-premises. The service scales with your infrastructure so you can deploy to one Lambda function or thousands of EC2 instances.
Minimize Downtime – AWS Code Deploy helps maximize your application availability during the software deployment process. It introduces changes incrementally and tracks application health according to configurable rules. Software deployments can easily be stopped and rolled back if there are errors.
Centralized Control – AWS Code Deploy allows you to easily launch and track the status of your application deployments through the AWS Management Console or the AWS CLI. Code Deploy gives you a detailed report allowing you to view when and to where each application revision was deployed.
Easy To Adopt – AWS Code Deploy is platform and language agnostic, works with any application, and provides the same experience whether you’re deploying to Amazon EC2 or AWS Lambda. You can easily reuse your existing setup code. Code Deploy can also integrate with your existing software release process or continuous delivery tool chain (e.g., AWS Code Pipeline, GitHub, and Jenkins).

76. What Is Vpc?
Answer : A virtual private cloud (VPC) is a virtual network dedicated to your AWS account. You can configure or create your VPC as per requirement like select region, create subnets (IP- CIDR), configure route tables, security groups, Internet gateway etc to your AWS account By which you can launch your AWS resources, such as Amazon EC2, RDS instances etc, into your VPC.

So basically you can say that Amazon VPC is the networking layer for AWS Infrastructure.

77. Describe three DevOps anti-patterns
Answer : One DevOps anti-pattern is to reduce the silo-based isolation of development and operations with a new DevOps team that silos itself from other parts of the organization.

The first DevOps anti-pattern mentioned leads to the second one, which is failing to include all aspects
of the organization in an ongoing DevOps transition. Organizations embarking upon a DevOps
transition should have some type of DevOps center of excellence that makes sure all tiers of the
organization — from IT executives to project managers to members of the security and hardware
provisioning teams — embrace and employ DevOps practices.

Another common anti-pattern is not defining KPIs at the start of a DevOps transition. Without
identifying important DevOps KPIs and creating a baseline at the start of the journey, it is impossible to
evaluate success and identify failures.

78. Name three important DevOps KPIs.
Answer : There are many KPIs that can be used to measure DevOps success. Three of the most common DevOps
KPIs are:
mean time to failure recovery
• deployment frequency
• percentage of failed deployments

79. The acronym CAMS is often used to describe the core tenets of DevOps. What does it stand
for?
Answer : The CAMS acronym stands for culture, automation, measurement and sharing.

80. Is a culture change a requirement or a result of doing DevOps?
Answer : The term culture describes the processes and practices people use. And culture can only change when people change the processes and practices they routinely employ. The introduction of distributed
version control system tools, such as Git, deployments with Docker instead of the use of monolithic
application servers, and the use of CI tools, such as Jenkins or Maven, in the software development
lifecycle will result in a culture change. But these changes are the result of the introduction of new
DevOps tools, not a prerequisite.
Any cultural change that DevOps precipitates is an output of using new tools and adopting new
processes. It is not an input.
It should be noted that many DevOps evangelists would take serious umbrage with this sample DevOps
interview question and answer. Be prepared to argue and defend both sides of the culture argument.

81. What Is Amazon Ec2 In Aws Devops?
Answer: Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.

82. Is a culture change a requirement or a result of doing DevOps?
Answer : The term culture describes the processes and practices people use. And culture can only change when people change the processes and practices they routinely employ. The introduction of distributed
version control system tools, such as Git, deployments with Docker instead of the use of monolithic
application servers, and the use of CI tools, such as Jenkins or Maven, in the software development
lifecycle will result in a culture change. But these changes are the result of the introduction of new
DevOps tools, not a prerequisite.
Any cultural change that DevOps precipitates is an output of using new tools and adopting new
processes. It is not an input.
It should be noted that many DevOps evangelists would take serious umbrage with this sample DevOps
interview question and answer. Be prepared to argue and defend both sides of the culture argument.

83.Describe branching strategies you have used.
Answer : This question is asked to test your branching experience so tell them about how you have used branching in your previous job and what purpose does it serves, you can refer the below points:

Feature branching
A feature branch model keeps all of the changes for a particular feature inside of a branch. When the feature is fully tested and validated by automated tests, the branch is then merged into master.
Task branching
In this model each task is implemented on its own branch with the task key included in the branch name. It is easy to see which code implements which task, just look for the task key in the branch name.
Release branching
Once the develop branch has acquired enough features for a release, you can clone that branch to form a Release branch. Creating this branch starts the next release cycle, so no new features can be added after this point, only bug fixes, documentation generation, and other release-oriented tasks should go in this branch. Once it is ready to ship, the release gets merged into master and tagged with a version number. In addition, it should be merged back into develop branch, which may have progressed since the release was initiated.
In the end tell them that branching strategies varies from one organization to another, so I know basic branching operations like delete, merge, checking out a branch etc.

84. Explain how you can move or copy Jenkins from one server to another?
Answer : I will approach this task by copying the jobs directory from the old server to the new one. There are multiple ways to do that; I have mentioned them below:
You can:

Move a job from one installation of Jenkins to another by simply copying the corresponding job directory.
Make a copy of an existing job by making a clone of a job directory by a different name.
Rename an existing job by renaming a directory. Note that if you change a job name you will need to change any other job that tries to call the renamed job.

85. Explain how can create a backup and copy files in Jenkins?
Answer : Answer to this question is really direct. To create a backup, all you need to do is to periodically back up your JENKINS_HOME directory. This contains all of your build jobs configurations, your slave node configurations, and your build history. To create a back-up of your Jenkins setup, just copy this directory. You can also copy a job directory to clone or replicate a job or rename the directory.

86. Explain how you can setup Jenkins job?
Answer : My approach to this answer will be to first mention how to create Jenkins job. Go to Jenkins top page, select “New Job”, then choose “Build a free-style software project”.
Then you can tell the elements of this freestyle job:

Optional SCM, such as CVS or Subversion where your source code resides.
Optional triggers to control when Jenkins will perform builds.
Some sort of build script that performs the build (ant, maven, shell script, batch file, etc.) where the real work happens.
Optional steps to collect information out of the build, such as archiving the artifacts and/or recording javadoc and test results.
Optional steps to notify other people/systems with the build result, such as sending e-mails, IMs, updating issue tracker, etc..

87. Mention some of the useful plugins in Jenkins.
Answer : Below, I have mentioned some important Plugins:

Maven 2 project
Amazon EC2
HTML publisher
Copy artifact
Join
Green Balls
These Plugins, I feel are the most useful plugins. If you want to include any other Plugin that is not mentioned above, you can add them as well. But, make sure you first mention the above stated plugins and then add your own.

88. How will you secure Jenkins?
Answer : The way I secure Jenkins is mentioned below. If you have any other way of doing it, please mention it in the comments section below:

Ensure global security is on.
Ensure that Jenkins is integrated with my company’s user directory with appropriate plugin.
Ensure that matrix/Project matrix is enabled to fine tune access.
Automate the process of setting rights/privileges in Jenkins with custom version controlled script.
Limit physical access to Jenkins data/folders.
Periodically run security audits on same.

89. What is Automation Testing?
Answer : Automation testing or Test Automation is a process of automating the manual process to test the application/system under test. Automation testing involves use of separate testing tools which lets you create test scripts which can be executed repeatedly and doesn’t require any manual intervention.

90. What are the benefits of Automation Testing?
Answer : I have listed down some advantages of automation testing. Include these in your answer and you can add your own experience of how Continuous Testing helped your previous company:

Supports execution of repeated test cases
Aids in testing a large test matrix
Enables parallel execution
Encourages unattended execution
Improves accuracy thereby reducing human generated errors
Saves time and money

91. How to automate Testing in DevOps lifecycle?
Answer : I have mentioned a generic flow below which you can refer to:
In DevOps, developers are required to commit all the changes made in the source code to a shared repository. Continuous Integration tools like Jenkins will pull the code from this shared repository every time a change is made in the code and deploy it for Continuous Testing that is done by tools like Selenium

92. What are the Testing types supported by Selenium?
Answer : Selenium supports two types of testing:
Regression Testing: It is the act of retesting a product around an area where a bug was fixed.
Functional Testing: It refers to the testing of software features (functional points) individually.

93. What is Selenium IDE?
Answer : My suggestion is to start this answer by defining Selenium IDE. It is an integrated development environment for Selenium scripts. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run in.
Now include some advantages in your answer. With autocomplete support and the ability to move commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.

94. What is the difference between Assert and Verify commands in Selenium?
Answer : I have mentioned differences between Assert and Verify commands below:

Assert command checks whether the given condition is true or false. Let’s say we assert whether the given element is present on the web page or not. If the condition is true, then the program control will execute the next test step. But, if the condition is false, the execution would stop and no further test would be executed.
Verify command also checks whether the given condition is true or false. Irrespective of the condition being true or false, the program execution doesn’t halts i.e. any failure during verification would not stop the execution and all the test steps would be executed.

96. How to launch Browser using WebDriver?
Answer : The following syntax can be used to launch Browser:
WebDriver driver = new FirefoxDriver();
WebDriver driver = new ChromeDriver();
WebDriver driver = new InternetExplorerDriver();

97. When should I use Selenium Grid?
Answer : For this answer, my suggestion would be to give a small definition of Selenium Grid. It can be used to execute same or different test scripts on multiple platforms and browsers concurrently to achieve distributed test execution. This allows testing under different environments and saving execution time remarkably.

98. What is Ansible module?
Answer : Modules are considered to be the units of work in Ansible. Each module is mostly standalone and can be written in a standard scripting language such as Python, Perl, Ruby, bash, etc.. One of the guiding properties of modules is idempotency, which means that even if an operation is repeated multiple times e.g. upon recovery from an outage, it will always place the system into the same state.

99. What are playbooks in Ansible?
Answer : Playbooks are Ansible’s configuration, deployment, and orchestration language. They can describe a policy you want your remote systems to enforce, or a set of steps in a general IT process. Playbooks are designed to be human-readable and are developed in a basic text language.
At a basic level, playbooks can be used to manage configurations of and deployments to remote machines.

100. How do I see a list of all of the ansible_ variables?
Answer : Ansible by default gathers “facts” about the machines under management, and these facts can be accessed in Playbooks and in templates. To see a list of all of the facts that are available about a machine, you can run the “setup” module as an ad-hoc action:
Ansible -m setup hostname
This will print out a dictionary of all of the facts that are available for that particular host

101. Can I refresh static components of a deployed application without having to redeploy the entire application?
Answer : Yes, you can use weblogic.Deployer to specify a component and target a server, using the following syntax:
java weblogic.Deployer -adminurl https://admin:7001 -name appname -targets server1,server2 -deploy jsps/*.jsp