diff --git a/README.md b/README.md index 5b7d11d..2ca28f8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ :information_source:  This repository contains questions on various DevOps and SRE related topics -:bar_chart:  There are currently **781** questions +:bar_chart:  There are currently **786** questions :books:  To learn more about DevOps check the resources in [DevOpsBit.com](https://devopsbit.com) @@ -2905,7 +2905,21 @@ There is a more advanced python feature called MetaClasses that aid the programm
- What is an error? What is an exception? What types of exceptions are you familiar with?
+Explain and demonstrate class attributes & instance attributes
+ +In the following block of code `x` is a class attribute while `self.y` is a instance attribute + +``` +class MyClass(object): + x = 1 + + def __init__(self, y): + self.y = y +``` +
+ +
+What is an error? What is an exception? What types of exceptions are you familiar with?
``` # Note that you generally don't need to know the compiling process but knowing where everything comes from @@ -3054,7 +3068,7 @@ some_list[:3]
-How to sort list be the length of items?
+How to sort list by the length of items?
``` sorted_li = sorted(li, key=len) @@ -3381,11 +3395,14 @@ colums = list(zip(*(rows)))
What is the result of each of the following? + ``` >> ', '.join(["One", "Two", "Three"]) >> " ".join("welladsadgadoneadsadga".split("adsadga")[:2]) >> "".join(["c", "t", "o", "a", "o", "q", "l"])[0::2] +```
+ ``` >>> 'One, Two, Three' >>> 'well done' @@ -3466,6 +3483,7 @@ the_list.sort(key=lambda x: x[1])
Explain the following: + * zip() * map() * filter()
@@ -5675,6 +5693,24 @@ Not only this will tell you what is expected from you, it will also provide big ## Design +#### Architecture + +
+Explain "3-Tier Architecture" (including pros and cons)
+
+ +
+What are the drawbacks of monolithic architecture?
+ +* Not suitable for frequent code changes and the ability to deploy new features +* Not designed for today's infrastructure (like public clouds) +* Scaling a team to work monolithic architecture is more challenging +
+ +
+What are the advantages of micro-services architecture over a monolithic architecture?
+
+ #### Scalability
@@ -5695,6 +5731,17 @@ Horizontal Scaling is the process of adding more resources that will be able han
+
+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.
+Instead of working in "push mode", the consumers can pull tasks only when they are ready to handle them. It can be fixed by using a streaming platform like Kafka, Kinesis, etc. This platform will make sure to handle the high load/traffic and pass tasks/messages to consumers only when the ready to get them. + + +
+
Users report that there is huge spike in process time when adding little bit more data to process as an input. What might be the problem?
diff --git a/images/design/producers_consumers_fix.png b/images/design/producers_consumers_fix.png new file mode 100644 index 0000000..005b990 Binary files /dev/null and b/images/design/producers_consumers_fix.png differ diff --git a/images/design/producers_consumers_issue.png b/images/design/producers_consumers_issue.png new file mode 100644 index 0000000..3cad004 Binary files /dev/null and b/images/design/producers_consumers_issue.png differ