You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+74-18Lines changed: 74 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
:information_source: This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :)
4
4
5
-
:bar_chart: There are currently **1380** questions
5
+
:bar_chart: There are currently **1386** questions
6
6
7
7
: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
<summary>What are the anti-patterns of DevOps?</summary><br><b>
116
117
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
119
119
* Treating production differently from development environment. For example, not implementing security in development environment
120
+
* Not allowing to push to production on Friday ;)
120
121
</b></details>
121
122
122
123
<details>
@@ -127,6 +128,26 @@ A development practice where developers integrate code into a shared repository
127
128
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.
128
129
</b></details>
129
130
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
+
130
151
<details>
131
152
<summary>What is Continuous Deployment?</summary><br><b>
132
153
@@ -143,12 +164,16 @@ A development strategy used to frequently deliver code to QA and Ops for testing
143
164
For more info please read [here](https://www.atlassian.com/continuous-delivery/continuous-deployment)
144
165
</b></details>
145
166
167
+
<details>
168
+
<summary>Would you prefer a "configuration->deployment" model or "deployment->configuration"?</summary><br><b>
169
+
</b></details>
170
+
146
171
<details>
147
172
<summary>What CI/CD best practices are you familiar with? Or what do you consider as CI/CD best practice?</summary><br><b>
148
173
</b></details>
149
174
150
175
<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>
152
177
</b></details>
153
178
154
179
<details>
@@ -4343,11 +4368,10 @@ Output variables are named values that are sourced from the attributes of a modu
4343
4368
It is also common in the community to use a tool called <code>terragrunt</code> to explicitly inject variables between modules.
4344
4369
</b></details>
4345
4370
4346
-
## Docker
4371
+
## Containers
4347
4372
4348
4373
<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>
4351
4375
</b></details>
4352
4376
4353
4377
<details>
@@ -4375,11 +4399,11 @@ You should choose containers when:
<summary>Explain Podman or Docker architecture</summary><br><b>
4379
4403
</b></details>
4380
4404
4381
4405
<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>
4383
4407
4384
4408
Docker CLI passes your request to Docker daemon.
4385
4409
Docker daemon downloads the image from Docker Hub
@@ -4446,11 +4470,11 @@ Applied tar sha256:514c3a3e64d4ebf15f482c9e8909d130bcd53bcc452f0225b0a04744de7b8
4446
4470
<details>
4447
4471
<summary>How do you run a container?</summary><br><b>
4448
4472
4449
-
docker run
4473
+
`podman run` or `docker run`
4450
4474
</b></details>
4451
4475
4452
4476
<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>
4454
4478
4455
4479
Create a new image from a container’s changes
4456
4480
</b></details>
@@ -9963,12 +9987,6 @@ A connection leak is a situation where database connection isn't closed after be
9963
9987
"A data warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support of organisation's decision-making process"
9964
9988
</b></details>
9965
9989
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
-
9972
9990
<details>
9973
9991
<summary>Explain what is a time-series database</summary><br><b>
9974
9992
</b></details>
@@ -10255,6 +10273,18 @@ As defined by Doug Laney:
10255
10273
* Veracity or Variability: Inconsistent, sometimes inaccurate, varying data
10256
10274
</b></details>
10257
10275
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
+
10258
10288
<details>
10259
10289
<summary>Explain the different formats of data</summary><br><b>
10260
10290
@@ -10276,6 +10306,14 @@ As defined by Doug Laney:
10276
10306
[Data Lake - Wikipedia](https://en.wikipedia.org/wiki/Data_lake)
10277
10307
</b></details>
10278
10308
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
+
10279
10317
#### Apache Hadoop
10280
10318
10281
10319
<details>
@@ -10318,6 +10356,24 @@ A programming model for large-scale data processing
10318
10356
* Namenode controls all metadata
10319
10357
</b></details>
10320
10358
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
+
10321
10377
## Certificates
10322
10378
10323
10379
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 :)
0 commit comments