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
: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 **881** questions
5
+
:bar_chart: There are currently **900** questions
6
6
7
7
:warning: You can use these for preparing for an interview but most of the questions and exercises don't represent an actual interview. Please read [Q&A](common-qa.md) for more details
8
8
@@ -1056,6 +1056,10 @@ Systems keep an ARP look-up table where they store information about what IP add
1056
1056
<summary>What is MTU?</summary><br><b>
1057
1057
</b></details>
1058
1058
1059
+
<details>
1060
+
<summary>What happens if you send a packet that is bigger than the MTU?</summary><br><b>
1061
+
</b></details>
1062
+
1059
1063
<details>
1060
1064
<summary>True or False?. Ping is using UDP because it doesn't care about reliable connection</summary><br><b>
1061
1065
</b></details>
@@ -1072,14 +1076,6 @@ Systems keep an ARP look-up table where they store information about what IP add
1072
1076
<summary>What is NAT? How it works?</summary><br><b>
<summary>How to add the items of [1, 2, 3] to the list [4, 5, 6]?</summary><br><b>
3533
+
x = [4, 5, 6]
3534
+
x.extend([1, 2, 3])
3535
+
</b></details>
3536
+
3520
3537
<details>
3521
3538
<summary>How do you get the maximum and minimum values from a list? How to get the last item from a list?</summary><br><b>
3522
3539
@@ -5956,27 +5973,25 @@ CPDoS or Cache Poisoned Denial of Service. It poisons the CDN cache. By manipula
5956
5973
The Elastic Stack consists of:
5957
5974
5958
5975
* Elasticsearch
5959
-
* Elastic Hadoop
5960
5976
* Kibana
5961
5977
* Logstash
5962
5978
* Beats
5979
+
* Elastic Hadoop
5963
5980
* APM Server
5964
5981
5965
5982
The most used projects are the Elasticserach, Logstash and Kibana. Also known as the ELK stack.
5966
5983
</b></details>
5967
5984
5968
5985
<details>
5969
-
<summary>Describe what happens from the moment the app logged some information until it's displayed to the user in the dashboard when the Elastic stack is used</summary><br><b>
5986
+
<summary>Describe what happens from the moment the app logged some information until it's displayed to the user in a dashboard when the Elastic stack is used</summary><br><b>
5970
5987
5971
-
1. The data logged by the application is sent to Elasticsearch
5972
-
2. Elasticsearch stores the document it got and the document is indexed for quick future access
5973
-
3. Logstash processes the data
5974
-
4. The user creates visualizations which uses the index in elasticsearch and more specifically the data there (this is done in Kibana).
5975
-
5. The user creates a dashboard which composed out of the visualization created earlier
5976
-
</b></details>
5988
+
The process may vary based on the chosen architecture:
5977
5989
5978
-
<details>
5979
-
<summary>You are running an app which outputs several log files (without timestamps). What do you do in order to process the information they include and display it in Kibana? you can ask for additional information if required for answering this question</summary><br><b>
5990
+
1. The data logged by the application is picked by filebeat and sent to logstash
5991
+
2. Logstash process the log based on the defined filters. Once done, the output is sent to Elasticsearch
5992
+
2. Elasticsearch stores the document it got and the document is indexed for quick future access
5993
+
4. The user creates visualizations in Kibana which based on the indexed data
5994
+
5. The user creates a dashboard which composed out of the visualization created in the previous step
5980
5995
</b></details>
5981
5996
5982
5997
##### Elasticsearch
@@ -6019,7 +6034,6 @@ As in NoSQL a Document is a JSON object which holds data on a unit in your app.
6019
6034
<summary>True or False? Elasticsearch indexes all data in every field and each indexed field has the same data structure for unified and quick query ability</summary><br><b>
6020
6035
6021
6036
False.
6022
-
6023
6037
From the official docs:
6024
6038
6025
6039
"Each indexed field has a dedicated, optimized data structure. For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees."
@@ -6057,8 +6071,6 @@ This allows Elasticsearch to scale to an entire cluster of servers.
6057
6071
6058
6072
In a network/cloud environment where failures can be expected any time, it is very useful and highly recommended to have a failover mechanism in case a shard/node somehow goes offline or disappears for whatever reason.
6059
6073
To this end, Elasticsearch allows you to make one or more copies of your index’s shards into what are called replica shards, or replicas for short.
6060
-
6061
-
6062
6074
</b></details>
6063
6075
6064
6076
<details>
@@ -6067,6 +6079,13 @@ To this end, Elasticsearch allows you to make one or more copies of your index
6067
6079
Term Frequency is how often a term appears in a given document and Document Frequency is how often a term appears in all documents. They both are used for determining the relevance of a term by calculating Term Frequency / Document Frequency.
6068
6080
</b></details>
6069
6081
6082
+
<details>
6083
+
<summary>You check "Current Phase" under "Index lifecycle management" and you see it's set to "hot". What does it mean?</summary><br><b>
6084
+
6085
+
"The index is actively being written to".
6086
+
More about the phases [here](https://www.elastic.co/guide/en/elasticsearch/reference/7.6/ilm-policy-definition.html)
6087
+
</b></details>
6088
+
6070
6089
##### Query DSL
6071
6090
6072
6091
<details>
@@ -6098,7 +6117,29 @@ From the official docs:
6098
6117
</b></details>
6099
6118
6100
6119
<details>
6101
-
<summary>What are Logstash Codecs?</summary><br><b>
6120
+
<summary>What is grok?</summary><br><b>
6121
+
6122
+
A logstash plugin which modifies information in one format and immerse it in another.
6123
+
</b></details>
6124
+
6125
+
<details>
6126
+
<summary>How grok works?</summary><br><b>
6127
+
</b></details>
6128
+
6129
+
<details>
6130
+
<summary>What grok patterns are you familiar with?</summary><br><b>
6131
+
</b></details>
6132
+
6133
+
<details>
6134
+
<summary>What is `_grokparsefailure?`</summary><br><b>
6135
+
</b></details>
6136
+
6137
+
<details>
6138
+
<summary>How do you test or debug grok patterns?</summary><br><b>
6139
+
</b></details>
6140
+
6141
+
<details>
6142
+
<summary>What are Logstash Codecs? What codecs are there?</summary><br><b>
6102
6143
</b></details>
6103
6144
6104
6145
##### Kibana
@@ -6135,6 +6176,10 @@ Total number of documents matching the search results. If not query used then si
6135
6176
<summary>What is Filebeat?</summary><br><b>
6136
6177
</b></details>
6137
6178
6179
+
<details>
6180
+
<summary>If one is using ELK, is it a must to also use filebeat? In what scenarios it's useful to use filebeat?</summary><br><b>
6181
+
</b></details>
6182
+
6138
6183
<details>
6139
6184
<summary>What are filebeat modules?</summary><br><b>
6140
6185
</b></details>
@@ -6236,6 +6281,17 @@ MX (Mail Exchange) Specifies a mail exchange server for the domain, which allows
6236
6281
According to Martin Kleppmann:
6237
6282
6238
6283
"Many processes running on many machines...only message-passing via an unreliable network with variable delays, and the system may suffer from partial failures, unreliable clocks, and process pauses."
6284
+
6285
+
Another definition: "Systems that are physically separated, but logically connected"
6286
+
</b></details>
6287
+
6288
+
<details>
6289
+
<summary>What can cause a system to fail?</summary><br><b>
6290
+
6291
+
* Network
6292
+
* CPU
6293
+
* Memory
6294
+
* Disk
6239
6295
</b></details>
6240
6296
6241
6297
<details>
@@ -6248,12 +6304,37 @@ According to the CAP theorem, it's not possible for a distributed data store to
6248
6304
* Partition tolerance: Even if some the data is lost/dropped, the system keeps running
6249
6305
</b></details>
6250
6306
6307
+
<details>
6308
+
<summary>What are the problems with the following design? How to improve it?<br>
If load balancer dies , we lose the ability to communicate with the application.
6321
+
6322
+
Ways to improve:
6323
+
* Add another load balancer
6324
+
* Use DNS A record for both load balancers
6325
+
* Use message queue
6326
+
</b></details>
6327
+
6251
6328
<details>
6252
6329
<summary>What is "Shared-Nothing" architecture?</summary><br><b>
6253
6330
6254
6331
It's an architecture in which data is and retrieved from a single, non-shared, source usually exclusively connected to one node as opposed to architectures where the request can get to one of many nodes and the data will be retrieved from one shared location (storage, memory, ...).
6255
6332
</b></details>
6256
6333
6334
+
<details>
6335
+
<summary>Explain the Sidecar Pattern</summary><br><b>
6336
+
</b></details>
6337
+
6257
6338
## General
6258
6339
6259
6340
<details>
@@ -6264,6 +6345,36 @@ I like this definition from [here](https://blog.christianposta.com/microservices
6264
6345
"An explicitly and purposefully defined interface designed to be invoked over a network that enables software developers to get programmatic access to data and functionality within an organization in a controlled and comfortable way."
6265
6346
</b></details>
6266
6347
6348
+
<details>
6349
+
<summary>What is latency?</summary><br><b>
6350
+
</b></details>
6351
+
6352
+
<details>
6353
+
<summary>What is bandwidth?</summary><br><b>
6354
+
</b></details>
6355
+
6356
+
<details>
6357
+
<summary>What is throughput?</summary><br><b>
6358
+
</b></details>
6359
+
6360
+
<details>
6361
+
<summary>When performing a search query, what is more important, latency or throughput? And how to assure that what managing global infrastructure?</summary><br><b>
6362
+
6363
+
Latency. To have a good latency, a search query should be forwarded to the closest datacenter.
6364
+
</b></details>
6365
+
6366
+
<details>
6367
+
<summary>When uploading a video, what is more important, latency or throughput? And how to assure that?</summary><br><b>
6368
+
6369
+
Throughput. To have a good throughput, the upload stream should be routed to an underutilized link.
6370
+
</b></details>
6371
+
6372
+
<details>
6373
+
<summary>What other considerations (except latency and throughput) are there when forwarding requests?</summary><br><b>
6374
+
6375
+
* Keep caches updated (which means the request could be forwarded not to the closest datacenter)
6376
+
</b></details>
6377
+
6267
6378
#### Jira
6268
6379
6269
6380
<details>
@@ -6380,6 +6491,10 @@ TODO: explain what is actually a Cookie
6380
6491
<summary>What is an Application Load Balancer?</summary><br><b>
6381
6492
</b></details>
6382
6493
6494
+
<details>
6495
+
<summary>What is DNS load balancing? What its advantages? When would you use it?</summary><br><b>
6496
+
</b></details>
6497
+
6383
6498
#### Random
6384
6499
6385
6500
<details>
@@ -6583,11 +6698,11 @@ Not only this will tell you what is expected from you, it will also provide big
6583
6698
## Testing
6584
6699
6585
6700
<details>
6586
-
<summary>What types of tests would you run for web application?</summary><br><b>
6701
+
<summary>What are unit tests?</summary><br><b>
6587
6702
</b></details>
6588
6703
6589
6704
<details>
6590
-
<summary>What are unit tests?</summary><br><b>
6705
+
<summary>What types of tests would you run to test a web application?</summary><br><b>
6591
6706
</b></details>
6592
6707
6593
6708
<details>
@@ -6741,13 +6856,13 @@ Horizontal Scaling is the process of adding more resources that will be able han
6741
6856
6742
6857
<details>
6743
6858
<summary>How would you update each of the services in the following drawing without having app (foo.com) downtime?<br>
0 commit comments