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
SQL
OpenShift
OpenShift
Storage
Storage
- Packer
Packer
HR
HR
Exercises
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) ))