Add 5 new questions
This commit is contained in:
parent
a8c2888738
commit
168cb19988
73
README.md
73
README.md
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
:information_source: This repository contains questions on various DevOps and SRE related topics
|
:information_source: This repository contains questions on various DevOps and SRE related topics
|
||||||
|
|
||||||
:bar_chart: There are currently **615** questions
|
:bar_chart: There are currently **620** questions
|
||||||
|
|
||||||
:books: To learn more about DevOps check the resources in [DevOpsBit.com](https://devopsbit.com)
|
:books: To learn more about DevOps check the resources in [DevOpsBit.com](https://devopsbit.com)
|
||||||
|
|
||||||
@ -57,6 +57,7 @@
|
|||||||
<td align="center"><a href="#dns"><b>DNS</b></a><br /><sub><a href="#dns-beginner">Beginner :baby:</a></sub><br><sub></td>
|
<td align="center"><a href="#dns"><b>DNS</b></a><br /><sub><a href="#dns-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||||
<td align="center"><a href="#virtualization"><b>Virtualization</b></a><br /><sub><a href="#virtualization-beginner">Beginner :baby:</a></sub><br><sub></td>
|
<td align="center"><a href="#virtualization"><b>Virtualization</b></a><br /><sub><a href="#virtualization-beginner">Beginner :baby:</a></sub><br><sub></td>
|
||||||
<td align="center"><a href="#operating-system"><b>Operating System</b></a><br /><sub><a href="#operating-system-beginner">Beginner :baby:</a></sub><br><sub></td>
|
<td align="center"><a href="#operating-system"><b>Operating System</b></a><br /><sub><a href="#operating-system-beginner">Beginner :baby:</a></sub><br><sub></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></td>
|
<td align="center"><a href="#general"><img src="images/general.png" width="110px;" height="75px;" alt="General"/><br /><b>General</b></a></td>
|
||||||
<td align="center"><a href="#scenarios"><img src="images/scenarios.png" width="110px;" height="75px;" alt="Scenarios"/><br /><b>Scenarios</b></a></td>
|
<td align="center"><a href="#scenarios"><img src="images/scenarios.png" width="110px;" height="75px;" alt="Scenarios"/><br /><b>Scenarios</b></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -74,11 +75,20 @@
|
|||||||
<details>
|
<details>
|
||||||
<summary>What is DevOps?</summary><br><b>
|
<summary>What is DevOps?</summary><br><b>
|
||||||
|
|
||||||
There are many good answers to this question. I like Amazon's description of DevOps:
|
There are many good answers to this question.
|
||||||
|
|
||||||
|
Amazon:
|
||||||
|
|
||||||
"DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market."
|
"DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market."
|
||||||
|
|
||||||
You can find more details here: https://aws.amazon.com/devops/what-is-devops
|
Microsoft:
|
||||||
|
|
||||||
|
"DevOps is the union of people, process, and products to enable continuous delivery of value to our end users. The contraction of “Dev” and “Ops” refers to replacing siloed Development and Operations to create multidisciplinary teams that now work together with shared and efficient practices and tools. Essential DevOps practices include agile planning, continuous integration, continuous delivery, and monitoring of applications."
|
||||||
|
|
||||||
|
Red Hat:
|
||||||
|
|
||||||
|
"DevOps describes approaches to speeding up the processes by which an idea (like a new software feature, a request for enhancement, or a bug fix) goes from development to deployment in a production environment where it can provide value to the user. These approaches require that development teams and operations teams communicate frequently and approach their work with empathy for their teammates. Scalability and flexible provisioning are also necessary. With DevOps, those that need power the most, get it—through self service and automation. Developers, usually coding in a standard development environment, work closely with IT operations to speed software builds, tests, and releases—without sacrificing reliability."
|
||||||
|
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -93,7 +103,7 @@ You should mention some or all of the following:
|
|||||||
* Scale
|
* Scale
|
||||||
* Reliability
|
* Reliability
|
||||||
|
|
||||||
Detailed answer can be found here: https://aws.amazon.com/devops/what-is-devops
|
Make sure to elaborate :)
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -2026,7 +2036,7 @@ You should choose VMs when:
|
|||||||
* you need full isolation and security
|
* you need full isolation and security
|
||||||
|
|
||||||
You should choose containers when:
|
You should choose containers when:
|
||||||
* you need a lightweight solution that quickly starts
|
* you need a lightweight solution
|
||||||
* Running multiple versions or instances of a single application
|
* Running multiple versions or instances of a single application
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
@ -2047,10 +2057,6 @@ Docker daemon redirects output from container to Docker CLI which redirects it t
|
|||||||
<summary>How do you run a container?</summary><br><b>
|
<summary>How do you run a container?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>What best practices are you familiar related to working with containers?</summary><br><b>
|
|
||||||
</b></details>
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>What `docker commit` does?. When will you use it?</summary><br><b>
|
<summary>What `docker commit` does?. When will you use it?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
@ -2069,6 +2075,7 @@ Docker daemon redirects output from container to Docker CLI which redirects it t
|
|||||||
* docker run
|
* docker run
|
||||||
* docker rm
|
* docker rm
|
||||||
* docker ps
|
* docker ps
|
||||||
|
* docker pull
|
||||||
* docker build
|
* docker build
|
||||||
* docker commit</summary><br><b>
|
* docker commit</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
@ -2091,8 +2098,16 @@ Docker daemon redirects output from container to Docker CLI which redirects it t
|
|||||||
<summary>What is the difference between CMD and RUN in Dockerfile?</summary><br><b>
|
<summary>What is the difference between CMD and RUN in Dockerfile?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Do you perform any checks or testing related to your Dockerfile?</summary><br><b>
|
||||||
|
|
||||||
|
A common answer to this is to use [hadolint](https://github.com/hadolint/hadolint) project which is a linter based on Dockerfile best practices.
|
||||||
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Explain what is Docker compose and what is it used for</summary><br><b>
|
<summary>Explain what is Docker compose and what is it used for</summary><br><b>
|
||||||
|
|
||||||
|
Docker Compose is used for running multi-container applications
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -2125,6 +2140,10 @@ Swarm management which means you can create new swarms in Docker Cloud.
|
|||||||
<a name="docker-advanced"></a>
|
<a name="docker-advanced"></a>
|
||||||
#### :star: Advanced
|
#### :star: Advanced
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What best practices are you familiar related to working with containers?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>How do you manage persistent storage in Docker?</summary><br><b>
|
<summary>How do you manage persistent storage in Docker?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
@ -2180,6 +2199,18 @@ Kubernetes is especially good for scenarios when you no longer running small num
|
|||||||
<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>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>You suspect one of the pods is having issues, what do you do?</summary><br><b>
|
||||||
|
|
||||||
|
Start by inspecting the pods status. we can use the command `kubectl get pods` (--all-namespaces for pods in system namespace)<br>
|
||||||
|
|
||||||
|
If we see "Error" status, we can keep debugging by running the command `kubectl describe pod [name]`. In case we still don't see anything useful we can try stern for log tailing.<br>
|
||||||
|
|
||||||
|
In case we find out there was a temporary issue with the pod or the system, we can try restarting the pod with the following `kubectl scale deployment [name] --replicas=0`<br>
|
||||||
|
|
||||||
|
Setting the replicas to 0 will shut down the process. Now start it with `kubectl scale deployment [name] --replicas=1`
|
||||||
|
</b></details>
|
||||||
|
|
||||||
## Coding
|
## Coding
|
||||||
|
|
||||||
<a name="coding-beginner"></a>
|
<a name="coding-beginner"></a>
|
||||||
@ -3241,6 +3272,14 @@ git checkout HEAD~1 -- /path/of/the/file
|
|||||||
* Not removing the .git directory :)
|
* Not removing the .git directory :)
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>How do you remove a remote branch?</summary><br><b>
|
||||||
|
|
||||||
|
You delete a remote branch with this syntax:
|
||||||
|
|
||||||
|
git push origin :[branch_name]
|
||||||
|
</b></details>
|
||||||
|
|
||||||
<a name="git-advanced"></a>
|
<a name="git-advanced"></a>
|
||||||
#### :star: Advanced
|
#### :star: Advanced
|
||||||
|
|
||||||
@ -4373,6 +4412,22 @@ While an A record points a domain name to an IP address, a PTR record does the o
|
|||||||
<summary>What is a zone? What types of zones are there?</summary><br><b>
|
<summary>What is a zone? What types of zones are there?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
## Distributed
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain Distributed Computing</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Do you know what is CAP theorem" (aka as Brewer's theorem)</summary><br><b>
|
||||||
|
|
||||||
|
According to the CAP theorem, it's not possible for a distributed data store to provide more than two of the following at the same time:
|
||||||
|
|
||||||
|
* Availability: Every request receives a response (it doesn't has to be the most recent data)
|
||||||
|
* Consistency: Every request receives a response with the latest/most recent data
|
||||||
|
* Partition tolerance: Even if some the data is lost/dropped, the system keeps running
|
||||||
|
</b></details>
|
||||||
|
|
||||||
## General
|
## General
|
||||||
|
|
||||||
Although the following questions are not DevOps related, they are still quite common so it's better to prepare for them as well.
|
Although the following questions are not DevOps related, they are still quite common so it's better to prepare for them as well.
|
||||||
|
@ -10,3 +10,4 @@ Bash logo created by Prospect One<br>
|
|||||||
OpenStack logo created by and a trademark of The <a href="https://www.openstack.org">OpenStack Foundation®</a><br>
|
OpenStack logo created by and a trademark of The <a href="https://www.openstack.org">OpenStack Foundation®</a><br>
|
||||||
Linux, Kubernetes and Prometheus logos are trademarks of The Linux Foundation®<br>
|
Linux, Kubernetes and Prometheus logos are trademarks of The Linux Foundation®<br>
|
||||||
Mongo logo is a trademark of <a href="www.mongodb.com">Mongo®</a><br>
|
Mongo logo is a trademark of <a href="www.mongodb.com">Mongo®</a><br>
|
||||||
|
Design logo by Aleksandr Reva
|
||||||
|
BIN
images/distributed.png
Normal file
BIN
images/distributed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.0 KiB |
@ -79,7 +79,7 @@ And the last example:
|
|||||||
|
|
||||||
### Start your own DevOps project
|
### Start your own DevOps project
|
||||||
|
|
||||||
Starting a DevOps is a good idea because:
|
Starting a DevOps project is a good idea because:
|
||||||
|
|
||||||
* It will make you practice coding
|
* It will make you practice coding
|
||||||
* It will be something you can add to your resume and talk about with the interviewer
|
* It will be something you can add to your resume and talk about with the interviewer
|
||||||
|
Loading…
Reference in New Issue
Block a user