Merge branch 'master' into master
This commit is contained in:
commit
879f0d6ca3
252
README.md
252
README.md
@ -3,7 +3,8 @@
|
||||
|
||||
:information_source: This repository contains interview questions on various DevOps related topics
|
||||
|
||||
:bar_chart: There are currently **350** questions
|
||||
:bar_chart: There are currently **382** questions
|
||||
|
||||
|
||||
:warning: You don't need to know how to answer all the questions in this repo. DevOps is not about knowing all :)
|
||||
|
||||
@ -20,29 +21,30 @@
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="#devops"><img src="images/devops.png" width="75px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a><br /><sub><a href="#devops-beginner">Beginner :baby:</a></sub><br><sub><a href="#devops-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="80px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#aws"><img src="images/aws.png" width="110px;" height="75px;" alt="AWS"/><br /><b>AWS</b></a><br /><sub><a href="#aws-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#Network"><img src="images/network.png" width="80x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub><a href="#network-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#ansible"><img src="images/ansible.png" width="75px;" height="75px;" alt="Ansible"/><br /><b>Ansible</b></a><br /><sub><a href="#ansible-beginner">Beginner :baby:</a></sub><br><sub><a href="#ansible-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#terraform"><img src="images/terraform.png" width="75px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a><br /><sub><a href="#terraform-beginner">Beginner :baby:</a></sub><br><sub><a href="#terraform-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#docker"><img src="images/docker.png" width="75px;" height="75px;" alt="Docker"/><br /><b>Docker</b></a><br /><sub><a href="#docker-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="#kubernetes"><img src="images/kubernetes.png" width="75px;" height="75px;" alt="kubernetes"/><br /><b>Kubernetes</b></a><br /><sub><a href="#kubernetes-beginner">Beginner :baby:</a></sub><br></td>
|
||||
<td align="center"><a href="#python"><img src="images/python.png" width="80px;" height="75px;" alt="Python"/><br /><b>Python</b></a><br /><sub><a href="#python-beginner">Beginner :baby:</a></sub><br><sub><a href="#python-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#prometheus"><img src="images/prometheus.png" width="75px;" height="75px;" alt="Prometheus"/><br /><b>Prometheus</b></a><br /><sub><a href="#prometheus-beginner">Beginner :baby:</a></sub><br></td>
|
||||
<td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="85px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#git"><img src="images/git.png" width="75px;" height="75px;" alt="Git"/><br /><b>Git</b></a><br /><sub><a href="#git-beginner">Beginner :baby:</a></sub><br><sub><a href="#git-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#go"><img src="images/go.png" width="75px;" height="75px;" alt="Go"/><br /><b>Go</b></a><br /><sub><a href="#go-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#mongo"><img src="images/mongo.png" width="75px;" height="75px;" alt="Mongo"/><br /><b>Mongo</b></a><br /><sub><a href="#mongo-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a><br /><sub><a href="#openshift-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#shell-scripting"><img src="images/bash.png" width="75px;" height="75px;" alt="Bash"/><br /><b>Shell Scripting</b></a><br /><sub><a href="#shell-scripting-beginner">Beginner :baby:</a></sub><br><sub><a href="#shell-scripting-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#Network"><img src="images/network.png" width="80x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub><a href="#network-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#ansible"><img src="images/ansible.png" width="90px;" height="75px;" alt="Ansible"/><br /><b>Ansible</b></a><br /><sub><a href="#ansible-beginner">Beginner :baby:</a></sub><br><sub><a href="#ansible-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#terraform"><img src="images/terraform.png" width="75px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a><br /><sub><a href="#terraform-beginner">Beginner :baby:</a></sub><br><sub><a href="#terraform-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#docker"><img src="images/docker.png" width="75px;" height="75px;" alt="Docker"/><br /><b>Docker</b></a><br /><sub><a href="#docker-beginner">Beginner :baby:</a></sub><br><sub><a href="#docker-advanced">Advanced :star:</a></sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="#python"><img src="images/python.png" width="80px;" height="75px;" alt="Python"/><br /><b>Python</b></a><br /><sub><a href="#python-beginner">Beginner :baby:</a></sub><br><sub><a href="#python-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#go"><img src="images/go.png" width="75px;" height="75px;" alt="Go"/><br /><b>Go</b></a><br /><sub><a href="#go-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#shell-scripting"><img src="images/bash.png" width="75px;" height="75px;" alt="Bash"/><br /><b>Shell Scripting</b></a><br /><sub><a href="#shell-scripting-beginner">Beginner :baby:</a></sub><br><sub><a href="#shell-scripting-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#kubernetes"><img src="images/kubernetes.png" width="75px;" height="75px;" alt="kubernetes"/><br /><b>Kubernetes</b></a><br /><sub><a href="#kubernetes-beginner">Beginner :baby:</a></sub><br></td>
|
||||
<td align="center"><a href="#prometheus"><img src="images/prometheus.png" width="75px;" height="75px;" alt="Prometheus"/><br /><b>Prometheus</b></a><br /><sub><a href="#prometheus-beginner">Beginner :baby:</a></sub><br></td>
|
||||
<td align="center"><a href="#mongo"><img src="images/mongo.png" width="75px;" height="75px;" alt="Mongo"/><br /><b>Mongo</b></a><br /><sub><a href="#mongo-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#sql"><img src="images/sql.png" width="75px;" height="75px;" alt="sql"/><br /><b>SQL</b></a><br /><sub><a href="#sql-beginner">Beginner :baby:</a></sub><br><sub><a href="#sql-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a><br /><sub><a href="#openshift-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="#aws"><img src="images/aws.png" width="110px;" height="75px;" alt="AWS"/><br /><b>AWS</b></a><br /><sub><a href="#aws-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#azure"><img src="images/azure.png" width="75px;" height="75px;" alt="azure"/><br /><b>Azure</b></a><br /><sub><a href="#azure-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#openstack"><img src="images/openstack.png" width="75px;" height="75px;" alt="openstack"/><br /><b>OpenStack</b></a><br /><sub><a href="#openstack-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#openstack"><img src="images/openstack.png" width="75px;" height="75px;" alt="openstack"/><br /><b>OpenStack</b></a><br /><sub><a href="#openstack-beginner">Beginner :baby:</a></sub><br><sub><a href="#openstack-advanced">Advanced :star:</a></sub></td>
|
||||
<td align="center"><a href="#security"><img src="images/security.png" width="75px;" height="75px;" alt="security"/><br /><b>Security</b></a><br /><sub><a href="#security-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||
<td align="center"><a href="#puppet"><img src="images/puppet.png" width="75px;" height="75px;" alt="puppet"/><br /><b>Puppet</b></a><br /><sub><a href="#puppet-beginner">Beginner :baby:</a></sub><br><sub><a href="#puppet-advanced">Advanced :star:</a></sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
@ -60,6 +62,10 @@
|
||||
<summary>What is DevOps? What DevOps helps us to achieve?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What are the anti-patterns of DevOps?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is Continuous Integration?</summary><br><b>
|
||||
|
||||
@ -80,10 +86,6 @@ Each piece of code (change/patch) is verified, to make the change is safe to mer
|
||||
<summary>What do you consider as best practices for CI/CD?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What are the anti-patterns of DevOps?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What systems and/or tools are you using for the following?:
|
||||
|
||||
@ -181,10 +183,6 @@ which follows the immutable infrastructure paradigm.
|
||||
<summary>How would you structure/implement CD for an application which depends on several other applications?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you manage dependencies?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain what are design patterns. Which design patterns are you familiar with?</summary><br><b>
|
||||
</b></details>
|
||||
@ -441,6 +439,22 @@ Stop the instance, the type of the instance to match the desired RAM and start t
|
||||
<a name="network-beginner"></a>
|
||||
#### :baby: Beginner
|
||||
|
||||
<details>
|
||||
<summary>What is Ethernet?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is a MAC address? What is it used for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>When this MAC address is used?: ff:ff:ff:ff:ff:ff</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is an IP address? What is a subnet?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain the OSI model. What layers there are? What each layer is responsible for?</summary><br><b>
|
||||
|
||||
@ -504,10 +518,6 @@ CSMA/CD algorithm:
|
||||
<summary>What is ARP? How it works?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is a MAC address? What is it used for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is TTL?</summary><br><b>
|
||||
</b></details>
|
||||
@ -541,7 +551,7 @@ CSMA/CD algorithm:
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is ICMP?</summary><br><b>
|
||||
<summary>What is ICMP? What is it used for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
@ -563,14 +573,30 @@ CSMA/CD algorithm:
|
||||
<summary>What is Asymmetric Routing? How do deal with it?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What overlay (tunnel) protocols are you familiar with?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is GRE? How it works?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is VXLAN? How it works?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is SNAT?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain OSPF</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain Spine & Leaf</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Using Hammind code, what would be the code word for the following data word 100111010001101?</summary><br><b>
|
||||
|
||||
@ -1439,6 +1465,10 @@ List
|
||||
|
||||
#### :baby: beginner
|
||||
|
||||
<details>
|
||||
<summary>What is Docker? What are you using it for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How containers are different from VMs?</summary><br><b>
|
||||
|
||||
@ -1460,7 +1490,11 @@ You should choose containers when:
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What happens when you run `docker run hello-world`?</summary><br><b>
|
||||
<summary>Explain Docker architecture</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Describe in detail what happens when you run `docker run hello-world`?</summary><br><b>
|
||||
|
||||
Docker CLI passes your request to Docker daemon.
|
||||
Docker daemon downloads the image from Docker Hub
|
||||
@ -1473,7 +1507,7 @@ Docker daemon redirects output from container to Docker CLI which redirects it t
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What do you see when you run `docker ps`?</summary><br><b>
|
||||
<summary>What best practices are you familiar related to working with containers?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
@ -1484,6 +1518,30 @@ Docker daemon redirects output from container to Docker CLI which redirects it t
|
||||
<summary>How would you transfer data from one container into another?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What happens to data of the container when a container exists?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain what each of the following commands do:
|
||||
|
||||
* docker run
|
||||
* docker rm
|
||||
* docker ps
|
||||
* docker build
|
||||
* docker commit</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you remove old, non running, containers?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
##### Dockerfile
|
||||
|
||||
<details>
|
||||
<summary>What is Dockerfile</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is the difference between ADD and COPY in Dockerfile?</summary><br><b>
|
||||
</b></details>
|
||||
@ -1515,10 +1573,29 @@ you with more options/features compared to Docker Hub. One example is
|
||||
Swarm management which means you can create new swarms in Docker Cloud.
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Where Docker images are stored?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain image layers</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<a name="docker-advanced"></a>
|
||||
#### :star: Advanced
|
||||
|
||||
<details>
|
||||
<summary>How do you manage persistent storage in Docker?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How can you connect from the inside of your container to the localhost of your host, where the container runs?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you copy files from Docker container to the host and vice versa?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
## Kubernetes
|
||||
|
||||
<a name="kubernetes-beginner"></a>
|
||||
@ -1733,7 +1810,6 @@ Shortest way is: <code>my_string[::-1]</code> but it doesn't mean it's the most
|
||||
* Radix Sort
|
||||
</b></details>
|
||||
|
||||
|
||||
<a name="python-advanced"></a>
|
||||
#### :star: Advanced
|
||||
|
||||
@ -1939,6 +2015,27 @@ func main() {
|
||||
</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>The following block of code tries to convert the integer 101 to a string but instead we get "e". Why is that? How to fix it?
|
||||
|
||||
```
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
var x int = 101
|
||||
var y string
|
||||
y = string(x)
|
||||
fmt.Println(y)
|
||||
}
|
||||
```
|
||||
</summary><br><b>
|
||||
|
||||
It looks what unicode value is set at 101 and uses it for converting the integer to a string.
|
||||
If you want to get "101" you should use the package "strconv" and repalce <code>y = string(x)</code> with <code>y = strconv.Itoa(x)</code>
|
||||
</b></details>
|
||||
|
||||
## Mongo
|
||||
|
||||
<a name="mongo-beginner"></a>
|
||||
@ -2339,10 +2436,6 @@ the pseudo table to retrieve the sum of the prices spent by each customer, then
|
||||
<summary>What types of networks OpenStack supports?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you debug OpenStack networking issues? (tools, logs, ...)</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you debug OpenStack storage issues? (tools, logs, ...)</summary><br><b>
|
||||
</b></details>
|
||||
@ -2355,6 +2448,45 @@ the pseudo table to retrieve the sum of the prices spent by each customer, then
|
||||
<summary>Are you familiar with TripleO? What benefits it has?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
##### Networking
|
||||
|
||||
<details>
|
||||
<summary>What is a provider network?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What components and services exist in L2 and L3?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is the ML2 plug-in? Explain its architecture</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is the L2 agent? How it works and what is it responsible for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is the L3 agent? How it works and what is it responsible for?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain what the Metadata agent is responsible for</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>How do you debug OpenStack networking issues? (tools, logs, ...)</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<a name="openstack-advanced"></a>
|
||||
#### :baby: Advanced
|
||||
|
||||
##### Networking
|
||||
|
||||
<details>
|
||||
<summary>Explain BGP dynamic routing</summary>
|
||||
</b></details>
|
||||
|
||||
## Security
|
||||
|
||||
<a name="security-beginner"></a>
|
||||
@ -2384,6 +2516,50 @@ the pseudo table to retrieve the sum of the prices spent by each customer, then
|
||||
<summary>What is Privilege Restriction?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
## Puppet
|
||||
|
||||
<a name="puppet-beginner"></a>
|
||||
#### :baby: Beginner
|
||||
|
||||
<details>
|
||||
<summary>What is Puppet? How it works?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain Puppet architecture</summary><br><b>
|
||||
</b><details>
|
||||
|
||||
<details>
|
||||
<summary>Can you compare Puppet to other configuration management tools? Why did you chose to use Puppet?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain the following:
|
||||
|
||||
* Module
|
||||
* Manifest
|
||||
* Node</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain Facter</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>What is MCollective?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<a name="puppet-advanced"></a>
|
||||
#### :baby: Advanced
|
||||
|
||||
<details>
|
||||
<summary>Do you have experience with writing modules? Which module have you created and for what?</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
<details>
|
||||
<summary>Explain what is Hiera</summary><br><b>
|
||||
</b></details>
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
|
BIN
images/puppet.png
Normal file
BIN
images/puppet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Loading…
Reference in New Issue
Block a user