From 874418fa74893329ef10c363a1a6a17579dbf6ba Mon Sep 17 00:00:00 2001 From: abregman Date: Wed, 17 Feb 2021 00:27:52 +0200 Subject: [PATCH] Add more questions And links to other DevOps projects. --- README.md | 117 ++++++++++++++++++------- images/devops_resources.png | Bin 0 -> 16705 bytes images/how_they_devops.png | Bin 0 -> 15651 bytes images/{coding.png => programming.png} | Bin 4 files changed, 84 insertions(+), 33 deletions(-) create mode 100644 images/devops_resources.png create mode 100644 images/how_they_devops.png rename images/{coding.png => programming.png} (100%) diff --git a/README.md b/README.md index 238fbd9..e7da452 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
Terraform
- coding
Coding
+ programming
Programming
Python
Python
go
Go
Bash
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?
+ +Federation +
+ +#### OpenShift Federation + +
+What is OpenShift Federation?
+ +Management and deployment of services and workloads accross multiple independent clusters from a single API
-What types of build strategies are you familiar with?
+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
-
-Explain what are labels and what they are used for
-
+#### OpenShift Azure
-Explain what are annotations and how they are different from labels
-
+What is "OpenShift on Azure" and "Azure Red Hat OpenShift"?
-
-Explain what is Downward API
+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 0000000000000000000000000000000000000000..17812809be0abe9a0490a1b486ea5dd7c1f500b0 GIT binary patch literal 16705 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 literal 0 HcmV?d00001 diff --git a/images/how_they_devops.png b/images/how_they_devops.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8c11d5a5a827331fa10acaeefe80dbdca1d169 GIT binary patch literal 15651 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