From 08b2380362ab27b50fb7f04cfeec77de4ffbacb2 Mon Sep 17 00:00:00 2001 From: abregman Date: Wed, 19 Feb 2020 09:00:45 +0200 Subject: [PATCH] 900 questions milestone --- README.md | 169 +++++++++++++++--- common-qa.md | 4 +- exercises/write_dockerfile_run_container.md | 2 +- images/distributed/distributed_design_lb.png | Bin 0 -> 22417 bytes .../distributed_design_standby.png | Bin 0 -> 12750 bytes 5 files changed, 145 insertions(+), 30 deletions(-) create mode 100644 images/distributed/distributed_design_lb.png create mode 100644 images/distributed/distributed_design_standby.png diff --git a/README.md b/README.md index 5517eb5..ca05ab6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ :information_source:  This repo contains questions and exercises on various technical topics, sometimes related to DevOps and SRE :) -:bar_chart:  There are currently **881** questions +:bar_chart:  There are currently **900** questions :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 @@ -1056,6 +1056,10 @@ Systems keep an ARP look-up table where they store information about what IP add What is MTU?
+
+What happens if you send a packet that is bigger than the MTU?
+
+
True or False?. Ping is using UDP because it doesn't care about reliable connection
@@ -1072,14 +1076,6 @@ Systems keep an ARP look-up table where they store information about what IP add What is NAT? How it works?
-
-What is latency?
-
- -
-What is bandwidth?
-
-
Which factors affect network performances
@@ -1953,6 +1949,10 @@ If wait is not used by a parent process then a child process might become a zomb Executes a program. The program is passed as a filename (or path) and must be a binary executable or a script. +
+What is the return value of malloc?
+
+
What happens when you execute ls -l?
@@ -3238,6 +3238,17 @@ It evaluates to True.
The reason is that the two created empty list are different objects. `x is y` only evaluates to true when x and y are the same object.
+
+Improve the following code: + +``` +char = input("Insert a character: ") +if char == "a" or char == "y" or char == "o" or char == "e" or char =="u" or char == "i": + print("It's a vowel!") +``` +
+
+
Explain inheritance and how to use it in Python
@@ -3517,6 +3528,12 @@ print("{0:.3f}".format(sum(li)/len(li))) #### Python Lists +
+How to add the items of [1, 2, 3] to the list [4, 5, 6]?
+x = [4, 5, 6] +x.extend([1, 2, 3]) +
+
How do you get the maximum and minimum values from a list? How to get the last item from a list?
@@ -5956,27 +5973,25 @@ CPDoS or Cache Poisoned Denial of Service. It poisons the CDN cache. By manipula The Elastic Stack consists of: * Elasticsearch - * Elastic Hadoop * Kibana * Logstash * Beats + * Elastic Hadoop * APM Server The most used projects are the Elasticserach, Logstash and Kibana. Also known as the ELK stack.
-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
+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
-1. The data logged by the application is sent to Elasticsearch +The process may vary based on the chosen architecture: + +1. The data logged by the application is picked by filebeat and sent to logstash +2. Logstash process the log based on the defined filters. Once done, the output is sent to Elasticsearch 2. Elasticsearch stores the document it got and the document is indexed for quick future access -3. Logstash processes the data -4. The user creates visualizations which uses the index in elasticsearch and more specifically the data there (this is done in Kibana). -5. The user creates a dashboard which composed out of the visualization created earlier -
- -
-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
+4. The user creates visualizations in Kibana which based on the indexed data +5. The user creates a dashboard which composed out of the visualization created in the previous step
##### Elasticsearch @@ -6019,7 +6034,6 @@ As in NoSQL a Document is a JSON object which holds data on a unit in your app. 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
False. - From the official docs: "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. 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. 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. - -
@@ -6067,6 +6079,13 @@ To this end, Elasticsearch allows you to make one or more copies of your index 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.
+
+You check "Current Phase" under "Index lifecycle management" and you see it's set to "hot". What does it mean?
+ +"The index is actively being written to". +More about the phases [here](https://www.elastic.co/guide/en/elasticsearch/reference/7.6/ilm-policy-definition.html) +
+ ##### Query DSL
@@ -6098,7 +6117,29 @@ From the official docs:
-What are Logstash Codecs?
+What is grok?
+ +A logstash plugin which modifies information in one format and immerse it in another. +
+ +
+How grok works?
+
+ +
+What grok patterns are you familiar with?
+
+ +
+What is `_grokparsefailure?`
+
+ +
+How do you test or debug grok patterns?
+
+ +
+What are Logstash Codecs? What codecs are there?
##### Kibana @@ -6135,6 +6176,10 @@ Total number of documents matching the search results. If not query used then si What is Filebeat?
+
+If one is using ELK, is it a must to also use filebeat? In what scenarios it's useful to use filebeat?
+
+
What are filebeat modules?
@@ -6236,6 +6281,17 @@ MX (Mail Exchange) Specifies a mail exchange server for the domain, which allows According to Martin Kleppmann: "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." + +Another definition: "Systems that are physically separated, but logically connected" +
+ +
+What can cause a system to fail?
+ +* Network +* CPU +* Memory +* Disk
@@ -6248,12 +6304,37 @@ According to the CAP theorem, it's not possible for a distributed data store to * Partition tolerance: Even if some the data is lost/dropped, the system keeps running
+
+What are the problems with the following design? How to improve it?
+ +

+1. The transition can take time. In other words, noticeable downtime. +2. Standby server is a waste of resources - if first application server is running then the standby does nothing +
+ +
+What are the problems with the following design? How to improve it?
+ +

+Issues: +If load balancer dies , we lose the ability to communicate with the application. + +Ways to improve: +* Add another load balancer +* Use DNS A record for both load balancers +* Use message queue +
+
What is "Shared-Nothing" architecture?
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, ...).
+
+Explain the Sidecar Pattern
+
+ ## General
@@ -6264,6 +6345,36 @@ I like this definition from [here](https://blog.christianposta.com/microservices "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."
+
+What is latency?
+
+ +
+What is bandwidth?
+
+ +
+What is throughput?
+
+ +
+When performing a search query, what is more important, latency or throughput? And how to assure that what managing global infrastructure?
+ +Latency. To have a good latency, a search query should be forwarded to the closest datacenter. +
+ +
+When uploading a video, what is more important, latency or throughput? And how to assure that?
+ +Throughput. To have a good throughput, the upload stream should be routed to an underutilized link. +
+ +
+What other considerations (except latency and throughput) are there when forwarding requests?
+ +* Keep caches updated (which means the request could be forwarded not to the closest datacenter) +
+ #### Jira
@@ -6380,6 +6491,10 @@ TODO: explain what is actually a Cookie What is an Application Load Balancer?
+
+What is DNS load balancing? What its advantages? When would you use it?
+
+ #### Random
@@ -6583,11 +6698,11 @@ Not only this will tell you what is expected from you, it will also provide big ## Testing
-What types of tests would you run for web application?
+What are unit tests?
-What are unit tests?
+What types of tests would you run to test a web application?
@@ -6741,13 +6856,13 @@ Horizontal Scaling is the process of adding more resources that will be able han
How would you update each of the services in the following drawing without having app (foo.com) downtime?
- +

What is the problem with the following architecture and how would you fix it?
- +

The load on the producers or consumers may be high which will then cause them to hang or crash.
diff --git a/common-qa.md b/common-qa.md index 58055a0..6cb9832 100644 --- a/common-qa.md +++ b/common-qa.md @@ -9,8 +9,8 @@ It is also used sometimes (from what I've been told) to prepare for interviews b ### My goal is to prepare for a DevOps interview. How to do that? -I've added a couple of suggestions here [here](prepare_for_interview.md) -Feel free to contribute any ideas and insights +I've added a couple of suggestions [here](prepare_for_interview.md)
+Feel free to contribute any ideas and insights you have. ### How do I become a better DevOps Engineer? diff --git a/exercises/write_dockerfile_run_container.md b/exercises/write_dockerfile_run_container.md index c114de4..8627a20 100644 --- a/exercises/write_dockerfile_run_container.md +++ b/exercises/write_dockerfile_run_container.md @@ -6,6 +6,6 @@ Your task is as follows: * Use centos or ubuntu as the base image * Install apache web server * Deploy any web application you want - * Add https support (using HAProxy as reverse-proxy))) + * Add https support (using HAProxy as reverse-proxy) 2. Once you wrote the Dockerfile and created an image, run the container and test the application. Describe how did you test it and provide output 3. Describe one or more weakness of your Dockerfile. Is it ready to be used in production? diff --git a/images/distributed/distributed_design_lb.png b/images/distributed/distributed_design_lb.png new file mode 100644 index 0000000000000000000000000000000000000000..1df01fdb563255c92507651ed165d47f8df0827b GIT binary patch literal 22417 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 IKj{|!Z{)_9@Bjb+ literal 0 HcmV?d00001 diff --git a/images/distributed/distributed_design_standby.png b/images/distributed/distributed_design_standby.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d90d2e6d72e6d0823d77db0b2ef975c236bcf GIT binary patch literal 12750 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

cuiT|2a;4XlKZ{b7c7&(Y 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 WZMV(}0{>5g3ZakGtI%=1_P+p<9d{l8 literal 0 HcmV?d00001