Add a couple of questions

This commit is contained in:
abregman 2020-06-15 09:41:32 +03:00
parent 90a6170984
commit 38aaea849a
4 changed files with 144 additions and 54 deletions

152
README.md
View File

@ -24,7 +24,7 @@
<tr> <tr>
<td align="center"><a href="#devops"><img src="images/devops.png" width="70px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a><br /><sub><a href="#devops-beginner">Beginner :baby:</a></sub><br><sub><a href="#devops-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#devops"><img src="images/devops.png" width="70px;" height="75px;" alt="DevOps" /><br /><b>DevOps</b></a><br /><sub><a href="#devops-beginner">Beginner :baby:</a></sub><br><sub><a href="#devops-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="85px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#jenkins"><img src="images/jenkins.png" width="85px;" height="85px;" alt="Jenkins"/><br /><b>Jenkins</b></a><br /><sub><a href="#jenkins-beginner">Beginner :baby:</a></sub><br><sub><a href="#jenkins-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#git"><img src="images/git.png" width="80px;" height="75px;" alt="Git"/><br /><b>Git</b></a><br /><sub><a href="#git-beginner">Beginner :baby:</a></sub><br><sub><a href="#git-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#git"><img src="images/git.png" width="80px;" height="75px;" alt="Git"/><br /><b>Git</b></a></td>
<td align="center"><a href="#ansible"><img src="images/ansible.png" width="75px;" height="75px;" alt="ansible"/><br /><b>Ansible</b></a></td> <td align="center"><a href="#ansible"><img src="images/ansible.png" width="75px;" height="75px;" alt="ansible"/><br /><b>Ansible</b></a></td>
<td align="center"><a href="#Network"><img src="images/network.png" width="80x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub><a href="#network-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#Network"><img src="images/network.png" width="80x;" height="75px;" alt="Network"/><br /><b>Network</b></a><br /><sub><a href="#network-beginner">Beginner :baby:</a></sub><br><sub><a href="#network-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#linux"><img src="images/linux.png" width="75x;" height="75px;" alt="Linux"/><br /><b>Linux</b></a><br /><sub><a href="#linux-beginner">Beginner :baby:</a></sub><br><sub><a href="#linux-advanced">Advanced :star:</a></sub></td>
@ -47,7 +47,7 @@
<td align="center"><a href="#azure"><img src="images/azure.png" width="75px;" height="75px;" alt="azure"/><br /><b>Azure</b></a><br /><sub><a href="#azure-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#azure"><img src="images/azure.png" width="75px;" height="75px;" alt="azure"/><br /><b>Azure</b></a><br /><sub><a href="#azure-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#gcp"><img src="images/googlecloud.png" width="80px;" height="75px;" alt="Google Cloud Platform"/><br /><b>Google Cloud Platform</b></a><br /><sub><a href="#gcp-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#gcp"><img src="images/googlecloud.png" width="80px;" height="75px;" alt="Google Cloud Platform"/><br /><b>Google Cloud Platform</b></a><br /><sub><a href="#gcp-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#openstack"><img src="images/openstack.png" width="75px;" height="75px;" alt="openstack"/><br /><b>OpenStack</b></a><br /><sub><a href="#openstack-beginner">Beginner :baby:</a></sub><br><sub><a href="#openstack-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#openstack"><img src="images/openstack.png" width="75px;" height="75px;" alt="openstack"/><br /><b>OpenStack</b></a><br /><sub><a href="#openstack-beginner">Beginner :baby:</a></sub><br><sub><a href="#openstack-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#security"><img src="images/security.png" width="75px;" height="75px;" alt="security"/><br /><b>Security</b></a><br /><sub><a href="#security-beginner">Beginner :baby:</a></sub><br><sub><a href="#security-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#security"><img src="images/security.png" width="75px;" height="75px;" alt="security"/><br /><b>Security</b></a></td>
<td align="center"><a href="#puppet"><img src="images/puppet.png" width="75px;" height="75px;" alt="puppet"/><br /><b>Puppet</b></a><br /><sub><a href="#puppet-beginner">Beginner :baby:</a></sub><br><sub><a href="#puppet-advanced">Advanced :star:</a></sub></td> <td align="center"><a href="#puppet"><img src="images/puppet.png" width="75px;" height="75px;" alt="puppet"/><br /><b>Puppet</b></a><br /><sub><a href="#puppet-beginner">Beginner :baby:</a></sub><br><sub><a href="#puppet-advanced">Advanced :star:</a></sub></td>
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a><br /><sub><a href="#openshift-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a><br /><sub><a href="#openshift-beginner">Beginner :baby:</a></sub><br><sub></td>
</tr> </tr>
@ -55,7 +55,7 @@
<td align="center"><a href="#monitoring"><img src="images/monitoring.png" width="75px;" height="75px;" alt="Monitoring"/><br /><b>Monitoring</b></a><br /><sub><a href="#monitoring-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#monitoring"><img src="images/monitoring.png" width="75px;" height="75px;" alt="Monitoring"/><br /><b>Monitoring</b></a><br /><sub><a href="#monitoring-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#elastic"><img src="images/elastic.png" width="110px;" height="75px;" alt="Elastic"/><br /><b>Elastic</b></a></td> <td align="center"><a href="#elastic"><img src="images/elastic.png" width="110px;" height="75px;" alt="Elastic"/><br /><b>Elastic</b></a></td>
<td align="center"><a href="#virtualization"><img src="images/virtualization.png" width="75px;" height="75px;" alt="Virtualization"/><br /><b>Virtualization</b></a><br /><sub><a href="#virtualization-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#virtualization"><img src="images/virtualization.png" width="75px;" height="75px;" alt="Virtualization"/><br /><b>Virtualization</b></a><br /><sub><a href="#virtualization-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#dns"><img src="images/dns.png" width="75px;" height="75px;" alt="DNS"/><br /><b>DNS</b></a><br /><sub><a href="#dns-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#dns"><img src="images/dns.png" width="75px;" height="75px;" alt="DNS"/><br /><b>DNS</b></a></td>
<td align="center"><a href="#operating-system"><img src="images/os.png" width="75px;" height="75px;" alt="Operating System"/><br /><b>Operating System</b></a></td> <td align="center"><a href="#operating-system"><img src="images/os.png" width="75px;" height="75px;" alt="Operating System"/><br /><b>Operating System</b></a></td>
<td align="center"><a href="#distributed"><img src="images/distributed.png" width="110px;" height="75px;" alt="Distributed"/><br /><b>Distributed</b></a></td> <td align="center"><a href="#distributed"><img src="images/distributed.png" width="110px;" height="75px;" alt="Distributed"/><br /><b>Distributed</b></a></td>
<td align="center"><a href="#general"><img src="images/general.png" width="110px;" height="75px;" alt="General"/><br /><b>General</b></a><br /><sub><a href="#general-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#general"><img src="images/general.png" width="110px;" height="75px;" alt="General"/><br /><b>General</b></a><br /><sub><a href="#general-beginner">Beginner :baby:</a></sub><br><sub></td>
@ -65,7 +65,7 @@
<td align="center"><a href="#testing"><img src="images/testing.png" width="75px;" height="75px;" alt="Testing"/><br /><b>Testing</b></a></td> <td align="center"><a href="#testing"><img src="images/testing.png" width="75px;" height="75px;" alt="Testing"/><br /><b>Testing</b></a></td>
<td align="center"><a href="#databases"><img src="images/databases.png" width="75px;" height="75px;" alt="Databases"/><br /><b>Databases</b></a></td> <td align="center"><a href="#databases"><img src="images/databases.png" width="75px;" height="75px;" alt="Databases"/><br /><b>Databases</b></a></td>
<td align="center"><a href="#regex"><img src="images/regex.png" width="75ph;" height="75px;" alt="RegEx"/><br /><b>Regex</b></a><br /><sub><a href="#regex-beginner">Beginner :baby:</a></sub><br><sub></td> <td align="center"><a href="#regex"><img src="images/regex.png" width="75ph;" height="75px;" alt="RegEx"/><br /><b>Regex</b></a><br /><sub><a href="#regex-beginner">Beginner :baby:</a></sub><br><sub></td>
<td align="center"><a href="#design"><img src="images/design.png" width="110px;" height="75px;" alt="Design"/><br /><b>Design</b></a></td> <td align="center"><a href="#system-design"><img src="images/design.png" width="110px;" height="75px;" alt="Design"/><br /><b>System Design</b></a></td>
<td align="center"><a href="#hardware"><img src="images/hardware.png" width="110px;" height="75px;" alt="Hardware"/><br /><b>Hardware</b></a></td> <td align="center"><a href="#hardware"><img src="images/hardware.png" width="110px;" height="75px;" alt="Hardware"/><br /><b>Hardware</b></a></td>
<td align="center"><a href="#big-data"><img src="images/big-data.png" width="110px;" height="75px;" alt="Big Data"/><br /><b>Big Data</b></a></td> <td align="center"><a href="#big-data"><img src="images/big-data.png" width="110px;" height="75px;" alt="Big Data"/><br /><b>Big Data</b></a></td>
<td align="center"><a href="#questions-you-ask"><img src="images/you.png" width="110px;" height="75px;" alt="you"/><br /><b>Questions you ask</b></a></td> <td align="center"><a href="#questions-you-ask"><img src="images/you.png" width="110px;" height="75px;" alt="you"/><br /><b>Questions you ask</b></a></td>
@ -835,6 +835,12 @@ More on storage classes [here](https://aws.amazon.com/s3/storage-classes)
Glacier Deep Archive Glacier Deep Archive
</b></details> </b></details>
<details>
<summary>What Glacier retrieval options are available for the user?</summary><br><b>
Expedited, Standard and Bulk
</b></details>
<details> <details>
<summary>True or False? Each AWS account can store up to 500 PetaByte of data. Any additional storage will cost double</summary><br><b> <summary>True or False? Each AWS account can store up to 500 PetaByte of data. Any additional storage will cost double</summary><br><b>
@ -4240,6 +4246,10 @@ False. A Kubernetes cluster consists of at least 1 master and 0 or more workers.
* Container runtime - the engine runs the containers (Podman, Docker, ...) * Container runtime - the engine runs the containers (Podman, Docker, ...)
</b></details> </b></details>
<details>
<summary>What is kubectl?</summary><br><b>
</b></details>
#### Basic Commands #### Basic Commands
<details> <details>
@ -4254,6 +4264,41 @@ False. A Kubernetes cluster consists of at least 1 master and 0 or more workers.
`kubectl get pods --all-namespaces` `kubectl get pods --all-namespaces`
</b></details> </b></details>
<details>
<summary>How to list all namespaces?</code></summary><br><b>
`kubectl get namespaces`
</b></details>
<details>
<summary>How to create a deployment?</code></summary><br><b>
```
cat << EOF | kubectl create -f -
> apiVersion: v1
> kind: Pod
> metadata:
> name: nginx
> spec:
> containers:
> - name: nginx
> image: nginx
> EOF
```
</b></details>
<details>
<summary>How to print information on a specific pod?</code></summary><br><b>
`kubectl describe pod pod_name`
</b></details>
<details>
<summary>How to delete a pod?</code></summary><br><b>
`kubectl delete pod pod_name`
</b></details>
<details> <details>
<summary>Describe in detail what the following command does <code>kubectl create deployment kubernetes-httpd --image=httpd</code></summary><br><b> <summary>Describe in detail what the following command does <code>kubectl create deployment kubernetes-httpd --image=httpd</code></summary><br><b>
</b></details> </b></details>
@ -4333,7 +4378,6 @@ open source toolkit used to manage k8s native applications, called operators, in
3. Operator Metering - Enables usage reporting for operators that provide specialized services 3. Operator Metering - Enables usage reporting for operators that provide specialized services
</b></details> </b></details>
<details> <details>
<summary>Describe in detail what is the Operator Lifecycle Manager</summary><br><b> <summary>Describe in detail what is the Operator Lifecycle Manager</summary><br><b>
@ -4349,26 +4393,6 @@ It includes:
* olm-operator - Deploys applications defined by ClusterServiceVersion resource * olm-operator - Deploys applications defined by ClusterServiceVersion resource
</b></details> </b></details>
#### Kubernetes Commands
<details>
<summary>What is kubectl?</summary><br><b>
</b></details>
<details>
<summary>How do you:
* Check the cluster status?
* Check the status of the nodes?</summary><br><b>
</b></details>
<details>
<summary>What the following commands do?
* kubectl get nodes
* kubectl get pods --all-namespaces</summary><br><b>
</b></details>
<details> <details>
<summary>What is kubconfig? What do you use it for?</summary><br><b> <summary>What is kubconfig? What do you use it for?</summary><br><b>
</b></details> </b></details>
@ -4637,10 +4661,10 @@ You can usually use the function hash() to check an object mutability. If an obj
* 1 == 'one' * 1 == 'one'
* 2 > 'one'</summary><br><b> * 2 > 'one'</summary><br><b>
* False * False
* True * True
* False * False
* TypeError * TypeError
</b></details> </b></details>
<details> <details>
@ -4652,15 +4676,18 @@ You can usually use the function hash() to check an object mutability. If an obj
* "abc"*True * "abc"*True
* "abc"*False</summary><br><b> * "abc"*False</summary><br><b>
* abcabcabc * abcabcabc
* TypeError * TypeError
* TypeError * TypeError
* "abc" * "abc"
* "" * ""
</b></details> </b></details>
<details> <details>
<summary>What is the result of `bool("")`? What about `bool(" ")`?</summary><br><b> <summary>What is the result of `bool("")`? What about `bool(" ")`?</summary><br><b>
bool("") -> evaluates to False
bool(" ") -> evaluates to True
</b></details> </b></details>
<details> <details>
@ -4681,19 +4708,20 @@ if char == "a" or char == "y" or char == "o" or char == "e" or char =="u" or ch
</summary><br><b> </summary><br><b>
``` ```
if lower(input("Insert a character: ")[0]) in "aieou": # Takes care of multiple characters and small/Capital cases char = input("Insert a character: ") # For readablity
if lower(char[0]) in "aieou": # Takes care of multiple characters and separate cases
print("It's a vowel!") print("It's a vowel!")
``` ```
OR OR
``` ```
char = input("Insert a character: ") # For readablity if lower(input("Insert a character: ")[0]) in "aieou": # Takes care of multiple characters and small/Capital cases
if lower(char[0]) in "aieou": # Takes care of multiple characters and separate cases
print("It's a vowel!") print("It's a vowel!")
``` ```
</b></details> </b></details>
<details> <details>
<summary>How to define a function with Python?</summary><br><b> <summary>How to define a function with Python?</summary><br><b>
Using the `def` keyword
</b></details> </b></details>
<details> <details>
@ -6097,9 +6125,6 @@ Alert manager is responsible for alerts ;)
## Git ## Git
<a name="git-beginner"></a>
#### :baby: Beginner
<details> <details>
<summary>What is the difference between <code>git pull</code> and <code>git fetch</code>?</summary><br><b> <summary>What is the difference between <code>git pull</code> and <code>git fetch</code>?</summary><br><b>
@ -6185,6 +6210,10 @@ git checkout HEAD~1 -- /path/of/the/file
``` ```
</b></details> </b></details>
<details>
<summary>How to squash last two commits?</summary><br><b>
</b></details>
<details> <details>
<summary>What is the <code>.git</code> directory? What can you find there?</summary><br><b> <summary>What is the <code>.git</code> directory? What can you find there?</summary><br><b>
The <code>.git</code> folder contains all the information that is necessary for your project in version control and all the information about commits, remote repository address, etc. All of them are present in this folder. It also contains a log that stores your commit history so that you can roll back to history. The <code>.git</code> folder contains all the information that is necessary for your project in version control and all the information about commits, remote repository address, etc. All of them are present in this folder. It also contains a log that stores your commit history so that you can roll back to history.
@ -6235,9 +6264,6 @@ If you would like to also discard the changes you `git reset --hard``
False. If you would like to keep a file on your filesystem, use `git reset <file_name>` False. If you would like to keep a file on your filesystem, use `git reset <file_name>`
</b></details> </b></details>
<a name="git-advanced"></a>
#### :star: Advanced
<details> <details>
<summary>Explain Git octopus merge</summary><br><b> <summary>Explain Git octopus merge</summary><br><b>
@ -7050,7 +7076,7 @@ An availability set is a logical grouping of VMs that allows Azure to understand
<summary>What storage options Azure supports?</summary><br><b> <summary>What storage options Azure supports?</summary><br><b>
</b></details> </b></details>
#### Security #### Azure Security
<details> <details>
<summary>What is the Azure Security Center? What are some of its features?</summary><br><b> <summary>What is the Azure Security Center? What are some of its features?</summary><br><b>
@ -7602,9 +7628,6 @@ A list of services and their endpoints
## Security ## Security
<a name="security-beginner"></a>
#### :baby: Beginner
<details> <details>
<summary>Can you describe the DevSecOps core principals? (or what is DevSecOps)</summary><br><b> <summary>Can you describe the DevSecOps core principals? (or what is DevSecOps)</summary><br><b>
</b></details> </b></details>
@ -7720,6 +7743,10 @@ You can test by using a stored procedure, so the application must be sanitize th
<summary>What is DDoS attack? How do you deal with it?</summary><br><b> <summary>What is DDoS attack? How do you deal with it?</summary><br><b>
</b></details> </b></details>
<details>
<summary>What is port scanning? When is it used?</summary><br><b>
</b></details>
<details> <details>
<summary>What is the difference between asynchronous and synchronous encryption?</summary><br><b> <summary>What is the difference between asynchronous and synchronous encryption?</summary><br><b>
</b></details> </b></details>
@ -7840,9 +7867,6 @@ A buffer overflow (or buffer overrun) occurs when the volume of data exceeds the
<summary>Explain what is Docker Bench</summary><br><b> <summary>Explain what is Docker Bench</summary><br><b>
</b></details> </b></details>
<a name="security-advanced"></a>
#### :baby: Advanced
<details> <details>
<summary>Explain MAC flooding attack</summary><br><b> <summary>Explain MAC flooding attack</summary><br><b>
@ -8236,9 +8260,6 @@ You can generate certificates with the provided elastic utils and change configu
## DNS ## DNS
<a name="dns-beginner"></a>
#### :baby: Beginner
<details> <details>
<summary>What is DNS? What is it used for?</summary><br><b> <summary>What is DNS? What is it used for?</summary><br><b>
@ -8307,6 +8328,7 @@ MX (Mail Exchange) Specifies a mail exchange server for the domain, which allows
<details> <details>
<summary>Is DNS using TCP or UDP?</summary><br><b> <summary>Is DNS using TCP or UDP?</summary><br><b>
DNS uses UDP port 53 for resolving queries either regular or reverse. DNS uses TCP for zone transfer. DNS uses UDP port 53 for resolving queries either regular or reverse. DNS uses TCP for zone transfer.
</b></details> </b></details>
@ -8612,6 +8634,10 @@ In Copyleft, any derivative work must use the same licensing while in permissive
<summary>How a search engine works?</summary><br><b> <summary>How a search engine works?</summary><br><b>
</b></details> </b></details>
<details>
<summary>How auto completion works?</summary><br><b>
</b></details>
<details> <details>
<summary>What is faster than RAM?</summary><br><b> <summary>What is faster than RAM?</summary><br><b>
</b></details> </b></details>
@ -8935,7 +8961,7 @@ Bonus: extract the last word of each line
<summary>Replace 'red' with 'green'</summary><br><b> <summary>Replace 'red' with 'green'</summary><br><b>
</b></details> </b></details>
## Design ## System Design
#### Architecture #### Architecture
@ -9046,6 +9072,20 @@ DNS redirection
<summary>Explain "Branch by Abstraction" technique</summary><br><b> <summary>Explain "Branch by Abstraction" technique</summary><br><b>
</b></details> </b></details>
#### Design a system
<details>
<summary>Can you design a video streaming website?</summary><br><b>
</b></details>
<details>
<summary>Can you design a photo upload website?</summary><br><b>
</b></details>
<details>
<summary>How would you build a URL shortener?</summary><br><b>
</b></details>
## Hardware ## Hardware
<details> <details>
@ -9181,6 +9221,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
* [grep before and after](exercises/grep_berfore_and_after.md)
#### Mixed #### Mixed
* [Flask, Containers and CI](exercises/flask_container_ci/README.md) * [Flask, Containers and CI](exercises/flask_container_ci/README.md)

View File

@ -13,3 +13,42 @@
`kubectl get pods --all-namespaces` `kubectl get pods --all-namespaces`
</b></details> </b></details>
<details>
<summary>How to list all namespaces?</code></summary><br><b>
`kubectl get namespaces`
</b></details>
<details>
<summary>How to create a deployment?</code></summary><br><b>
```
cat << EOF | kubectl create -f -
> apiVersion: v1
> kind: Pod
> metadata:
> name: nginx
> spec:
> containers:
> - name: nginx
> image: nginx
> EOF
```
</b></details>
<details>
<summary>How to print information on a specific pod?</code></summary><br><b>
`kubectl describe pod pod_name`
</b></details>
<details>
<summary>How to delete a pod?</code></summary><br><b>
`kubectl delete pod pod_name`
</b></details>
<details>
<summary>How to check the status of all the components?</code></summary><br><b>
</b></details>

View File

@ -316,6 +316,12 @@ More on storage classes [here](https://aws.amazon.com/s3/storage-classes)
Glacier Deep Archive Glacier Deep Archive
</b></details> </b></details>
<details>
<summary>What Glacier retrieval options are available for the user?</summary><br><b>
Expedited, Standard and Bulk
</b></details>
<details> <details>
<summary>True or False? Each AWS account can store up to 500 PetaByte of data. Any additional storage will cost double</summary><br><b> <summary>True or False? Each AWS account can store up to 500 PetaByte of data. Any additional storage will cost double</summary><br><b>

View File

@ -0,0 +1 @@
Implement the following grep command in Python (numbers can be different): `grep error -A 2 -B 2 some_file`