diff --git a/README.md b/README.md index e000f88..bce9774 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ :information_source:  This repository contains interview questions on various DevOps related topics -:bar_chart:  There are currently **133** interview questions +:bar_chart:  There are currently **151** interview questions :warning:  Some answers might be only partial and shouldn't be used as they are in interviews @@ -156,6 +156,18 @@ which follows the mutable infrastructure paradigm. * Images - Either VM or container images where your package is included with everything it needs in order to run successfully. +
+What is caching? How it works? Why is it important?
+
+ +
+Explain stateless vs. stateful
+
+ +
+What is HTTP and how it works?
+
+ #### :star: Advanced @@ -338,11 +350,95 @@ Stop the instance, the type of the instance to match the desired RAM and start t ## Network -Network questions can be found [here](https://github.com/bregman-arie/computer-networking/blob/master/interview_questions/README.md) + +#### :baby: Beginner +
+Explain the OSI model. What layers there are? What each layer reponsible for?
+ +Application: user end (HTTP is here) +Presentation: establishes context between application-layer entities (Encryption is here) +Session: establishes, manages and terminates the connections +Transport: transfers variable-length data sequences from a source to a destination host (TCP & UDP are here) +Network: transfers datagrams from one network to another (IP is here) +Data link: provides a link between two directly connected nodes (MAC is here) +Physical: the electrical and physical spec the data connection (Bits are here) +
+ +
+What delivery schemes are you familiar with?
+ +Unitcast: One to one communication where there is one sender and one reciever. + +Broadcast: Sending a message to everone in the network. The address ff:ff:ff:ff:ff:ff is used for broadcasting. + Two common protocols which use broadcast are ARP and DHCP. + +Multicast: Sending a message to a group of subscribers. It can be one-to-many or many-to-many. +
+ +
+What is CSMA/CD? Is it used in modern ethernet networks?
+ +CSMA/CD stands for Carrier Sense Multiple Access / Collision Detection. +Its primarily focus it to manage access to shared medium/bus where only one host can transmit at a given point of time. + +CSMA/CD algorithm: + +1. Before sending a frame, it checks whether another host already transmitting a frame. +2. If no one transmitting, it starts transmitting the frame. +3. If two hosts transmitted at the same time, we have a collision. +4. Both hosts stop sending the frame and they send to everyone a 'jam signal' notifying everyone that a collision occured +5. They are waiting for a random time before sending again +6. Once each host waited for a raondom time, they try to send the frame again and so the +
+ +
+Describe the following network devices and the difference between them: router, switch and hub
+
+ +
+What is NAT?
+
+ +
+What is the difference between TCP and UDP?
+
+ +
+What is ARP? How it works?
+
+ +
+What is DHCP? How it works?
+
+ +
+What is SSL tunneling? How it works?
+
+ +
+What is a socket?
+
+ +
+What is IPv6? Why should we consider using it if we have IPv4?
+
+ +
+What is MTU?
+
+ +
+What is SDN?
+
+ +
+What is ICMP?
+
## Linux + #### :baby: Beginner
@@ -419,11 +515,11 @@ I consider this as a good blog post to read more about it: https://shapeshed.com
Explain what would be the result of each command: -echo $0 -echo $? -echo $$ -echo $@ -echo $#
+ * echo $0 + * echo $? + * echo $$ + * echo $@ + * echo $#
@@ -514,6 +610,10 @@ For each file (and directory) in Linux there is an inode, a data structure which related to the file like its size, owner, permissions, etc.
+
+How to list ports which being currently used?
+
+
DNS: What is A record?
@@ -523,7 +623,7 @@ related to the file like its size, owner, permissions, etc.
-DNS:
+DNS: is it using TCP or UDP?
@@ -1121,3 +1221,4 @@ and considerations. * [Elasticsearch & Kibana on AWS](scenarios/elk_kibana_aws.md) * [Ansible, Minikube and Docker](scenarios/ansible_minikube_docker.md) +* [Cloud Slack bot](scenarios/cloud_slack_bot.md) diff --git a/scenarios/cloud_slack_bot.md b/scenarios/cloud_slack_bot.md new file mode 100644 index 0000000..29dacc9 --- /dev/null +++ b/scenarios/cloud_slack_bot.md @@ -0,0 +1,19 @@ +## Cloud Slack Bot + +Create a slack bot to manage cloud instances. You can choose whatever cloud provider you want (e.g. Openstack, AWS, GCP, Azure) +You should provide: + + * Instructions on how to use it + * Source code of the slack bot + * A running slack bot account or a deployment script so we can test it + +The bot should be able to support: + + * Creating new instances + * Removing existing instances + * Starting an instance + * Stopping an instance + * Displaying the status of an instance + * List all available instances + +The bot should also be able to show help message.