Skip to content

Commit e16b2ec

Browse files
author
abregman
committed
Add a couple of questions
And switch some questions from docker to podman.
1 parent 5ba0a0a commit e16b2ec

File tree

2 files changed

+74
-18
lines changed

2 files changed

+74
-18
lines changed

README.md

Lines changed: 74 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
:information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :)
44

5-
:bar_chart:  There are currently **1380** questions
5+
:bar_chart:  There are currently **1386** questions
66

77
: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
88

@@ -68,10 +68,11 @@
6868
</tr>
6969
<tr>
7070
<td align="center"><a href="#certificates"><img src="images/certificates.png" width="75px;" height="75px;" alt="Certificates"/><br /><b>Certificates</b></a></td>
71-
<td align="center"><a href="#docker"><img src="images/docker.png" width="70px;" height="75px;" alt="Docker"/><br /><b>Docker</b></a></td>
71+
<td align="center"><a href="#containers"><img src="images/containers.png" width="70px;" height="75px;" alt="Containers"/><br /><b>Containers</b></a></td>
7272
<td align="center"><a href="#sql"><img src="images/sql.png" width="75px;" height="75px;" alt="sql"/><br /><b>SQL</b></a></td>
7373
<td align="center"><a href="#openshift"><img src="images/openshift.png" width="75px;" height="75px;" alt="OpenShift"/><br /><b>OpenShift</b></a></td>
7474
<td align="center"><a href="#storage"><img src="images/storage.png" width="75px;" height="75px;" alt="Storage"/><br /><b>Storage</b></a></td>
75+
<td align="center"><a href="#packer"><img src="images/packer.png" width="75px;" height="75px;" alt="Packer"/><br /><b>Packer</b></a></td>
7576
<td align="center"><a href="#HR"><img src="images/HR.png" width="110px;" height="75px;" alt="HR"/><br /><b>HR</b></a></td>
7677
<td align="center"><a href="#exercises"><img src="images/exercises.png" width="110px;" height="75px;" alt="Exercises"/><br /><b>Exercises</b></a></td>
7778
</tr>
@@ -114,9 +115,9 @@ Red Hat:
114115
<details>
115116
<summary>What are the anti-patterns of DevOps?</summary><br><b>
116117

117-
* Not allowing to push in production on Friday :)
118-
* One specific person is in charge of different tasks. For example there is only one person who is allowed to merge the code of everyone else
118+
* One person is in charge of different tasks. For example there is only one person who is allowed to merge the code of everyone else
119119
* Treating production differently from development environment. For example, not implementing security in development environment
120+
* Not allowing to push to production on Friday ;)
120121
</b></details>
121122

122123
<details>
@@ -127,6 +128,26 @@ A development practice where developers integrate code into a shared repository
127128
Each piece of code (change/patch) is verified, to make the change is safe to merge. Today, it's a common practice to test the change using an automated build that makes sure the code can integrated. It can be one build which runs several tests in different levels (unit, functional, etc.) or several separate builds that all or some has to pass in order for the change to be merged into the repository.
128129
</b></details>
129130

131+
<details>
132+
<summary>Can you describe an example of a CI (and/or CD) process starting the moment a developer submitted a change/PR to a repository?</summary><br><b>
133+
134+
There is no one answer for such question as CI processes vary depending on the technologies used and the type of the project to where the change was submitted.
135+
Such processes can include one or more of the following stages:
136+
137+
* Compile
138+
* Build
139+
* Install
140+
* Configure
141+
* Update
142+
* Test
143+
144+
For example:
145+
146+
A developer submitted a PR to a project. The PR triggered two jobs (or one combined job). One job for lint-testing the change and the second job for building a package using the submitted change and running multiple api/scenario tests. Once all tests passed and the change was approved by a maintainer/core, it's merged/pushed to the repository. If some of the tests failed, the change will not be allowed to merged/pushed to the repository.
147+
148+
A different process can describe how a developer pushes code to a repository, a workflow then triggered to build a container image and push it the registry. Once in the registry, the k8s cluster is applied with the new changes.
149+
</b></details>
150+
130151
<details>
131152
<summary>What is Continuous Deployment?</summary><br><b>
132153

