Skip to content

Commit 682aaa4

Browse files
author
abregman
committed
Add a couple of questions
1 parent 79cb765 commit 682aaa4

File tree

4 files changed

+147
-20
lines changed

4 files changed

+147
-20
lines changed

README.md

+1-1
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 **2402** exercises and questions
5+
:bar_chart:  There are currently **2500** exercises and questions
66

77
:books:  To learn more about DevOps and SRE, check the resources in [devops-resources](https://github.com/bregman-arie/devops-resources) repository
88

topics/aws/README.md

+117-14
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
- [Identify the Service](#identify-the-service)
6060
- [DNS (Route 53)](#dns-route-53)
6161
- [SQS](#sqs)
62+
- [SNS](#sns)
6263
- [Monitoring and Logging](#monitoring-and-logging)
6364
- [Billing and Support](#billing-and-support)
6465
- [AWS Organizations](#aws-organizations)
@@ -2581,6 +2582,12 @@ Amazon DocumentDB
25812582
AWS Cognito
25822583
</b></details>
25832584

2585+
<details>
2586+
<summary>Which service is often reffered to as "used for decoupling applications"?</summary><br><b>
2587+
2588+
AWS SQS. Since it's a messaging queue so it allows applications to switch from synchronous communication to asynchronous one.
2589+
</b></details>
2590+
25842591
<details>
25852592
<summary>Which service would you use if you need messaging queue?</summary><br><b>
25862593

@@ -2873,35 +2880,90 @@ Learn more about it [here](https://aws.amazon.com/sqs)
28732880
</b></details>
28742881

28752882
<details>
2876-
<summary>Give an example of architecture or workflow that involves SQS</summary><br><b>
2883+
<summary>Explain "producer" and "consumer" in regards to messaging queue</summary><br><b>
28772884

2878-
A website that allows users to upload videos and adds subtitles to them:
2885+
Producer is the application or in general, the source that sends messages to the queue.
28792886

2880-
1. First the user uploads the video through the web interface which uploads it to an S3 bucket
2881-
2. SQS gets notified with a message on the video location
2882-
3. EC2 instance (or Lambda function) starts to work on adding the subtitles
2883-
4. The video with the subtitles is uploaded to an S3 buckets
2884-
5. SQS gets notified of the result and specifically the video location
2887+
Consumer is the process or application that pulls the messages from the queue.
28852888
</b></details>
28862889

2887-
### Monitoring and Logging
2890+
<details>
2891+
<summary>What "default retention of messages" means?</summary><br><b>
2892+
2893+
It refers to a retention period in which a message has to consumed/processed and deleted from the queue.
2894+
2895+
As of today, the retention of a message is 4 days by default and the maximum allows is 14 days.
2896+
</b></details>
28882897

28892898
<details>
2890-
<summary>What is AWS CloudWatch?</summary><br><b>
2899+
<summary>What's the limitation on message size in SQS?
28912900

2892-
AWS definition: "Amazon CloudWatch is a monitoring and observability service..."
2901+
* 128KB
2902+
* 128MB
2903+
* 256KB
2904+
* 256MB</summary><br><b>
28932905

2894-
More on CloudWatch [here](https://aws.amazon.com/cloudwatch)
2906+
256KB
28952907
</b></details>
28962908

28972909
<details>
2898-
<summary>What is AWS CloudTrail?</summary><br><b>
2910+
<summary>True or False? It's possible to have duplicated messages in the queue</summary><br><b>
28992911

2900-
AWS definition: "AWS CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your AWS account."
2912+
True. It's referred to as "at least once delivery".
2913+
</b></details>
29012914

2902-
Read more on CloudTrail [here](https://aws.amazon.com/cloudtrail)
2915+
<details>
2916+
<summary>True or False? "Consumers" can be only EC2 instances</summary><br><b>
2917+
2918+
False. They can be Lambda functions and even on-premise instances
2919+
</b></details>
2920+
2921+
<details>
2922+
<summary>True or False? Processes/Applications use from the SDK the SendMessage API in order to send messages to the queue</summary><br><b>
2923+
2924+
True.
2925+
</b></details>
2926+
2927+
<details>
2928+
<summary>What it means "best effort ordering" in regards to SQS?</summary><br><b>
2929+
2930+
It means messages in the queue can be out of order.
2931+
</b></details>
2932+
2933+
<details>
2934+
<summary>What is "Delay Queue" in regards to SQS?</summary><br><b>
2935+
2936+
It's the time in seconds to delay the delivery of new messages (when they reached the queue already).
2937+
2938+
The limit as of today is 15 minutes.
2939+
</b></details>
2940+
2941+
<details>
2942+
<summary>What is "Visibility Timeout?"</summary><br><b>
2943+
2944+
The time in seconds for a message to not be visible for consumers.
2945+
2946+
The limit as of today is 12 hours
2947+
</b></details>
2948+
2949+
<details>
2950+
<summary>Give an example of architecture or workflow that involves SQS and EC2 & S3</summary><br><b>
2951+
2952+
A website that allows users to upload videos and adds subtitles to them:
2953+
2954+
1. First the user uploads the video through the web interface which uploads it to an S3 bucket
2955+
2. SQS gets notified with a message on the video location
2956+
3. EC2 instance (or Lambda function) starts to work on adding the subtitles
2957+
4. The video with the subtitles is uploaded to an S3 buckets
2958+
5. SQS gets notified of the result and specifically the video location
29032959
</b></details>
29042960

2961+
<details>
2962+
<summary>What's MessageGroupID?</summary><br><b>
2963+
</b></details>
2964+
2965+
### SNS
2966+
29052967
<details>
29062968
<summary>What is Simply Notification Service?</summary><br><b>
29072969

@@ -2922,6 +2984,38 @@ Read more about it [here](https://aws.amazon.com/sns)
29222984
* Publishers - the provider of the message (event, person, ...)
29232985
</b></details>
29242986

2987+
<details>
2988+
<summary>How SNS is different from SQS?</summary><br><b>
2989+
2990+
SNS, as opposed to SQS, works in a publisher/subscriber model. Where's SQS works in Producer/Consumer model.
2991+
2992+
SQS delivers the message to one consumer where's SNS will send a message to multiple subscribers.
2993+
</b></details>
2994+
2995+
<details>
2996+
<summary>What's a Fan-Out pattern?</summary><br><b>
2997+
2998+
A messaging pattern where a single message is send to multiple destinations (often simultaneously). So one-to-many broadcast message.
2999+
</b></details>
3000+
3001+
### Monitoring and Logging
3002+
3003+
<details>
3004+
<summary>What is AWS CloudWatch?</summary><br><b>
3005+
3006+
AWS definition: "Amazon CloudWatch is a monitoring and observability service..."
3007+
3008+
More on CloudWatch [here](https://aws.amazon.com/cloudwatch)
3009+
</b></details>
3010+
3011+
<details>
3012+
<summary>What is AWS CloudTrail?</summary><br><b>
3013+
3014+
AWS definition: "AWS CloudTrail is a service that enables governance, compliance, operational auditing, and risk auditing of your AWS account."
3015+
3016+
Read more on CloudTrail [here](https://aws.amazon.com/cloudtrail)
3017+
</b></details>
3018+
29253019
### Billing and Support
29263020

29273021
<details>
@@ -3356,6 +3450,15 @@ Network Load Balancer
33563450
You can use an ElastiCache cluster or RDS Read Replicas.
33573451
</b></details>
33583452

3453+
<details>
3454+
<summary>You have two applications who communicate synchronously. It worked fine until there suddenly a spike of traffic. What change you might apply in this case?</summary><br><b>
3455+
3456+
More details are missing to determine for sure but it might be better to decouple the applications by introducing one of the following:
3457+
3458+
* Queue model with SQS
3459+
* Publisher/Subscriber model with SNS
3460+
</b></details>
3461+
33593462
### Misc
33603463

33613464
<details>
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
## Hello Function
1+
# Hello Function
22

33
Create a basic AWS Lambda function that when given a name, will return "Hello <NAME>"
4+
5+
## Solution
6+
7+
Click [here](solution.md) to view the solution.

topics/devops/README.md

+24-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
## DevOps
1+
# DevOps
2+
3+
## Questions
4+
5+
### General
26

37
<details>
48
<summary>What is DevOps?</summary><br><b>
@@ -69,7 +73,7 @@ A couple of thoughts:
6973
3. You might want to set a possibly better goal such as "be able to deploy whenever we need to deploy"
7074
</b></details>
7175

72-
#### Tooling
76+
### Tooling
7377

7478
<details>
7579
<summary>What do you take into consideration when choosing a tool/technology?</summary><br><b>
@@ -120,7 +124,7 @@ Things to think about:
120124
* What does the switch from one platform to another will require from the organization? For example, training users who use the platform? How much time the team has to invest in such move?
121125
</b></details>
122126

123-
#### Version Control
127+
### Version Control
124128

125129
<details>
126130
<summary>What is Version Control?</summary><br><b>
@@ -179,7 +183,7 @@ to a server will result in a new server instead of updating it. Terraform is an
179183
which follows the immutable infrastructure paradigm.
180184
</b></details>
181185

182-
#### Software Distribution
186+
### Software Distribution
183187

184188
<details>
185189
<summary>Explain "Software Distribution"</summary><br><b>
@@ -414,6 +418,8 @@ Note: cross-dependency is when you have two or more changes to separate projects
414418
<summary>What is Distributed Tracing?</summary><br><b>
415419
</b></details>
416420

421+
### GitOps
422+
417423
<details>
418424
<summary>What is GitOps?</summary><br><b>
419425

@@ -422,6 +428,20 @@ GitLab: "GitOps is an operational framework that takes DevOps best practices use
422428
Read more [here](https://about.gitlab.com/topics/gitops)
423429
</b></details>
424430

431+
<details>
432+
<summary>What are some of the advantages of applying GitOps?</summary><br><b>
433+
434+
* It introduces limited/granular access to infrastructure
435+
* It makes it easier to trace who makes changes to infrastructure
436+
</b></details>
437+
438+
<details>
439+
<summary>What are some practical implementations or practices of GitOp?</summary><br><b>
440+
441+
* Store Infra files in a version control repository (like Git)
442+
* Apply review/approval process for changes
443+
</b></details>
444+
425445
#### SRE
426446

427447
<details>

0 commit comments

Comments
 (0)