diff --git a/README.md b/README.md
index 54fea3b..de2c733 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 **1386** questions
+:bar_chart: There are currently **1402** questions
:busts_in_silhouette: [Join](https://www.facebook.com/groups/538897960007080) our [Facebook group](https://www.facebook.com/groups/538897960007080) for additional exercises, articles and more resources on DevOps
@@ -72,7 +72,6 @@
SQL |
OpenShift |
Storage |
- Packer |
HR |
Exercises |
@@ -6163,6 +6162,10 @@ Using the re module
#### Python Strings
+
+Find the first repeated character in a string
+
+
How to extract the unique characters from a string? for example given the input "itssssssameeeemarioooooo" the output will be "mrtisaoe"
@@ -6262,6 +6265,10 @@ def reverse_string(string):
```
+
+Reverse each word in a string (while keeping the order)
+
+
What is the output of the following code: "".join(["a", "h", "m", "a", "h", "a", "n", "q", "r", "l", "o", "i", "f", "o", "o"])[2::3]
@@ -7442,6 +7449,17 @@ as key-value pair, document-oriented, etc.
Explain this query: db.books.find().sort({x:1})
+
+What is the difference between find() and find_one()?
+
+
+
+How can you export data from Mongo DB?
+
+* mongoexport
+* programming languages
+
+
## OpenShift
@@ -9762,14 +9780,7 @@ Relax, there is no wrong or right answer here...I think.
-Where do you see yourself in 5 years?
-
-Some ideas (some of them bad and should not be used):
-
-* Senior DevOps
-* Manager
-* Retirement
-* Your manager
+Where do you see yourself 5 years down the line?
@@ -10360,6 +10371,70 @@ A programming model for large-scale data processing
* Namenode controls all metadata
+## Ceph
+
+
+Explain what is Ceph
+
+
+
+True or False? Ceph favor consistency and correctness over performances
+True
+
+
+
+Which services or types of storage Ceph supports?
+
+* Object (RGW)
+* Block (RBD)
+* File (CephFS)
+
+
+
+What is RADOS?
+
+* Reliable Autonomic Distributed Object Storage
+* Provides low-level data object storage service
+* Strong Consistency
+* Simplifies design and implementation of higher layers (block, file, object)
+
+
+
+Describe RADOS software components
+
+* Monitor
+ * Central authority for authentication, data placement, policy
+ * Coordination point for all other cluster components
+ * Protect critical cluster state with Paxos
+* Manager
+ * Aggregates real-time metrics (throughput, disk usage, etc.)
+ * Host for pluggable management functions
+ * 1 active, 1+ standby per cluster
+* OSD (Object Storage Daemon)
+ * Stores data on an HDD or SSD
+ * Services client IO requests
+
+
+
+What is the workflow of retrieving data from Ceph?
+
+
+
+What is the workflow of retrieving data from Ceph?
+
+
+
+What are "Placement Groups"?
+
+
+
+Describe in the detail the following: Objects -> Pool -> Placement Groups -> OSDs
+
+
+
+What is OMAP?
+
+
## Packer
@@ -10413,9 +10488,10 @@ Below you can find several exercises
* [CI for open source project](exercises/ci_for_open_source_project.md)
-#### Python
+#### Programming
-* [grep before and after](exercises/grep_berfore_and_after.md)
+* [grep before and after](exercises/programming/grep_berfore_and_after.md)
+* [web scrapper](exercises/programming/web_scraper.md)
#### Mixed
@@ -10424,7 +10500,7 @@ Below you can find several exercises
#### Misc
-* [Elasticsearch & Kibana on AWS](exercises/elk_kibana_aws.md)
+* [Elasticsearch & Kibana on AWS](exercises/misc/elk_kibana_aws.md)
* [ELK & Filebeat](exercises/eflk.md)
* [Ansible, Minikube and Docker](exercises/ansible_minikube_docker.md)
* [Cloud Slack bot](exercises/cloud_slack_bot.md)
diff --git a/exercises/elk_kibana_aws.md b/exercises/elk_kibana_aws.md
deleted file mode 100644
index 799b448..0000000
--- a/exercises/elk_kibana_aws.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Elasticsearch, Kibana and AWS
-
-Your task is to build an elasticsearch cluster along with Kibana dashboard on one of the following clouds:
-
-* AWS
-* OpenStack
-* Azure
-* GCP
-
-You have to describe in details (preferably with some drawings) how you are going to set it up.
-Please describe in detail:
-
-- How you scale it up or down
-- How you quickly (less 20 minutes) provision the cluster
-- How you apply security policy for access control
-- How you transfer the logs from the app to ELK
-- How you deal with multi apps running in different regions
-
-## Solution
-
-One Possible solution can be found [here](solutions/elk_kibana_aws.md)
diff --git a/exercises/solutions/elk_kibana_aws.md b/exercises/misc/elk_kibana_aws.md
similarity index 64%
rename from exercises/solutions/elk_kibana_aws.md
rename to exercises/misc/elk_kibana_aws.md
index 186023d..bfccdd3 100644
--- a/exercises/solutions/elk_kibana_aws.md
+++ b/exercises/misc/elk_kibana_aws.md
@@ -1,4 +1,22 @@
-# Elasticsearch, Kibana and AWS - Solution
+# Elasticsearch, Kibana and AWS
+
+Your task is to build an elasticsearch cluster along with Kibana dashboard on one of the following clouds:
+
+* AWS
+* OpenStack
+* Azure
+* GCP
+
+You have to describe in details (preferably with some drawings) how you are going to set it up.
+Please describe in detail:
+
+- How you scale it up or down
+- How you quickly (less 20 minutes) provision the cluster
+- How you apply security policy for access control
+- How you transfer the logs from the app to ELK
+- How you deal with multi apps running in different regions
+
+# Solution
This one out of many possible solutions. This solution is relying heavily on AWS.
diff --git a/exercises/grep_berfore_and_after.md b/exercises/programming/grep_berfore_and_after.md
similarity index 100%
rename from exercises/grep_berfore_and_after.md
rename to exercises/programming/grep_berfore_and_after.md
diff --git a/exercises/programming/web_scraper.md b/exercises/programming/web_scraper.md
new file mode 100644
index 0000000..a08f212
--- /dev/null
+++ b/exercises/programming/web_scraper.md
@@ -0,0 +1,8 @@
+## Web Scraper
+
+1. Pick a web site to scrape
+2. Using any language you would like, write a web scraper to save some data from the site you chose
+3. Save the results to a database (doesn't matter which database, just pick one)
+
+
+* Note: if you don't know which site to pick up have a look [here](http://toscrape.com)
diff --git a/images/containers.png b/images/containers.png
new file mode 100644
index 0000000..6f0a020
Binary files /dev/null and b/images/containers.png differ
diff --git a/scripts/count_questions.sh b/scripts/count_questions.sh
index 8e1ca78..d47cc33 100755
--- a/scripts/count_questions.sh
+++ b/scripts/count_questions.sh
@@ -2,4 +2,4 @@
# We dont care about non alphanumerics filenames so we just ls | grep to shorten the script.
-echo $(( $(ls ./exercises/ | grep ".*md" -c) + $(grep \ -c README.md) ))
+echo $(( $(ls -R ./exercises/ | grep ".*md" -c) + $(grep \ -c README.md) ))