Question.1 What is the concept of DevOps?
Answer :DevOps implies for a collection of practices that point in reducing the gap that exists between software development and operations. This way, DevOps helps in uniting programming engineer activities and programming administrator activities. DevOps takes its bases from Agile methodology and joins program developers and program operation teams to co-work in the lifecycle of the application that is being created from the initial stage of design to the final stage of customer support.
Question.2 What is the need of DevOps in the IT business?
Answer :DevOps helps developers in the automation and acceleration of the code development, gives more efficient ways of testing thus providing a program of higher efficiency and quality. Making use of the technology of DevOps for processes like better developing and testing environments, IT companies can achieve higher growth of success, a few of which are the following:
- Higher deployment frequency
- Decrease in the errors during the software releases
- Increase in the quality of the code
Question.3 What are the essential practice areas of DevOps?
Answer :In the setting of DevOps, the essential areas of training are Infrastructure Automation, Continuous Integration, Continuous Delivery, and Reliability Engineering.
Question.4 What is the concept of Infrastructure as Code in DevOps?
Answer : Infrastructure as Code, also called as IaC, is the arrangement and administration of infrastructure like load balancers, networks and virtual machines, utilizing programming strategies like continuous integration and version control. Interfacing with infrastructure by the utilization of tools that are code-based is the idea of IaC, in a way like the testing of an application code.
IaC helps programming engineers by making them ready to test the code in a production-like condition even in the beginning stages of the software development life cycle. In this manner, it helps anticipating issues which are basic in deployment and in addition, it gives a steady environment for the code.
Question.5 What do you mean by Continuous Delivery in DevOps?
Answer :Continuous Delivery is an advancement process with regards to DevOps where any updates in a portion of code are made and tested by automation and after that, the segments of code are sent to release for production. The point of Continuous Delivery is that an application program that is ready to be deployed, which has undergone all the standard test processes, is constantly accessible to any other members of the development team to release for production.
Question.6 Explain Continuous Integration in DevOps?
Answer : Continuous Integration, or CI, is a process in DevOps where the build and testing of the code is automated whenever the central version control repository is updated with any changes. Whenever any team member merges his or her changes into the shared central version control repository, the repository is updated.
With every merge of an update, an automated build system is triggered to take the latest code from the version control repository and the building, testing and approval of the code happens.
Question.7 Explain the contrast between Continuous Integration (CI) and Continuous Delivery (CD) in DevOps?
Answer : Continuous Integration, as the name implies, is the way toward merging or integrating the most recent code updates consistently, shared by each colleague in the team. Each merge of the code triggers a computerized build and testing strategy to build and test the most recent code of the application in the main repository.
CI goes about as a first stage channel, sifting through numerous issues with the code which the developers may confront if they work with conventional strategies.
Continuous delivery or CD is a procedure which runs the build and test of the product and consequently pushes it into the release line for production, if it meets every one of the criteria of the standard testing methodology.
Question.8 What are some of the popular tools that are used regularly by a DevOps Engineer?
Answer :The following rundown gives the tools that come convenient when working with DevOps while building a product application:
Question.9 What is the concept of Monitoring in DevOps?
Answer : Monitoring is the process of collecting feedback information about the execution of a program application that is underway. Monitoring in DevOps utilizes the concept of Telemetry, which suggests utilizing a blend of agents which are installed in the deployment situations, SDK based on the markers embedded into the source code of the application, and server logging. These components could be utilized exclusively or as a combination.
The objective of monitoring is to accumulate the feedback information of the application with the goal that the group taking working on it can recognize production issues promptly.
Question.10 What is Memcached?
Answer : Memcached is an open source Memory Object Caching System. It is a distributed memory that stores information and objects in RAM and thus decreasing the number of times an API or a data base is accessed.
Memcached helps improve the utilization of your system memory by taking memory from those parts where it is more than what is required and makes this memory open to the parts where the memory is less than what is required.
The motivation behind utilizing Memcached is to raise the speed of dynamic web applications by diminishing the seriousness of the utilization on the database load. Memcached makes development easier, helps in making deployment faster, and gives answers for issues that databases are facing. Memcached is run on Linux, Unix and MS Windows OS.
Applications which utilized Memcached idea store the request into RAM through layering, and when no more storage is available, they look for the database to store.
Question.11 What is the Jenkins tool used for in DevOps?
Answer : Jenkins is one of the best DevOps tools which is utilized for the task of Continuous Integration, or CI. Continuous Integration is the method of merging the updates or changes made to the code when any member of the team updates the VCS.
Jenkins is open source and is written in Java. It rolls out the way toward fusing improvements in to the code in a less demanding a robotized technique, so designers can simply have the refreshed and crisp form of the venture at whatever point required.
The Continuous Integration task is completed by Jenkins with the assistance of plugins. At different DevOps phases, for example, Build, Continuous Monitoring, Continuous Deployment, Continuous testing, Configuration Management and so forth, an alternate plugin is installed. Jenkins accompanies 1000+ diverse plugins to help all the previously mentioned phases of the software development.
Question.12 What is a Version Control System in DevOps?
Answer : Version Control System, which is also referred to as VCS, is a group of tools that track the changes and updates which are made to the source code of a software product over a stretch of time that the product is being created.
The VCS acts as a central repository for the source code and helps the developers in tracking the code back to various updates done by all of the team members. To review the code at any point of time, this process becomes helpful as it doesn’t disturb the current version of the code.
Version Control System tracks each and every one of the changes or updates made to the source code at any given point of time. Another advantage is that two team members can be working on the same code segment, but code written by one person will not clash against the code written by the other person.
After the development of a code segment is finished, the total code along with this new segment is tested for any prevailing issues, so that they can be fixed before the development of the next segment of the code can be started.
Question.13 What is the general Version Control Systems used for DevOps?
Answer : Git is the most well-known Version Control System (VCS) in DevOps methods. Git has a distributed architecture and thus comes under Distributed Version Control System (DVCS). Git offers Security and Flexibility in a way better than any other Version Control Systems available in the present market.
Question.14 Explain the purpose of containers in DevOps?
Answer : A container is an executable bundle of a fragment of programming that incorporates the product code, the run time, the system tools necessary for it to run, system libraries and the necessary settings to run it. The purpose of using containers is to make hosting applications simpler in conditions that are portable, and this idea is constantly used while practicing different processes of DevOps. The advantages of DevOps with containerization are as follows:
- Using containers to develop code, test and send them doesn’t change the environment at various stages. This makes the team joint effort less demanding as the containerization helps in maintaining a stable environment.
- Updates to a specific segment of the application can be taken off without disturbing the remaining portion of the application. The container can be restarted to refresh one a portion in the total application.
While practicing DevOps strategies amid the development cycle of a software product, there arises a necessity to switch between various development and deployments stages many times. Containerization makes this switching process possible as they enable user to run any sort of application inside it independent of the language it is developed in.
Question.15 Name the core processes followed in DevOps, keeping in mind the application development and deployment.
Answer : The following are the core tasks followed in DevOps during a software development life cycle:
- Code development
- Unit testing of code
- Packaging of the code
- Deployment of the code
Question.16 Compare DevOps processes with the Agile methodology.
Answer : DevOps processes and tools are motivated from Agile methodology, and also feel similar to the Agile processes but both of these processes contrast in the way their objective is characterized.
Agile process is used to accomplish an advancement lifecycle of a product application which is consistent and smooth whereas DevOps tries to decrease the gap amongst development and deployment of the product and at the same time it uses methods which guarantee quicker turnaround time, less number of issues and higher efficiency of the code created.
DevOps complements Agile methodology and is a derivation from Agile methodology but is not totally same as Agile methodology.
Question.17 What is a Git Bisect in DevOps?
Answer :A git bisect is a binary search method used to find out a bad git commit. The git bisects helps the developers walk through all the recent git commits. The developer then reviews the good or bad git commits and close in on the git commit which created the issue.
The git command used for this is git bisect
Question.18 Explain the flow of concept of DevOps in a general software development lifecycle
Answer :Every company has its own set of practices for DevOps depending on their business needs and prioritizing based on those concepts which best serve the requirements of the company. The common flow of DevOps processes, in most of the IT companies is as follows:
- Source code for the application to be developed is given by the developer team
- This source code is stored in a Version Control System (VCS) which acts a central repository to capture all the changes made in the code at different points of development.
- The most commonly used Version Control System is Git.
- To extract the source code from the Git repository, Jenkins is used, and the code is built using Ant or Maven.
- Puppet, a configuration management tool is used to deploy the developed code and provisions a testing environment.
- The code is released from Jenkins tool to the test environment provisioned by Puppet.
- Selenium is used to do the testing of the code.
- Puppet provides a production server environment for the code.
- Containers from Docker tool provide the testing environment necessary to test the code developed.
- Once testing is completed on the code, Jenkins sends the code to deployment on the production server which is provided and maintained by Puppet.
- Nagios is a tool used to monitor the code deployed by Jenkins.
Question.19 What is the prominent scripting language for DevOps?
Answer : DevOps experts lean toward using Python as their scripting language.