@@ -143,12 +164,16 @@ A development strategy used to frequently deliver code to QA and Ops for testing
143164
For more info please read [here](https://www.atlassian.com/continuous-delivery/continuous-deployment)
144165
</b></details>
145166

167+
<details>
168+
<summary>Would you prefer a "configuration->deployment" model or "deployment->configuration"?</summary><br><b>
169+
</b></details>
170+
146171
<details>
147172
<summary>What CI/CD best practices are you familiar with? Or what do you consider as CI/CD best practice?</summary><br><b>
148173
</b></details>
149174

150175
<details>
151-
<summary>Where do you store CI/CD pipeline? (Application repository, one central repository, ...)? Why?</summary><br><b>
176+
<summary>Where do you store CI/CD pipelines? (Application repository, one central repository, ...)? Why?</summary><br><b>
152177
</b></details>
153178

154179
<details>
@@ -4343,11 +4368,10 @@ Output variables are named values that are sourced from the attributes of a modu
43434368
It is also common in the community to use a tool called <code>terragrunt</code> to explicitly inject variables between modules.
43444369
</b></details>
43454370

4346-
## Docker
4371+
## Containers
43474372

43484373
<details>
4349-
<summary>What is Docker? What is it used for?</summary><br><b>
4350-
Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.
4374+
<summary>What is a Container? What is it used for?</summary><br><b>
43514375
</b></details>
43524376

43534377
<details>
@@ -4375,11 +4399,11 @@ You should choose containers when:
43754399
</b></details>
43764400

43774401
<details>
4378-
<summary>Explain Docker architecture</summary><br><b>
4402+
<summary>Explain Podman or Docker architecture</summary><br><b>
43794403
</b></details>
43804404

43814405
<details>
4382-
<summary>Describe in detail what happens when you run `docker run hello-world`?</summary><br><b>
4406+
<summary>Describe in detail what happens when you run `podman/docker run hello-world`?</summary><br><b>
43834407

43844408
Docker CLI passes your request to Docker daemon.
43854409
Docker daemon downloads the image from Docker Hub
@@ -4446,11 +4470,11 @@ Applied tar sha256:514c3a3e64d4ebf15f482c9e8909d130bcd53bcc452f0225b0a04744de7b8
44464470
<details>
44474471
<summary>How do you run a container?</summary><br><b>
44484472

4449-
docker run
4473+
`podman run` or `docker run`
44504474
</b></details>
44514475

44524476
<details>
4453-
<summary>What `docker commit` does?. When will you use it?</summary><br><b>
4477+
<summary>What `podman commit` does?. When will you use it?</summary><br><b>
44544478

44554479
Create a new image from a container’s changes
44564480
</b></details>
@@ -9963,12 +9987,6 @@ A connection leak is a situation where database connection isn't closed after be
99639987
"A data warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support of organisation's decision-making process"
99649988
</b></details>
99659989

9966-
<details>
9967-
<summary>What is a data lake?</summary><br><b>
9968-
9969-
A single data source (at least usually) which is stored in a raw format.
9970-
</b></details>
9971-
99729990
<details>
99739991
<summary>Explain what is a time-series database</summary><br><b>
99749992
</b></details>
@@ -10255,6 +10273,18 @@ As defined by Doug Laney:
1025510273
* Veracity or Variability: Inconsistent, sometimes inaccurate, varying data
1025610274
</b></details>
1025710275

10276+
<details>
10277+
<summary>What is DataOps? How is it related to DevOps?</summary><br><b>
10278+
</b></details>
10279+
10280+
<details>
10281+
<summary>What is Data Architecture?</summary><br><b>
10282+
10283+
An answer from [talend.com](https://www.talend.com/resources/what-is-data-architecture):
10284+
10285+
"Data architecture is the process of standardizing how organizations collect, store, transform, distribute, and use data. The goal is to deliver relevant data to people who need it, when they need it, and help them make sense of it."
10286+
</b></details>
10287+
1025810288
<details>
1025910289
<summary>Explain the different formats of data</summary><br><b>
1026010290

@@ -10276,6 +10306,14 @@ As defined by Doug Laney:
1027610306
[Data Lake - Wikipedia](https://en.wikipedia.org/wiki/Data_lake)
1027710307
</b></details>
1027810308

10309+
<details>
10310+
<summary>Can you explain the difference between a data lake and a data warehouse?</summary><br><b>
10311+
</b></details>
10312+
10313+
<details>
10314+
<summary>What is "Data Versioning"? What models of "Data Versioning" are there?</summary><br><b>
10315+
</b></details>
10316+
1027910317
#### Apache Hadoop
1028010318

1028110319
<details>
@@ -10318,6 +10356,24 @@ A programming model for large-scale data processing
1031810356
* Namenode controls all metadata
1031910357
</b></details>
1032010358

10359+
## Packer
10360+
10361+
<details>
10362+
<summary>What is Packer? What is it used for?</summary><br><b>
10363+
10364+
In general, Packer automates machine images creation.
10365+
It allows you to focus on configuration prior to deployment while making the images. This allows you start the instances much faster in most cases.
10366+
</b></details>
10367+
10368+
<details>
10369+
<summary>Packer follows a "configuration->deployment" model or "deployment->configuration"?</summary><br><b>
10370+
10371+
A configuration->deployment which has some advantages like:
10372+
10373+
1. Deployment Speed - you configure once prior to deployment instead of configuring every time you deploy. This allows you to start instances/services much quicker.
10374+
2. More immutable infrastructure - with configuration->deployment it's not likely to have very different deployments since most of the configuration is done prior to the deployment. Issues like dependencies errors are handled/discovered prior to deployment in this model.
10375+
</b></details>
10376+
1032110377
## Certificates
1032210378

1032310379
If you are looking for a way to prepare for a certain exam this is the section for you. Here you'll find a list of certificates, each references to a separate file with focused questions that will help you to prepare to the exam. Good luck :)

images/docker.png

-22.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)