Add more questions

And links to other DevOps projects.
This commit is contained in:
abregman 2021-02-17 00:27:52 +02:00
parent 27ee317c97
commit 874418fa74
4 changed files with 84 additions and 33 deletions

109
README.md
View File

@ -2,7 +2,7 @@
:information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :) :information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :)
:bar_chart:  There are currently **1504** questions :bar_chart:  There are currently **1509** questions
:books:  To learn more about DevOps and SRE, check the resources in [devops-resources](https://github.com/bregman-arie/devops-resources) repository :books:  To learn more about DevOps and SRE, check the resources in [devops-resources](https://github.com/bregman-arie/devops-resources) repository
@ -31,7 +31,7 @@
<td align="center"><a href="#terraform"><img src="images/terraform.png" width="70px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a></td> <td align="center"><a href="#terraform"><img src="images/terraform.png" width="70px;" height="75px;" alt="Terraform"/><br /><b>Terraform</b></a></td>
</tr> </tr>
<tr> <tr>
<td align="center"><a href="#coding"><img src="images/coding.png" width="75px;" height="75px;" alt="coding"/><br /><b>Coding</b></a></td> <td align="center"><a href="#programming"><img src="images/programming.png" width="75px;" height="75px;" alt="programming"/><br /><b>Programming</b></a></td>
<td align="center"><a href="#python"><img src="images/python.png" width="80px;" height="75px;" alt="Python"/><br /><b>Python</b></a></td> <td align="center"><a href="#python"><img src="images/python.png" width="80px;" height="75px;" alt="Python"/><br /><b>Python</b></a></td>
<td align="center"><a href="#go"><img src="images/Go.png" width="75px;" height="75px;" alt="go"/><br /><b>Go</b></a></td> <td align="center"><a href="#go"><img src="images/Go.png" width="75px;" height="75px;" alt="go"/><br /><b>Go</b></a></td>
<td align="center"><a href="#shell-scripting"><img src="images/bash.png" width="70px;" height="75px;" alt="Bash"/><br /><b>Shell Scripting</b></a></td> <td align="center"><a href="#shell-scripting"><img src="images/bash.png" width="70px;" height="75px;" alt="Bash"/><br /><b>Shell Scripting</b></a></td>
@ -181,6 +181,10 @@ With "configuration->deployment" model for example, where you build one image to
* Testing/Staging environment should be a clone of production environment * Testing/Staging environment should be a clone of production environment
</b></details> </b></details>
<details>
<summary>You are given a pipeline and a pool with 3 workers: virtual machine, baremetal and a container. How will you decide on which one of them to run the pipeline?</summary><br><b>
</b></details>
<details> <details>
<summary>Where do you store CI/CD pipelines? Why?</summary><br><b> <summary>Where do you store CI/CD pipelines? Why?</summary><br><b>
@ -5910,12 +5914,19 @@ You can learn more [here](https://submariner-io.github.io)
<summary>What is Istio? What is it used for?</summary><br><b> <summary>What is Istio? What is it used for?</summary><br><b>
</b></details> </b></details>
## Coding ## Programming
<details> <details>
<summary>What programming language do you prefer to use for DevOps related tasks? Why specifically this one?</summary><br><b> <summary>What programming language do you prefer to use for DevOps related tasks? Why specifically this one?</summary><br><b>
</b></details> </b></details>
<details>
<summary>What are static typed (or simply typed) languages?</summary><br><b>
In static typed languages the variable type is known at compile-time instead of at run-time.
Such languages are: C, C++ and Java
</b></details>
<details> <details>
<summary>Explain expressions and statements</summary><br><b> <summary>Explain expressions and statements</summary><br><b>
@ -5957,6 +5968,14 @@ SOLID is:
* Dependency Inversion - High level modules should depend on abstractions, not low level modules * Dependency Inversion - High level modules should depend on abstractions, not low level modules
</b></details> </b></details>
<details>
<summary>What is YAGNI? What is your opinion on it?</summary><br><b>
</b></details>
<details>
<summary>What is DRY? What is your opinion on it?</summary><br><b>
</b></details>
<details> <details>
<summary>What are the four pillars of object oriented programming?</summary><br><b> <summary>What are the four pillars of object oriented programming?</summary><br><b>
</b></details> </b></details>
@ -5973,6 +5992,12 @@ SOLID is:
<summary>Explain Dependency Injection</summary><br><b> <summary>Explain Dependency Injection</summary><br><b>
</b></details> </b></details>
<details>
<summary>True or False? In Dynamically typed languages the variable type is known at run-time instead of at compile-time</summary><br><b>
True
</b></details>
<details> <details>
<summary>Explain what are design patterns and describe three of them in detail</summary><br><b> <summary>Explain what are design patterns and describe three of them in detail</summary><br><b>
</b></details> </b></details>
@ -6102,8 +6127,6 @@ def find_triplets_sum_to_zero(li):
5. The python package manager is called PIP "pip installs packages", having more than 200.000 available packages. 5. The python package manager is called PIP "pip installs packages", having more than 200.000 available packages.
6. Python comes with pip installed and a big standard library that offers the programmer many precooked solutions. 6. Python comes with pip installed and a big standard library that offers the programmer many precooked solutions.
7. In python **Everything** is an object. 7. In python **Everything** is an object.
There are many other characteristics but these are the main ones that every python programmer should know.
``` ```
</b></details> </b></details>
@ -6173,7 +6196,7 @@ The immutable data types are:
<details> <details>
<summary>What is the result of `bool("")`? What about `bool(" ")`? Explain</summary><br><b> <summary>What is the result of `bool("")`? What about `bool(" ")`? Explain</summary><br><b>
bool("") -> evaluates to False bool("") -> evaluates to False<br>
bool(" ") -> evaluates to True bool(" ") -> evaluates to True
</b></details> </b></details>
@ -6920,6 +6943,14 @@ with open('file.txt', 'w') as file:
<summary>How do you execute shell commands using Python?</summary><br><b> <summary>How do you execute shell commands using Python?</summary><br><b>
</b></details> </b></details>
<details>
<summary>How do you join path components? for example <code>/home</code> and <code>luig</code> will result in <code>/home/luigi</code> </summary><br><b>
</b></details>
<details>
<summary>How do you remove non-empty directory?</summary><br><b>
</b></details>
#### Python Regex #### Python Regex
<details> <details>
@ -8228,11 +8259,11 @@ as key-value pair, document-oriented, etc.
## OpenShift ## OpenShift
<details> <details>
<summary>What is OpenShift? What experience do you have with OpenShift?</summary><br><b> <summary>What is OpenShift?</summary><br><b>
</b></details> </b></details>
<details> <details>
<summary>Can you explain the difference between OpenShift and Kubernetes?</summary><br><b> <summary>How OpenShift is related to Kubernetes?</summary><br><b>
</b></details> </b></details>
<details> <details>
@ -8242,23 +8273,41 @@ False. OpenShift is a PaaS (platform as a service) solution.
</b></details> </b></details>
<details> <details>
<summary>Define Pods and explain what are stateful pods</summary><br><b> <summary>What would be the best way to run and manage multiple OpenShift environments?</summary><br><b>
Federation
</b></details>
#### OpenShift Federation
<details>
<summary>What is OpenShift Federation?</summary><br><b>
Management and deployment of services and workloads accross multiple independent clusters from a single API
</b></details> </b></details>
<details> <details>
<summary>What types of build strategies are you familiar with?</summary><br><b> <summary>Explain the following in regards to Federation:
* Multi Cluster
* Federated Cluster
* Host Cluster
* Member Cluster
</summary><br><b>
* Multi Cluster - Multiple clusters deployed independently, not being aware of each other
* Federated Cluster - Multiple clusters managed by the OpenShift Federation Control Plane
* Host Cluster - The cluster that runs the Federation Control Plane
* Member Cluster - Cluster that is part of the Federated Cluster and connected to Federation Control Plane
</b></details> </b></details>
<details> #### OpenShift Azure
<summary>Explain what are labels and what they are used for</summary><br><b>
</b></details>
<details> <details>
<summary>Explain what are annotations and how they are different from labels</summary><br><b> <summary>What is "OpenShift on Azure" and "Azure Red Hat OpenShift"?</summary><br><b>
</b></details>
<details> OpenShift on Aazure (OCP) is installed and managed by the customer itself as opposed to Azure Red Hat OpenShift (ARO) which is a managed service by Red Hat and Microsoft.
<summary>Explain what is Downward API</summary><br><b> Also, OCP is purchased from Red Hat and ARO is purchased from Azure.
</b></details> </b></details>
## Storage ## Storage
@ -8291,11 +8340,6 @@ Answer: Magnetic is about 10ms and SSD is somewhere between 0.08 and 0.16ms
## Shell Scripting ## Shell Scripting
<details>
<summary>Tell me about your experience with shell scripting</summary><br><b>
</b></details>
<details> <details>
<summary>What this line in scripts mean?: <code>#!/bin/bash</code></summary><br><b> <summary>What this line in scripts mean?: <code>#!/bin/bash</code></summary><br><b>
@ -8979,10 +9023,6 @@ As it does not support stateful applications or sticky sessions, it is suitable
## OpenStack ## OpenStack
<details>
<summary>Tell me about your experience with OpenStack. What do you think are the advantages and disadvantages of OpenStack?</summary><br><b>
</b></details>
<details> <details>
<summary>What components/projects of OpenStack are you familiar with?</summary><br><b> <summary>What components/projects of OpenStack are you familiar with?</summary><br><b>
</b></details> </b></details>
@ -9214,7 +9254,7 @@ Not by default. Object Storage API limits the maximum to 5GB per object but it c
False. Two objects can have the same name if they are in different containers. False. Two objects can have the same name if they are in different containers.
</b></details> </b></details>
#### OpenStack - Swift #### OpenStack - Cinder
<details> <details>
<summary>Explain Cinder in detail</summary><br><b> <summary>Explain Cinder in detail</summary><br><b>
@ -10464,13 +10504,13 @@ percentage ratio
<details> <details>
<summary>True or False? HTTP is stateful</summary><br><b> <summary>True or False? HTTP is stateful</summary><br><b>
False. Server doesn't maintain state for incoming request. False. It doesn't maintain state for incoming request.
</b></details> </b></details>
<details> <details>
<summary>How HTTP request looks like?</summary><br><b> <summary>How HTTP request looks like?</summary><br><b>
It consits of: It consists of:
* Request line - request type * Request line - request type
* Headers - content info like length, enconding, etc. * Headers - content info like length, enconding, etc.
@ -10516,6 +10556,12 @@ TODO: explain what is actually a Cookie
<summary>What is HTTP Pipelining?</summary><br><b> <summary>What is HTTP Pipelining?</summary><br><b>
</b></details> </b></details>
<details>
<summary>You get "504 Gateway Timeout" error from an HTTP server. What does it mean?</summary><br><b>
The server didn't receive a response from another server it communicates with in a timely manner.
</b></details>
<details> <details>
<summary>What is a proxy?</summary><br><b> <summary>What is a proxy?</summary><br><b>
</b></details> </b></details>
@ -11398,6 +11444,11 @@ Below you can find several exercises
* [Ansible, Minikube and Docker](exercises/ansible_minikube_docker.md) * [Ansible, Minikube and Docker](exercises/ansible_minikube_docker.md)
* [Cloud Slack bot](exercises/cloud_slack_bot.md) * [Cloud Slack bot](exercises/cloud_slack_bot.md)
## Other DevOps Projects
<p align="center"><a href="https://github.com/bregman-arie/howtheydevops"><img src="images/how_they_devops.png"/></a></p>
<p align="center"><a href="https://github.com/bregman-arie/devops-resources"><img src="images/devops_resources.png"/></a></p>
## Credits ## Credits
Thanks to all of our amazing [contributors](https://github.com/bregman-arie/devops-exercises/graphs/contributors) who make it easy for everyone to learn new things :) Thanks to all of our amazing [contributors](https://github.com/bregman-arie/devops-exercises/graphs/contributors) who make it easy for everyone to learn new things :)

BIN
images/devops_resources.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/how_they_devops.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB