Students also Learn Related Courses
Devops Interview Questions and answers
DevOps Interview Questions and answers for beginners and experts. List of frequently asked DevOps Interview Questions with answers by Besant Technologies. We hope these DevOps Interview Questions and answers are useful and will help you to get the best job in the networking industry. This DevOps Interview Questions and answers are prepared by DevOps Professionals based on MNC Companies’ expectations. Stay tuned we will update New DevOps Interview questions with Answers Frequently. If you want to learn Practical DevOps Training then please go through this DevOps Training in Chennai and DevOps Training in Bangalore .
Best DevOps Interview Questions and answers
Besant Technologies supports the students by providing DevOps Interview Questions and answers for the job placements and job purposes. DevOps is the leading important course in the present situation because more job openings and the high salary pay for this DevOps and more related jobs. We provide the DevOps Online Training also for all students around the world through the Gangboard medium. These are top DevOps Interview Questions and answers, prepared by our institute experienced trainers.
DevOps Interview Questions and answers for the job placements
Here is the list of most frequently asked DevOps Interview Questions and Answers in technical interviews. These questions and answers are suitable for both freshers and experienced professionals at any level. The questions are for intermediate to somewhat advanced Devopsprofessionals, but even if you are just a beginner or fresher you should be able to understand the answers and explanations here we give.
These DevOps Interview Questions and Answers will guide you to clear the following Certifications
- DevOps Foundation
- DevOps Leader(DOL)
- DevOps Test Engineering(DTE)
Answer: Where the Configuration of any servers or toolchain or application stack required for an organization can be made into more descriptive level of code and that can be used for provisioning and manage infrastructure elements like Virtual Machine, Software, Network Elements, but it differs from scripts using any language, where they are series of static steps coded, where Version control can be used in order to track environment changes.Example Tools are Ansible, Terraform.
Answer: Obviously the main area of Version Control is Source code management, Where every developer code should be pushed to the common repository for maintaining build and release in CI/CD pipelines.Another area can be Version control For Administrators when they use Infrastructure as A Code (IAC) tools and practices for maintaining The Environment configuration.Another Area of Version Control system Can be Artifactory Management Using Repositories like Nexus & DockerHub.
Answer: Opensource tools predominantly used by any organization which is adapting (or) adopted DevOps pipelines because devops came with the focus of automation in various aspects of organization build and release and change management and also infrastructure management areas.
So developing or using a single tool is impossible and also everything is basically trial and error phase of development and also agile cuts down the luxury of developing a single tool , so opensource tools were available on the market pretty much saves every purpose and also gives organization an option to evaluate the tool based on their need .
Answer: Ansible is Agentless configuration management tool, where puppet or chef needs agent needs to be run on the agent node and chef or puppet is based on pull model, where your cookbook or manifest for chef and puppet respectively from the master will be pulled by the agent and ansible uses ssh to communicate and it gives data-driven instructions to the nodes need to be managed , more like RPC execution, ansible uses YAML scripting, whereas puppet (or) chef is built by ruby uses their own DSL .
Answer:
- roles/
- common/
- tasks/
- handlers/
- files/
- templates/
- vars/
- defaults/
- meta/
- webservers/
- tasks/
- defaults/
- meta/
Where common is role name, under tasks – there will be tasks (or) plays present, handlers – to hold the handlers for any tasks, files – static files for copying (or) moving to remote systems, templates- provides to hold jinja based templating , vars – to hold common vars used by playbooks.
Answer: Jinja2 templating is the Python standard for templating , think of it like a sed editor for Ansible , where it can be used is when there is a need for dynamic alteration of any config file to any application like consider mapping a MySQL application to the IP address of the machine, where it is running, it cannot be static , it needs altering it dynamically at runtime .
Format
{{ foo.bar }}
The vars within the {{ }} braces are replaced by ansible while running using template module.
Answer: Organizing playbooks as roles , gives more readability and reusability to any plays , while consider a task where MySQL installation should be done after the removal of Oracle DB , and another requirement is needed to install MySQL after java installation, in both cases we need to install MySQL , but without roles need to write playbooks separately for both use cases , but using roles once the MySQL installation role is created can be utilised any number of times by invoking using logic in site.yaml .
No, it is not necessary to create roles for every scenario, but creating roles is a best practice in Ansible.
Answer: As the lifetime of any containers is while running after a container is destroyed you cannot retrieve any data inside a container, the data inside a container is lost forever, but persistent storage for data inside containers can be done using volumes mount to an external source like host machine and any NFS drivers.
Answer: Docker engine contacts the docker daemon inside the machine and creates the runtime environment and process for any container, docker composes links several containers to form as a stack used in creating application stacks like a LAMP, WAMP, XAMP.
Answer: Docker container can be run in two modes
Attached: Where it will be run in the foreground of the system you are running, provides a terminal inside to container when -t option is used with it, where every log will be redirected to stdout screen.
Detached: This mode is usually run in production, where the container is detached as a background process and every output inside the container will be redirected log files inside /var/lib/docker/logs/<container-id>/<container-id.json> and which can be viewed by docker logs command.
Answer: Docker inspects <container-id> will give output in JSON format, which contains details like the IP address of the container inside the docker virtual bridge and volume mount information and every other information related to host (or) container specific like the underlying file driver used, log driver used.
docker inspect [OPTIONS] NAME|ID [NAME|ID…]
Options
Name, shorthand Default Description
— format, -f Format the output using the given Go template
–size , -s Display total file sizes if the type is container
–type Return JSON for specified type
Answer: Docker stats command can be used to check the resource utilization of any docker container, it gives the output analogous to Top command in Linux, it forms the base for container resource monitoring tools like advisor, which gets output from docker stats command.
docker stats [OPTIONS] [CONTAINER…]
Options
Name, shorthand Default Description
— all, -a Show all containers (default shows just running)
–format Pretty-print images using a Go template
–no-stream Disable streaming stats and only pull the first result
–no-trunc Do not truncate output
Answer: Where continuos deployment is fully automated and deploying to production needs no manual intervention in continuos deployment, whereas in continuos delivery the deployment to production has some manual intervention for change management in Organization for better management, and it needs to approved by manager or higher authorities to be deployed in production. According to your application risk factor for organization, the continuos deployment (or) delivery approach will be chosen.
Answer: In ansible, there is a module called delegate_to, in this module section provide the particular host (or) hosts where your tasks (or) task need to be run.
tasks:
– name: ” Elasticsearch Hitting”
uri: url='{{ url2 }}_search?q=status:new’ headers='{“Content-type”:”application/json”}’ method=GET return_content=yes
register: output
delegate_to: 127.0.0.1
Answer: Where a set_fact sets the value for a factor at one time and remains static, even though the value is quite dynamic and vars keep on changing as per the value keeps on changing for the variable.
tasks:
– set_fact:
fact_time: “Fact: {{lookup(‘pipe’, ‘date \”+%H:%M:%S\”‘)}}”
– debug: var=fact_time
– command: sleep 2
– debug: var=fact_time
tasks:
– name: lookups in variables vs. lookups in facts
hosts: localhost
vars:
var_time: “Var: {{lookup(‘pipe’, ‘date \”+%H:%M:%S\”‘)}}”
Even though the lookup for date has been used in both the cases , where in the vars is used it alters based on the time to time every time executed within the playbook lifetime. But Fact always remains same once lookup is done
Answer: Lookup plugins allow access of data in Ansible from outside sources. These plugins are evaluated on the Ansible control machine, and can include reading the filesystem but also contacting external datastores and services.
Format is {lookup{‘<plugin>’,’<source(or)connection_string>’}}
Some of the lookup plugins supported by ansible are
File
pipe
redis
jinja templates
etcd kv store …
Answer: The command docker rmi <image-id> can be used to delete the docker image from local machine , whereas some images may need to be forced because the image may be used by some other container (or) another image , to delete images you can use the combination of commands by docker rmi $(docker images -q) , where docker images will give the docker image names , to get only the ID of docker images only , we are using -q switch with docker images command.
Answer: JENKINS_HOME – which will be /$JENKINS_USER/.jenkins it is the root folder of any Jenkins installation and it contains subfolders each for different purposes.
jobs/ – Folder contains all the information about all the jobs configured in the Jenkins instance.
Inside jobs/, you will have the folder created for each job and inside those folders, you will have build folders according to each build numbers each build will have its log files, which we see in Jenkins web console.
Plugins/ – where all your plugins will be listed.
Workspace/ – this will be present to hold all the workspace files like your source code pulled from SCM.
Answer: Jenkins can be configured in two ways
Web: Where there is an option called configure system , in there section you can make all configuration changes .
Manual on filesystem: Where every change can also be done directly on the Jenkins config.xml file under the Jenkins installation directory , after you make changes on the filesystem, you need to restart your Jenkins, either can do it directly from terminal (or) you can use Reload configuration from disk under manage Jenkins menu or you can hit /restart endpoint directly.
Answer: As Devops is purely focuses on Automating your infrastructure and provides changes over the pipeline for different stages like an each CI/CD pipeline will have stages like build,test,sanity test,UAT,Deployment to Prod environment as with each stage there are different tools is used and different technology stack is presented and there needs to be a way to integrate with different tool for completing a series toolchain, there comes a need for HTTP API , where every tool communicates with different tools using API , and even user can also use SDK to interact with different tools like BOTO for Python to contact AWS API’s for automation based on events , nowadays its not batch processing anymore , it is mostly event driven pipelines
Answer: Where In traditional architecture , every application is monolith application means that anything is developed by a group of developers , where it has been deployed as a single application in multiple machines and exposed to outer world using loadbalancers , where the microservices means breaking down your application into small pieces , where each piece serves the different functionality needed to complete a single transaction and by breaking down , developers can also be formed to groups and each piece of application may follow different guidelines for efficient development phase , because of agile development should be phased up a bit and every service uses REST API (or) Message queues to communicate between other service. So build and release of a non-robust version may not affect whole architecture , instead some functionality is lost , that provides the assurance for efficient and faster CI/CD pipelines and DevOps Practices
Answer: There are two ways of the pipeline can be created in Jenkins
Scripted Pipelines:
More like a programming approach
Declarative pipelines:
DSL approach specifically for creating Jenkins pipelines.
The pipeline should be created in Jenkins file and the location can either be in SCM or local system.
Declarative and Scripted Pipelines are constructed fundamentally differently. Declarative Pipeline is a more recent feature of Jenkins Pipeline which:
Provides richer syntactical features over Scripted Pipeline syntax, and
is designed to make writing and reading Pipeline code easier.
Answer: As with CI/CD solution needs to be centralized , where every application in the organization can be built by a single CI/CD server , so in organization there may be different kinds of application like java , c#,.NET and etc , as with microservices approach your programming stack is loosely coupled for the project , so you can have Labels in each node and select the option Only built jobs while label matching this node , so when a build is scheduled with the label of the node present in it , it waits for next executor in that node to be available , eventhough there are other executors in nodes.
Answer: Blue Ocean rethinks the user experience of Jenkins. Designed from the ground up for Jenkins Pipeline, but still compatible with freestyle jobs, Blue Ocean reduces clutter and increases clarity for every member of the team.
It provides sophisticated UI to identify each stage of the pipeline and better pinpointing for issues and very rich Pipeline editor for beginners.
Answer: Callback plugins enable adding new behaviors to Ansible when responding to events. By default, callback plugins control most of the output you see when running the command line programs, but can also be used to add additional output, integrate with other tools and marshall the events to a storage backend. So whenever an play is executed and after it produces some events , that events are printed onto Stdout screen ,so callback plugin can be put into any storage backend for log processing.
Example callback plugins are ansible-logstash, where every playbook execution is fetched by logstash in the JSON format and can be integrated any other backend source like elasticsearch.
Answer: As with scripting languages , the basic shell scripting is used for build steps in Jenkins pipelines and python scripts can be used with any other tools like Ansible , terraform as a wrapper script for some other complex decision solving tasks in any automation as python is more superior in complex logic derivation than shell scripts and ruby scripts can also be used as build steps in Jenkins.
Answer: Devops brings out every organization capablity of build and release cycle to be much shorter with concept of CI/CD , where every change is reflected into production environments fastly , so it needs to be tightly monitored to get customer feedbacks. So the concept of continuos monitoring has been used to evaluate each application performance in real time (atleast Near Real Time) , where each application is developed with application performance monitor agents compatible and the granular level of metrics are taken out like JVM stats and even fuctional wise metrics inside the application can also be poured out in real time to Agents , which in turn gives to any backend storage and that can be used by monitoring teams in dashboards and alerts to get continuosly monitor the application
Answer: Where many continuos monitoring tools are available in the market, where used for a different kind of application and deployment model
Docker containers can be monitored by cadvisor agent , which can be used by Elasticsearch to store metrics (or) you can use TICK stack (Telegraf, influxdb,Chronograf,Kapacitor) for every systems monitoring in NRT(Near Real Time) and You can use Logstash (or) Beats to collect Logs from system , which in turn can use Elasticsearch as Storage Backend can use Kibana (or) Grafana as visualizer.
The system monitoring can be done by Nagios and Icinga.
Answer: Group of Virtual machines with Docker Engine can be clustered and maintained as a single system and the resources also being shared by the containers and docker swarm master schedules the docker container in any of the machines under the cluster according to resource availability
Docker swarm init can be used to initiate docker swarm cluster and docker swarm join with the master IP from client joins the node into the swarm cluster.
Answer: Docker images can be created by two ways broadly
Dockerfile: Most used method , where base image can be specified and the files can be copied into the image and installation and configuration can be done using declarative file which can be given to Docker build command to produce new docker image.
Docker commit: Where the Docker image is pinned up as a Docker container and every command execute inside a container forms a Read-only layer and after every changes is Done can use docker commit <container-iD> to save as a image, although this method is not suitable for CI/CD pipelines , as it requires manual intervention.
Answer: FROM – Gives the base image to use.
RUN – this directive used to run a command directly into any image.
CMD- To run the command, but the format of command specification is more arguments based than a single command like RUN.
ADD (or) COPY – To copy files from your local machine to Docker images you create.
ENTRYPOINT- Entrypoint command keeps the command without execution, so when the container is spawned from an image, the command in entry point runs first.
Example Dockerfile
FROM python:2
MAINTAINER janakiraman
RUN mkdir /code
ADD test.py /code
ENTRYPOINT [“python”,”/code/test.py”]
Answer:
- SSH slaves plugin
- Pipeline Plugin
- Github Plugin
- Email notifications plugin
- Docker publish plugin
- Maven plugin
- Greenball plugin
Answer: Vault files are encrypted files, which contains any variables used by ansible playbooks, where the vault encrypted files can be decrypted only by the vault-password, so while running a playbook, if any vault file is used for a variable inside playbooks, so need to used –-ask-vault-pass command argument while running playbook.
Answer: Docker is a containerization technology, which is a advanced technology over virtualization, where in virtualization, an application needs to be installed in machine , then the OS should be spin up and spinning up Virtual machine takes lot time , and it divides space from Physical hardware and hypervisor layer wastes vast amount of space for running virtual machines and after it is provisioned, Every application needs to be installed and installation requires all dependencies and sometimes dependencies may miss out even if you double check and migration from machine to machine of applications is painful , but docker shares underlying OS resources , where docker engine is lightweight and every application can be packaged with dependency once tested works everywhere same, migration of application or spinning up of new application made easy because just needs to install only docker in another machine and docker image pull and run does all the magic of spinning up in seconds.
Answer: .NET applications needs Windows nodes to built , where Jenkins can use Jenkins windows slave plugin can be used to connect windows node as a Jenkins slave , where it uses DCOM connector for Jenkins master to slave connection (or) you can use Jenkins JNLP connector and the Build tools and SCM tools used for the pipeline of .NET application needs to be installed in the Windows slave and MSBuild build tool can be used to build .NET application and can be Deployed into Windows host by using Powershell wrapper inside Ansible playbooks.
Answer: Where Jenkins stores all the build information in the JENKINS_HOME directory , which can be mapped to any NFS (or) SAN storage drivers , common file systems and when the node is down , can implement a monitoring solution using Nagios to check alive , if down can trigger an ansible playbook (or) python script to create a new Jenkins master in different node and reload at runtime, if there is already a passive Jenkins master in another instance kept silent with same JENKINS_HOME Network file store.
Answer: Jenkins filed starts with Pipeline directive , inside the pipeline directive will be agent directive , which specifies where the build should be run and next directive would be stages , which contains several list of stage directives and each stage directive contains different steps . There are several optional directives like options , which provides custom plugins used by the projects (or) any other triggering mechanisms used and environment directive to provide all env variables
Sample Jenkins file
pipeline{
agent any
stages
{
stage(‘Dockerbuild’)
{
steps
{
sh “sudo docker build. -t pyapp:v1”
}
}
}
}
Answer: The centralized nature of cloud computing provides DevOps automation with a standard and centralized platform for testing, deployment, and production.Most cloud providers gives Even DevOps technologies like CI tools and deployment tools as a service like codebuild, codepipeline, codedeploy in AWS makes easy and even faster rate of DevOps pratice.
Answer: When deploying into production, you cannot use a single machine for production as it is not robust for any deployment , so when an application is containerized, the stack of applications maybe run at single docker host in development environment to check application functionality, while when we arrive into production servers, that it is not the case, where you should deploy your applications into multiple nodes and stack should be connected between nodes , so to ensure network connectivity between different containers , you need to have shell scripts (or) ansible playbooks between different nodes ,and another disadvantage is using this tools , you cannot run an efficient stack, where an application is taking up more resources in one node , but another sits idle most time , so deployment strategy also needs to be planned out according to resources and load-balancing of this applications also be configured, so to clear out all this obstacles , there came a concept called orchestration , where your docker containers is orchestrated between different nodes in the cluster based on resources available according to scheduling strategy and everything should be given as DSL specific files not like scripts .There are Different Orchestration tools available in market which are Kubernetes,Swarm,Apache Mesos.
Answer: Ansible is developed by Redhat , which provides IT automation and configuration management purposes. Ansible Tower is the extended management layer created to manage playbooks organization using roles and execution and can even chain different number of playbooks to form workflows. Ansible tower dashboard provides NOC-style UI to look into the status of all ansible playbooks and hosts status.
Answer: Jenkins is a CI/CD tool not depends on any Programming language for building application, if there is a build tool to built any language, that’s enough to build, even though plugin for build tool not available, can use any scripting to replace your build stage like Shell, Powershell, Python scripts to make build of any language application.
Answer: DevOps is culture developed to address the needs of agile methodology , where the developement rate is faster ,so deployment should match its speed and that needs operations team to co-ordinate and work with dev team , where everything can automated using script-based , but it feels more like operations team than , it gives messy organization of any pipelines , more the use cases , more the scripts needs to be written , so there are several use cases, which will be adequate to cover the needs of agile are taken and tools are created according to that and customiztion can happen over the tool using DSL to automate the DevOps practice and Infra management.
Answer: Jenkins can be integrated with different cloud providers for different use cases like dynamic Jenkins slaves, Deploy to cloud environments.
Some of the clouds can be integrated are
- AWS
- Azure
- Google Cloud
- OpenStack
Answer: Docker volumes are the filesystem mount points created by user for a container or a volume can be used by many containers , and there are different types of volume mount available empty dir, Post mount, AWS backed lbs volume, Azure volume, Google Cloud (or) even NFS, CIFS filesystems, so a volume should be mounted to any of the external drive to achieve persistent storage , because a lifetime of files inside container , is till the container is present and if container is deleted, the data would be lost.
Answer: Any kind of Artifacts repository can be integrated with Jenkins, using either shell commands (or) dedicated plugins, some of them are Nexus, Jfrog.
Answer: Sonar plugin – can be used to integrate testing of Code quality in your source code.
Performance plugin – this can be used to integrate JMeter performance testing.
Junit – to publish unit test reports.
Selenium plugin – can be used to integrate with selenium for automation testing.
Answer: Builds can be run manually (or) either can automatically triggered by different sources like
Webhooks– The webhooks are API calls from SCM , whenever a code is committed into repository (or) can be done for specific events into specific branches.
Gerrit code review trigger– Gerrit is an opensource code review tool, whenever a code change is approved after review build can be triggered.
Trigger Build Remotely – You can have remote scripts in any machine (or) even AWS lambda functions (or) make a post request to trigger builds in Jenkins.
Schedule Jobs- Jobs can also schedule like Cron jobs.
Poll SCM for changes – Where your Jenkins looks for any changes in SCM for given interval, if there is a change, the build can be triggered.
Upstream and Downstream Jobs– Where a build can be triggered by another job that is executed previously.
Answer: Docker images can be version controlled using Tags , where you can assign tag to any image using docker tag <image-id> command. And if you are pushing any docker hub registry without tagging the default tag would be assigned which is latest , even if a image with the latest is present , it demotes that image without tag and reassign that to the latest push image.
Answer: It adds Timestamp to every line to the console output of the build.
Answer: You can run a build on master in Jenkins , but it is not advisable , because the master already has the responsibility of scheduling builds and getting build outputs into JENKINS_HOME directory ,so if we run a build on Jenkins master , then it additionally needs to build tools, and workspace for source code , so it puts performance overload in the system , if the Jenkins master crashes , it increases the downtime of your build and release cycle.
Answer: DevOps is the market trend now, which follows a systematic approach for getting the application live to market. DevOps is all about tools which helps in building the development platform as well as production platform. Product companies are now looking at a Code as a service concept in which the development skill is used to create a production architecture with atmost no downtime.
Answer: A Configuration Management tool which is agentless. It works with key based or password based ssh authentication. Since it is agentless, we have the complete control of the manipulating data. Ansible is also use for architecture provisioning as it has modules which can talk to major cloud platforms. I have mainly used for AWS provisioning and application/system config manipulations.
Answer: Application is all about code, if the UI is not behaving as expected, there could be a bug in the code. Inorder to track the code updates, versioning is a must.
By any chance if bug breaks the application, we should be able to revert it to the working codebase. Versioning helps to achieve this.
Also, by keeping a track of code commits by individuals, it is very easy to find the source of the bug in the code.
Answer: Basically the following are prominent in DevOps depending upon the skillset.
1. Architect
2. Version Control Personnel
3. Configuration control Team
4. Build and Integration management
5. Deployment Team.
6. Testing People
7. QA
Answer: In my opinion, everyone should owe to be an architech. with this course, I will be fir the role from 2 to 5. Everyone should understand the working of each role. Devops is a collective effort rather individual effect.
Answer: Before thinking of DevOps, there should be a clear cut idea on what need to be implement and it should be done by the Senior architect.
If we take a simple example of shopping market :
Output of this business will be a website which displays online shopping items, and a payment platform for easy payment.
Even though it looks simple, the background work is not that easy, because a shopping cart must be :
– 99.99% live
– Easy and fast processing of shopping items
– Easy and fast payment system.
– Quick reporting to shopkeeper
– Quick Inventory Management
– Fast customer interaction
and many more
DevOps has to be implement in each process and phase. Next is the tools used for bringing the latest items in website with minimal time span. Git, Jenkins, Ansible/Chef, AWS can be much of familiar tools with helps in continuous delivery to market.
Answer: Ofcourse it is possible if we bring the Agility in every phase of development and deployment. The release, testing and deployment automation should be so accurately finetuned
Answer: Agile is an iterative form of process which finalizes the application by fulfilling the checklist. For any process, there should be set of checklist inorder to standardize the code as well as the build and deployment process. The list depends on the architecture of the application and business model.
Answer: Even though we have numerous tools in devops, but there will certain custom requirements for a project. In such cases, we have to make use of scripting and then integrate it with the tools.
Q60. In AWS, how do you implement high availability of websites?
The main concept of high availability is that the website should be live all the time. So we should avoid single point of failure, inorder to achieve this LoadBalancer can be used. In AWS, we can implement HA with LB with AutoScaling methods.
Answer: The feature “docker exec” allows users to debug a container
It is open source container build and management tool
Answer: Applications were started to use Agile methodology where they build and deployed iteratively .
Docker helps is deploying same binaries with dependencies across different environments with fraction of seconds
Answer: Docker Daemon Receives and processes incoming API requests from the CLI .
Answer: Command line tool – which is a docker binary and it communicate to the Docker daemon through the Docker API.
Answer: It is a Public image registry maintanined by Docker itself and the Docker daemon talks to it through the registry API
Answer: sudo apt-get install docker.io
Answer: The docker user have root like access and we should restrict access as we would protect root
Answer: dpkg -l lists the packages installed in ubuntu container
Answer: With “docker ps -l” command list latest running processes
Answer: “docker kill “command to kill a container
“docker stop “command to stop a container
Answer: docker ps -a ( –an all)
Answer: An image is a collection of files and its meta data , basically those files are the root filesystem of the container
Image is made up of layers where each layer can be edited
Answer: An image is an read-only filesystem where container is a running form of an image .
Image is non-editable and on containers we can edit as we wish & save that again to a new image
Answer: No we can’t do changes in an image. we can make changes in a Dockerfile or to the existing container to create a layered new image
Answer: docker commit: to create an image from a container
docker build: to create an image using a Dockerfile
Answer: Images can be stored in your local docker host or in a registry .
Answer: Using “docker pull” command we can download a docker image
Answer: Image tags are variants of Docker image . “latest” is the default tag of an image
Answer: A Dockerfile series of instructions to build a docker image
Docker build command can be used to build
Answer: docker build -t <image_name>
Answer: The docker history command lists all the layers in an image with image creation date, size and command used
Answer: These will allow using the default command to be executed when a container is starting
Answer: The EXPOSE command is used to publish ports of a docker container
Answer: A configuration management tool similar to a puppet , chef etc .
Answer: Ansible is simple and light where it needs only shh and python as a dependency .
It doesnt required an agent to be installed
Answer: Ansible “modules” are pre-defined small set of codes to perform some actions
eg: copy a file, start a service
Answer: Tasks are nothing but ansible modules with the arguments
Answer: Handlers are triggered when there is need in change of state
e.g.restart service when a property file have changed.
Answer: Roles are re-usable tasks or handlers.
Answer: YAML – yet another markup language is way of storing data in a structured text format like JSON
Answer: Playbooks are the recipes to ansible
Answer: Maven is a Java build tool, so you must have Java installed to proceed.
Answer: Validate is to check whether the info provided are correct and all necessary is available
Answer: It is to compile the source code of the project
Answer: It is to test the source code to test using suitable testing framework
Answer: It is to do the binary packaging of the compiled code
Answer: Compose is to define and run a multi-container application
Answer: CI is nothing but giving immediate feedback to the developer by testing , analyzing the code .
Answer: Continuous delivery is a continuation of CI which aims in delivering the software until pre -prod automatically
Answer: Continuous deployment is next step after CI and CD where the tested software will be provide to the end customers post some validation and change management activities
Answer: git is a source code version management system .
Answer: git commit records changes done to file in the local system.
Answer: git push is to update the changes to the remote repository in the internet .
git fetch will pull only the data from the remote repo but doesnt merge with the repo in your local system.
Answer: git pull will download the files from the remote repo and will merge with the files in your local system.
Answer: “git reset” command can be used to undo last commit .
Answer: Start the answer by explaining general market trend, how releasing small features benefits compared to releasing big features, advantages of releasing small features in high frequency.
Discuss about the topics such as
- Increase deployment frequency
- Lower failure rate of newer releases
- Reduced time for bug fixes
- Time to recovery
Answer: These are te key comonents of DevOps.
- Continuous Integration
- Continuous Testing
- Continuous Delivery
- Continuous Monitoring
Answer: DevOps contains various stages. Each stage can be achieved with various tools. Below are the various tool that are popularly used tools in DevOps.
- Version Control : Git , SVN
- CI/CD : Jenkins
- Configuration Management Tools : Chef, Puppet, Ansible
- Containerization Tool : Docker
Also mention any other tools that you worked on that helped you to automate the existing environment
Answer: Version Control System (that are made to the files or documents over a period of time.
Answer: There are two types of Version Control Systems:
- Central Version Control System, Ex: Git, Bitbucket
- Distributed/Decentralized Version Control System
Answer: It is a open Source automation tool. it is a pupose of Continuous Integration and Continuous Delivery.
Jenkins is a written in java Programming language.
Answer: DevOps is nothing but a practice that emphasizes the collaboration and communication of both software developers and implementation team. It focuses on delivering software product faster and lowering the failure rate of releases.
Answer: The key Principles or Aspects are
- Infrastructure as code
- Continuous deployment
- Automation
- Monitoring
- Security
Answer: The core operations of DevOps are
Infrastructure
- Provisioning
- Configuration
- Orchestration
- Deployment
Application development
- Code building
- Code coverage
- Unit testing
- Packaging
- Deployment
Answer: In AWS,
Infrastructure code will be in simple JSON format
After that JSON code will be organized into files called templates
You can Implement the templates on AWS DevOps and then managed as stacks
At last the creating, deleting, updating, etc. operation in the stack are done by Cloud Formation
Answer: It is very important to choose the simplest language for DevOps engineer. Python Language is most suitable language for DevOps.
Answer: Developers can fix bug and implement new features with less time by the help of DevOps. DevOps can also help to build a perfect communication system in a team with every team member.
Answer: Popular tools for DevOps are
- Jenkins
- Nagios
- Monit
- ELK (Elasticsearch, Logstash, Kibana)
- Jenkins
- Docker
- Ansible
- Git
Answer: SSH is used to log into a remote machine and work on the command line and also used it to dig into the system to make possible secure coded communications between two untrusted hosts over an insecure network.
Answer: I will post the code on SourceForge or GitHub to give avisual for everyone. I will post the checklist also from the last revision to make sure that any unsolved issues are resolved.
Answer: The types of Http requests are
- GET
- HEAD
- PUT
- POST
- PATCH
- DELETE
- TRACE
- CONNECT
- OPTIONS
Answer: If a Linux-build-server suddenly starts getting slow, I will check for following three things
Application Level troubleshooting: Issues related with RAM, Issues related with Disk I/O read write, Issues related with Disk space, etc.
System-Level troubleshooting: Check for Application log file OR application server log file, system performance issues, Web Server Log – check HTTP, tomcat log, etc. or check jboss, WebLogic logs to see if the application server response/receive time is the issues for slowness, Memory Leak of any application
Dependent Services troubleshooting: Issues related with Antivirus, Issues related with Firewall, Network issues, SMTP server response time issues, etc
The most important DevOps components are:
- Continuous Integration
- Continuous Testing
- Continuous Delivery
- Continuous Monitoring
Answer: For DevOps implementation popular Cloud platforms are:
- Google Cloud
- Amazon Web Services
- Microsoft Azure
Answer: Version Control system gives scope to team members to work on any file at suitable time.
All the previous versions and variants are closely packed up inside the VCS.
You can use distributed VCS to store the complete project history in case central server breakdown you can use your team member’s file location storage related with the project.
You can see the actual changes made in the file’s content.
Answer: Git bisect helps you to find the commit which introduced a bug using binary search.
Answer: Build is a method in which you can put source code together for checking that is the source code working as a single unit. In the build creation process, the source code will undergo compilation, inspection, testing, and deployment.
Answer: Puppet is a project management tool which helps you to convert the administration tasks automatically.
Answer: Two-factor authentication is a security method in which the user provides two ways of identification from separate categories.
Answer: It is a pattern which lowers the risk of new version software introduction into the production environment. User will get “Canary Release” in a controlled manner before making it available to the complete user set.
Answer: You need to run continuous testing to make sure the new service is ready for production.
Answer: Vagrant is a tool used to create and manage a virtual version of computing environments for tests and software development.
Answer: PTR or Pointer record is used for reverse DNS lookup.
Answer: Chef is a powerful automation platform used for transforming infrastructure into code. In this tool, you can use write scripts that are used to automate processes.
Answer: Following are the useful prerequisites for DevOps Implementation:
- At least one Version Control Software (VCS).
- Establish communication between the team members
- Automated testing
- Automated deployment
Answer: Here, are essential best practices for DevOps implementation:
- The speed of delivery means time taken for any task to get them into the production environment.
- Track the defects are found in the various
- It’s important to calculate the actual or the average time taken to recover in case of a failure in the production environment.
- Get a feedback from the customer about bug report because it also affects the quality of application.
Answer: SubGit helps you to move SVN to Git. You can build a writable Git mirror of a local or alien to Subversion repository by using SubGit.
Answer: Some most prominent network monitoring tools are:
- Splunk
- Icinga 2
- Wireshark
- Nagios
- OpenNMS
1 /usr/lib/Linux/unity_support_test-p
it will give detailed output about Unity’s requirements, and if they are met, then your video card can run unity.
Answer: To enable startup sound
Click control gear and then click on Startup Applications
In the Startup Application Preferences window, click Add to add an entry
Then fill the information in comment boxes like Name, Command, and Comment
1 /usr/bin/canberra-gtk-play—id= “desktop-login”—description= “play login sound”
Logout and then login once you are done
You can use shortcut key Ctrl+Alt+T to open .
Answer: To open an Ubuntu terminal in a particular directory, you can use custom keyboard short cut.
To do that, in the command field of a new custom keyboard, type genome – terminal – – working – directory = /path/to/dir.
Answer: You have to open the background image in The Gimp (image editor) and use the dropper tool to select the colour on a selected point. It gives you the RGB value of the colour at that point.
Answer: You have to use ALT+F2 then type” gnome-desktop-item-edit –create-new~/desktop,” it will launch the old GUI dialog and create a launcher on your desktop in Ubuntu.
Answer: Memcached is an open source and free, high-performance, distributed memory object caching system. The primary objective of Memcached is to increase the response time for data otherwise it can be recovered or constructed from some other source or database. Memcached is used to reduce the necessity of SQL database operation or another source repetitively to collect data for a simultaneous request.
Memcached can be used for
- Social Networking->Profile Caching
- Content Aggregation -> HTML/ Page Caching
- Ad targeting -> Cookie/profile tracking
- Relationship -> Session caching
- E-commerce -> Session and HTML caching
- Location-based services -> Database query scaling
- Gaming and entertainment -> Session caching
Memcache helps in
- Make application processes much faster
- Memcached make the object selection and rejection process
- Reduce the number of retrieval requests to the database
- Cuts down the I/O ( Input/Output) access (hard disk)
Drawback of Memcached is
- It is not a preserving data store
- Not a database
- It is not an application specific
- Unable to cache large object
Answer: Important features of Memcached includes
- CAS Tokens: A CAS token is attached to an object retrieved from a cache. You can use that token to save your updated object.
- Callbacks: It simplifies the code
- getDelayed: It decrease the time consumption of your script, waiting for results to come back from a server
- Binary protocol: You can use binary protocol instead of ASCII with the newer client
- Igbinary: A client always has to do serialization of the value with complex data previously, but now with Memcached, you can use igbinary option.
Answer: Yes, it is possible to share a single instance of Memcache between multiple projects. You can run Memcache on more than one server because it is a memory store space. You can also configure your client to speak to a particular set of case. So, you can run two different Memcache processes on the same host independently.
Answer: Data won’t be removed from the server but there is a solution for auto-failure, which you can configure for multiple nodes. Fail-over can be triggered during any socket or Memcached server level errors and not during standard client errors like adding an existing key, etc.
Answer:
- If you write the code to minimize cache stampedes then it will leave a minimal impact
- Another way is to bring up an instance of Memcached on a new machine using the lost machines IP address
- The code is another option to minimize server outages as it gives you the liberty to change the Memcached server list with minimal work
- Setting timeout value is another option that some Memcached clients implement for Memcached server outage. When your Memcached server goes down, the client will keep trying to send a request till the time-out limit is reached
Answer: When data changes you can update Memcached by
Clearing the Cache proactively: Clearing the cache when an insert or update is made
Resetting the Cache: this method is similar with previous one but without delete the keys and wait for the next request for the data to refresh the cache, reset the values after the insert or update.
Answer: When a cache expires, and websites are hit by the multiple requests made by the client at the same time the Dogpile effect occurs. You have to use semaphore lock to prevent the effect. In this system after value expires, the first process acquires the lock and starts generating new value.
Answer:
- You have to use Memcached as cache; don’t use it as a data store.
- Don’t use Memcached as the ultimate source of information to run your application. You must always have an option of data source in your hand.
- Memcached is basically a value store and can’t perform a query over the data or go through again over the contents to extract information.
- Memcached is not secure either in encryption or authentication.
Answer: No after a server shuts down and then restart the stored data in Memcached will be deleted because Memcached is unable to store data for long time.
Answer:
- Memcache: It is an extension that allows you to work through handy object-oriented (OOP’s) and procedural interfaces. It is designed to reduce database load in dynamic web applications.
- Memcached: It is an extension that uses the libmemcached library to provide API for communicating with Memcached servers. It is used to increase the dynamic web applications by reducing database load. It is the latest API.
Answer: Blue/Green colouring pattern is one of the hardest challenge faced at the time of automatic deployment process. In Blue/ Green Deployment approach, you need to make sure two identical production environments. Only one among them is LIVE at any given point of time and it is called Blue environment.
After take the full preparation to release the software the team conducts the final testing in an environment called Green environment. When the verification is complete the traffic is routed to the Green environment.
Answer: Containers are from of lightweight virtualization and create separation among process.
Answer: In DevOps Post mortem meeting takes place to discuss about the mistakes and how to repair the mistakes during the total process.
Answer: VMfres is one of the best options to built IaaS cloud from Virtual Box VMs in lesser time. But if you want lightweight PaaS, then Dokku is a better option because bash script can be PaaS out of Dokku containers.
Answer: You can use Kubernetes and Docker swarm tools for docker networking.
Answer: DevOps are used for Production, Production feedback, IT operation, and its software development.
Answer: CBD or Component-Based Development is a unique way to approach product development. In this method, Developers don’t develop a product from scratch, they look for existing well defined, tested, and verified components to compose and assemble them to a product.
Answer: Pair programming is an engineering practice of Extreme Programming Rules. This is the process where two programmers work on the same system on the same design/algorithm/code.
They play two different roles in the system. One as a“driver” and other as an “observer”. Observer continuously observes the progress of a project to identify problems. They both can change their roles in a step of the program.
Answer: Companies use DevOps to create pipelines to automate their deployments from developer’s checkin to production deployment. There are two different types of pipelines in Jenkins.
Declarative and Scripted Pipeline.
In declarative pipeline, which is a recent and new feature of Jenkins has good syntax when compared to scripted pipeline. Using the declarative pipeline, the codes are easy to read, understand and code faster. The scripts are written in the Jenkinsfile
Answer: Whenever Jenkins job runs, it needs a thread to run the job. Build executor is a feature in Jenkins, which will be used to run Jenkins jobs in parallel. The default build executor is 2 by a new Jenkins installation. This can be updated in the Jenkins configuration.
Answer: When there are 2 developers trying to merge the code merge conflicts happen and this has to be resolved manually with mutual agreement.
Answer: MAVEN is a software that is used to build code using maven goals. Set up the MAVEN path in the global tool configuration of Jenkins. Use MAVEN goals like (clean, compile, package) while creating the Jenkins Build job
Answer: DevOps is a methodology which comprises of various components and the key components are
• Continuous Integration
• Continuous Testing
• Continuous Development
• Continuous Feedback
• Continuous Monitoring
• Continuous Deployment
• Continuous Monitoring
Answer: Continuous delivery is a process of releasing software frequently to production, so the time to market is faster. Continuous deployment aims at automating the releases and increases the release cycles.
Answer: To track the changes that are made over time in maintaining the infrastructure is the primary job of configuration management.
Some of the popular tools are
• Terraform
• Ansible
• CloudFormation
Answer: Master Slave architecture in Jenkins is to create different systems where the master node will be able to send jobs to the slave nodes which then will execute.
It will be beneficial when we have different hardware requirements for different Jenkins job
Answer: • Terraform
• CloudFormation
• Ansible
Answer: Ansible is an open-source tool which is used for configuration management and it can be configured in Jenkins to use the playbooks to configure and maintain the state of the configuration.
Answer: DevOps is methodology which brings the development and operations team together for a common cause in order to make sure the final application delivered is error free. Agile means its an iterative process of executing the projects in short span of time thus increasing the deployment cycles and faster time to market.
Answer: Monitoring tools are key to DevOps in the phase continuous monitoring in order for the support teams to continuously monitor the production environment. Some of the most popular tools used in the industry are
• Nagios
• NewRelic
• DynaTrace
• Datadog
Answer: In order to reduce the downtime of our applications in production and to make sure the business is continued; we use a technique called Blue-green deployment. These are two identical environments and at any given time only one of the environments is live which will be serving all the customer traffic. The environment that is currently lie is called Blue and the environment that is idle is called Green.
Answer: Ansible playbooks are yaml files which contains the blueprint for all your automation tasks. It is used to execute complex actions which are automated and with no human intervention. Also using playbook –check method you can do a dry-run to validate your automation before actual execution.
Answer: GIT is a DevOps tool for maintaining the source code. It is a source code repository. It can be public or private. In order for the developers to use the same code, there are two ways which they can take the code. Forking and Branching. Forking will create a full copy of the source code repository while Branching will only add a branch with the master code.
Answer: Docker is a containerized platform to run your code. Docker containers are highly portable. Docker images are independent of the container. These images are like templates. You can use the images to create and run containers. The images are placed in public repositories like Docker Hub or ECS in AWS.
Answer: Docker Swarm and Kubernetes are the orchestration tools to orchestrate your containers. Docker Swarm is easy to setup and comes default with Docker installation. Kubernetes setup is bit difficult, and it is the project maintained by Google. Docker Swarm has limited features compared to Kubernetes.
Answer: Virtual machines share the resources from your host machine, and it used Hypervisor on top of your OS to virtualize. The more applications you set up more resources are being pulled from the host system.
Docker is a containerization tool that is used to create, deploy and running of the application in more easy way. It holds the applications and dependencies.
Answer: It is extremely easy to provision all the tools in cloud and there are many advantages of provisioning the DevOps tools in cloud. Some of them are.
• Easy Automations
• Minimal Capacity Planning
• Faster time-to-market
• Monitoring the resources continuously
Answer: There are many tools available for DevOps in AWS, the most important ones are.
• Code Commit
• Code Build
• Code Deploy
• ECS
• ECR
• EKS