diff --git a/README.md b/README.md index c30935c..9d22f19 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ :warning:  Some answers might be only partial and shouldn't be used as they are in interviews -:exclamation:  You don't need to know how to answer all the questions here. DevOps is not about specific set of tools or technologies. +:exclamation:  You don't need to know how to answer all these questions here. DevOps is not about specific set of tools or techs -:exclamation:  Some questions are very specific and will be asked only if you are interviewing to a specialized role (e.g. Ansible Expert) +:exclamation:  Some questions are very specific and will be asked only if you are being interviewed to specialized roles :pencil:  You can add more questions & answers by submitting pull requests :) @@ -38,6 +38,7 @@ Go
Go

Beginner :baby:
Mongo
Mongo

Beginner :baby:
OpenShift
OpenShift

Beginner :baby:
+ Bash
Shell Scripting

Beginner :baby:
@@ -199,6 +200,12 @@ This situation might lead to bugs which hard to identify and reproduce. How to deal with configuration drift?
+
+Do you have experience with testing cross-projects changes? (aka cross-dependency)
+ +Note: cross-dependency is when you have two or more changes to separate projects and you would like to test them in mutual build instead of testing each change separately. +
+
In what scenarios would you prefer to use SQL?
@@ -206,13 +213,6 @@ This situation might lead to bugs which hard to identify and reproduce. * ACID compliance is important
-
-In what scenarios would you prefer to use NoSQL over SQL?
- - * Heterogeneous data which changes often - * Data consistency and integrity is not top priority -
- ## Jenkins @@ -266,6 +266,13 @@ This situation might lead to bugs which hard to identify and reproduce. If you are managing a dozen of jobs, you can probably use the Jenkins UI. How do you manage the creation and deletion of hundreds of jobs every week/month?
+
+How would you implement an option of a starting a build from a certain stage and not from the beginning?
+
+ +
+What are some of Jenkins limitations?
+
## AWS @@ -355,7 +362,7 @@ Stop the instance, the type of the instance to match the desired RAM and start t #### :baby: Beginner
-Explain the OSI model. What layers there are? What each layer reponsible for?
+Explain the OSI model. What layers there are? What each layer is responsible for?
Application: user end (HTTP is here) Presentation: establishes context between application-layer entities (Encryption is here) @@ -441,6 +448,10 @@ CSMA/CD algorithm: What is ICMP?
+
+What is NAT? How it works?
+
+ ## Linux @@ -524,16 +535,6 @@ Each number has different meaning, based on how the application was developed. I consider this as a good blog post to read more about it: https://shapeshed.com/unix-exit-codes
-
-Explain what would be the result of each command: - - * echo $0 - * echo $? - * echo $$ - * echo $@ - * echo $#
-
-
How to grep two strings?
@@ -573,7 +574,7 @@ hard link can be created only within the same file system. How to run a process in the background and why to do that in the first place?
You can achieve that by specifying & at end of the command. -As to Why? since some commands/processes can take a lot of time to finish +As to why, since some commands/processes can take a lot of time to finish execution or run forever @@ -1267,6 +1268,13 @@ func main() { #### :baby: Beginner +
+In what scenarios would you prefer to use NoSQL/Mongo over SQL?
+ + * Heterogeneous data which changes often + * Data consistency and integrity is not top priority +
+
What is a document? What is a collection?
@@ -1308,6 +1316,66 @@ func main() { Explain what is Downward API
+## Shell Scripting + + +#### :baby: Beginner + +
+Tell me about your experience with shell scripting
+
+ +
+What this line in scripts mean?: #!/bin/bash
+
+ +
+What do you tend to include in every script you write?
+
+ +
+True or False?: when a certain command/line fails, the script, by default, will exit and will no keep running
+ +Depends on the language and settings used but in Bash for example, by default the script will keep running. +
+ +
+Today we have tools and technologies like Ansible. Why would someone still use shell scripting?
+
+ +
+Explain what would be the result of each command: + + * echo $0 + * echo $? + * echo $$ + * echo $@ + * echo $#
+
+ +
+How do you debug shell scripts?
+
+ +
+How do you get input from the user in shell scripts?
+
+ +
+Explain conditionals and how do you use them
+
+ +
+What is a loop? What types of loops are you familiar with?
+
+ +
+Explain continue and break. When do you use them if at all?
+
+ +
+How do you check variable length?
+
## Scenarios diff --git a/images/bash.png b/images/bash.png new file mode 100644 index 0000000..874756b Binary files /dev/null and b/images/bash.png differ diff --git a/scenarios/jenkins_pipelines.md b/scenarios/jenkins_pipelines.md new file mode 100644 index 0000000..f176063 --- /dev/null +++ b/scenarios/jenkins_pipelines.md @@ -0,0 +1,10 @@ +## Jenkins Pipelines + +Write/Create the following Jenkins pipelines: + +* A pipeline which will run unit tests upon git push to a certain repository +* A pipeline which will do to the following: + + * Provision an instance (can also be a container) + * Configure the instance as Apache web server + * Deploy a web application on the provisioned instance diff --git a/scenarios/jenkins_scripts.md b/scenarios/jenkins_scripts.md new file mode 100644 index 0000000..afaf96d --- /dev/null +++ b/scenarios/jenkins_scripts.md @@ -0,0 +1,5 @@ +## Jenkins Scripts + +Write the following scripts: + +* Remove all the jobs which include the string "REMOVE_ME" in their name