Add a couple of questions and a new exercise
This commit is contained in:
parent
01ae9c59bc
commit
fc26d95145
102
README.md
102
README.md
@ -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 **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
|
: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 @@
|
|||||||
<td align="center"><a href="#sql"><img src="images/sql.png" width="75px;" height="75px;" alt="sql"/><br /><b>SQL</b></a></td>
|
<td align="center"><a href="#sql"><img src="images/sql.png" width="75px;" height="75px;" alt="sql"/><br /><b>SQL</b></a></td>
|
||||||
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a></td>
|
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a></td>
|
||||||
<td align="center"><a href="#storage"><img src="images/storage.png" width="75px;" height="75px;" alt="Storage"/><br /><b>Storage</b></a></td>
|
<td align="center"><a href="#storage"><img src="images/storage.png" width="75px;" height="75px;" alt="Storage"/><br /><b>Storage</b></a></td>
|
||||||
<td align="center"><a href="#packer"><img src="images/packer.png" width="75px;" height="75px;" alt="Packer"/><br /><b>Packer</b></a></td>
|
|
||||||
<td align="center"><a href="#HR"><img src="images/HR.png" width="110px;" height="75px;" alt="HR"/><br /><b>HR</b></a></td>
|
<td align="center"><a href="#HR"><img src="images/HR.png" width="110px;" height="75px;" alt="HR"/><br /><b>HR</b></a></td>
|
||||||
<td align="center"><a href="#exercises"><img src="images/exercises.png" width="110px;" height="75px;" alt="Exercises"/><br /><b>Exercises</b></a></td>
|
<td align="center"><a href="#exercises"><img src="images/exercises.png" width="110px;" height="75px;" alt="Exercises"/><br /><b>Exercises</b></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -6163,6 +6162,10 @@ Using the re module
|
|||||||
|
|
||||||
#### Python Strings
|
#### Python Strings
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Find the first repeated character in a string</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>How to extract the unique characters from a string? for example given the input "itssssssameeeemarioooooo" the output will be "mrtisaoe"</summary><br><b>
|
<summary>How to extract the unique characters from a string? for example given the input "itssssssameeeemarioooooo" the output will be "mrtisaoe"</summary><br><b>
|
||||||
|
|
||||||
@ -6262,6 +6265,10 @@ def reverse_string(string):
|
|||||||
```
|
```
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Reverse each word in a string (while keeping the order)</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>What is the output of the following code: <code>"".join(["a", "h", "m", "a", "h", "a", "n", "q", "r", "l", "o", "i", "f", "o", "o"])[2::3]</code></summary><br><b>
|
<summary>What is the output of the following code: <code>"".join(["a", "h", "m", "a", "h", "a", "n", "q", "r", "l", "o", "i", "f", "o", "o"])[2::3]</code></summary><br><b>
|
||||||
|
|
||||||
@ -7442,6 +7449,17 @@ as key-value pair, document-oriented, etc.
|
|||||||
<summary>Explain this query: <code>db.books.find().sort({x:1})</code></summary><br><b>
|
<summary>Explain this query: <code>db.books.find().sort({x:1})</code></summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the difference between find() and find_one()?</code></summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>How can you export data from Mongo DB?</code></summary><br><b>
|
||||||
|
|
||||||
|
* mongoexport
|
||||||
|
* programming languages
|
||||||
|
</b></details>
|
||||||
|
|
||||||
## OpenShift
|
## OpenShift
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -9762,14 +9780,7 @@ Relax, there is no wrong or right answer here...I think.
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Where do you see yourself in 5 years?</summary><br><b>
|
<summary>Where do you see yourself 5 years down the line?</summary><br><b>
|
||||||
|
|
||||||
Some ideas (some of them bad and should not be used):
|
|
||||||
|
|
||||||
* Senior DevOps
|
|
||||||
* Manager
|
|
||||||
* Retirement
|
|
||||||
* Your manager
|
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -10360,6 +10371,70 @@ A programming model for large-scale data processing
|
|||||||
* Namenode controls all metadata
|
* Namenode controls all metadata
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
## Ceph
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain what is Ceph</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>True or False? Ceph favor consistency and correctness over performances</summary><br><b>
|
||||||
|
True
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Which services or types of storage Ceph supports?</summary><br><b>
|
||||||
|
|
||||||
|
* Object (RGW)
|
||||||
|
* Block (RBD)
|
||||||
|
* File (CephFS)
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is RADOS?</summary><br><b>
|
||||||
|
|
||||||
|
* Reliable Autonomic Distributed Object Storage
|
||||||
|
* Provides low-level data object storage service
|
||||||
|
* Strong Consistency
|
||||||
|
* Simplifies design and implementation of higher layers (block, file, object)
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Describe RADOS software components</summary><br><b>
|
||||||
|
|
||||||
|
* 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
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the workflow of retrieving data from Ceph?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the workflow of retrieving data from Ceph?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What are "Placement Groups"?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Describe in the detail the following: Objects -> Pool -> Placement Groups -> OSDs</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is OMAP?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
## Packer
|
## Packer
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -10413,9 +10488,10 @@ Below you can find several exercises
|
|||||||
|
|
||||||
* [CI for open source project](exercises/ci_for_open_source_project.md)
|
* [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
|
#### Mixed
|
||||||
|
|
||||||
@ -10424,7 +10500,7 @@ Below you can find several exercises
|
|||||||
|
|
||||||
#### Misc
|
#### 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)
|
* [ELK & Filebeat](exercises/eflk.md)
|
||||||
* [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)
|
||||||
|
@ -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)
|
|
@ -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.
|
This one out of many possible solutions. This solution is relying heavily on AWS.
|
||||||
|
|
8
exercises/programming/web_scraper.md
Normal file
8
exercises/programming/web_scraper.md
Normal file
@ -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)
|
BIN
images/containers.png
Normal file
BIN
images/containers.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
# We dont care about non alphanumerics filenames so we just ls | grep to shorten the script.
|
# We dont care about non alphanumerics filenames so we just ls | grep to shorten the script.
|
||||||
|
|
||||||
echo $(( $(ls ./exercises/ | grep ".*md" -c) + $(grep \</summary\> -c README.md) ))
|
echo $(( $(ls -R ./exercises/ | grep ".*md" -c) + $(grep \</summary\> -c README.md) ))
|
||||||
|
Loading…
Reference in New Issue
Block a user