diff --git a/README.md b/README.md
index 238fbd9a1..e7da45271 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
: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
@@ -31,7 +31,7 @@
 Terraform |
-  Coding |
+  Programming |
 Python |
 Go |
 Shell Scripting |
@@ -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
+
+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?
+
+
Where do you store CI/CD pipelines? Why?
@@ -5910,12 +5914,19 @@ You can learn more [here](https://submariner-io.github.io)
What is Istio? What is it used for?
-## Coding
+## Programming
What programming language do you prefer to use for DevOps related tasks? Why specifically this one?
+
+What are static typed (or simply typed) languages?
+
+In static typed languages the variable type is known at compile-time instead of at run-time.
+Such languages are: C, C++ and Java
+
+
Explain expressions and statements
@@ -5957,6 +5968,14 @@ SOLID is:
* Dependency Inversion - High level modules should depend on abstractions, not low level modules
+
+What is YAGNI? What is your opinion on it?
+
+
+
+What is DRY? What is your opinion on it?
+
+
What are the four pillars of object oriented programming?
@@ -5973,6 +5992,12 @@ SOLID is:
Explain Dependency Injection
+
+True or False? In Dynamically typed languages the variable type is known at run-time instead of at compile-time
+
+True
+
+
Explain what are design patterns and describe three of them in detail
@@ -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.
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.
-
-There are many other characteristics but these are the main ones that every python programmer should know.
```
@@ -6148,10 +6171,10 @@ The immutable data types are:
* 1 == 'one'
* 2 > 'one'
-* False
-* True
-* False
-* TypeError
+ * False
+ * True
+ * False
+ * TypeError
@@ -6173,7 +6196,7 @@ The immutable data types are:
What is the result of `bool("")`? What about `bool(" ")`? Explain
-bool("") -> evaluates to False
+bool("") -> evaluates to False
bool(" ") -> evaluates to True
@@ -6920,6 +6943,14 @@ with open('file.txt', 'w') as file:
How do you execute shell commands using Python?
+
+How do you join path components? for example /home
and luig
will result in /home/luigi
+
+
+
+How do you remove non-empty directory?
+
+
#### Python Regex
@@ -8228,11 +8259,11 @@ as key-value pair, document-oriented, etc.
## OpenShift
-What is OpenShift? What experience do you have with OpenShift?
+What is OpenShift?
-Can you explain the difference between OpenShift and Kubernetes?
+How OpenShift is related to Kubernetes?
@@ -8242,23 +8273,41 @@ False. OpenShift is a PaaS (platform as a service) solution.
-Define Pods and explain what are stateful pods
-
+What would be the best way to run and manage multiple OpenShift environments?
-
-What types of build strategies are you familiar with?
+Federation
+#### OpenShift Federation
+
-Explain what are labels and what they are used for
+What is OpenShift Federation?
+
+Management and deployment of services and workloads accross multiple independent clusters from a single API
-Explain what are annotations and how they are different from labels
+Explain the following in regards to Federation:
+
+ * Multi Cluster
+ * Federated Cluster
+ * Host Cluster
+ * Member Cluster
+
+
+ * 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
+#### OpenShift Azure
+
-Explain what is Downward API
+What is "OpenShift on Azure" and "Azure Red Hat OpenShift"?
+
+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.
+Also, OCP is purchased from Red Hat and ARO is purchased from Azure.
## Storage
@@ -8291,11 +8340,6 @@ Answer: Magnetic is about 10ms and SSD is somewhere between 0.08 and 0.16ms
## Shell Scripting
-
-Tell me about your experience with shell scripting
-
-
-
What this line in scripts mean?: #!/bin/bash
@@ -8979,10 +9023,6 @@ As it does not support stateful applications or sticky sessions, it is suitable
## OpenStack
-
-Tell me about your experience with OpenStack. What do you think are the advantages and disadvantages of OpenStack?
-
-
What components/projects of OpenStack are you familiar with?
@@ -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.
-#### OpenStack - Swift
+#### OpenStack - Cinder
Explain Cinder in detail
@@ -10464,13 +10504,13 @@ percentage ratio
True or False? HTTP is stateful
-False. Server doesn't maintain state for incoming request.
+False. It doesn't maintain state for incoming request.
How HTTP request looks like?
-It consits of:
+It consists of:
* Request line - request type
* Headers - content info like length, enconding, etc.
@@ -10516,6 +10556,12 @@ TODO: explain what is actually a Cookie
What is HTTP Pipelining?
+
+You get "504 Gateway Timeout" error from an HTTP server. What does it mean?
+
+The server didn't receive a response from another server it communicates with in a timely manner.
+
+
What is a proxy?
@@ -11398,6 +11444,11 @@ Below you can find several exercises
* [Ansible, Minikube and Docker](exercises/ansible_minikube_docker.md)
* [Cloud Slack bot](exercises/cloud_slack_bot.md)
+## Other DevOps Projects
+
+
+
+
## 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 :)
diff --git a/images/devops_resources.png b/images/devops_resources.png
new file mode 100644
index 000000000..17812809b
Binary files /dev/null and b/images/devops_resources.png differ
diff --git a/images/how_they_devops.png b/images/how_they_devops.png
new file mode 100644
index 000000000..3d8c11d5a
Binary files /dev/null and b/images/how_they_devops.png differ
diff --git a/images/coding.png b/images/programming.png
similarity index 100%
rename from images/coding.png
rename to images/programming.png