0% found this document useful (0 votes)
35 views7 pages

DevOps - Technical Test

The document provides a technical test for a DevOps role with 12 exercises assessing skills in Linux, scripting, Python, CI/CD, containerization, Kubernetes, cloud architecture, Golang, and Terraform. The test asks the candidate to complete tasks like writing scripts to check host status and remove empty files, documenting Python functions, setting up CI pipelines, containerizing apps, deploying to Kubernetes, diagramming cloud architectures, writing Golang scripts, and using Terraform to launch AWS resources. The candidate has 72 hours to return the answers in a PDF along with any required files.

Uploaded by

Rodrigo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views7 pages

DevOps - Technical Test

The document provides a technical test for a DevOps role with 12 exercises assessing skills in Linux, scripting, Python, CI/CD, containerization, Kubernetes, cloud architecture, Golang, and Terraform. The test asks the candidate to complete tasks like writing scripts to check host status and remove empty files, documenting Python functions, setting up CI pipelines, containerizing apps, deploying to Kubernetes, diagramming cloud architectures, writing Golang scripts, and using Terraform to launch AWS resources. The candidate has 72 hours to return the answers in a PDF along with any required files.

Uploaded by

Rodrigo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

🚧

DevOps - Technical test


Introduction
This technical test is an assessment of some of the necessary technical skills for this
Smartex job. With this technical test, all the other necessary work files shall be provided
as an attachment.
Please provide the output of this tech test a maximum of 72 hours after the delivery of
this document.
The output of this tech test should be:

A PDF where the answers to the questions on this document are detailed

The necessary work files that are an output of the questions

At the end of the test, please send the output to [email protected]

Notes:

1. For questions that require commands, we are expecting Linux commands (native or
not, ex. you could use a command that is not widely distributed by default but that
can be installed using apt)

DevOps - Technical test 1


2. For questions that require scripts, the scripts can be in any language (bash, shell,
python, ruby, Perl, etc)

Exercise #1 - Generic / Network


How would you discover how many Raspberry Pi devices are connected to a network.
Use any tools to find out this information. How would you list their mac addresses and
their IP addresses?

Exercise #2 - Linux / Scripting


Write a script to determine whether a host is up or down

Write a script to remove all the empty files in a given directory (also nested
directories)

Exercise #3 - Generic
Describe the tools that you would use and the steps that you would take to address
these generic issues:

What are you using for troubleshooting and debugging network issues?

What are you using for troubleshooting and debugging disk & file system issues?

What are you using for troubleshooting and debugging process issues?

What are you using for debugging CPU-related issues?

DevOps - Technical test 2


You get a call from someone claiming "my system is SLOW". What do you do?

Exercise #4 - Linux / Scripting


Given a text file, perform the following exercises (answers should be the commands that
you would use):

Extract all the numbers

Extract the first word of each line

Extract all the IP addresses

Extract dates in the format of yyyy-mm-dd or yyyy-dd-mm

Extract email addresses

Replace tabs with four spaces

Replace 'red' with 'green'

Exercise #5 - Generic / Linux / Network


How would you identify the MAC Address of the Access Point in the Smartex office with
the highest signal strength for your computer?

DevOps - Technical test 3


Exercise #6 - Generic / Linux
Being connect by ssh to an embedded device running Linux with I2C support how would
you find all the connected I2C devices and their addresses?

Exercise #7 - Python

ℹ Document functions with numpy docstrings

1. Write a function that gets a string and compresses it

'aaaabbccc' -> 'a4b2c3'

'abbbc' -> 'a1b3c1'

2. Write a function that decompresses a given string

'a4b2c3' -> 'aaaabbccc'

'a1b3c1' -> 'abbbc'

Exercise #8 - CI/CD + Containerization


1. Choose an open-source project from GitHub and fork it

2. Create a CI pipeline/workflow for the project you forked

3. The CI pipeline/workflow will include anything that is relevant to the project you
forked. For example:

If it's a Python project, you will run PEP8

If the project has a unit tests directory, you will run these unit tests as part of the CI

4. In a separate file, describe what is running as part of the CI and why you chose to
include it. You can also describe any thoughts, dilemmas, challenge you had

DevOps - Technical test 4


5. Bonus - Containerize the app of the project you forked using any containerization
technology you would like.

Exercise #9 - Kubernetes

ℹ Detail the commands used in each step

1. Cluster

a. Setup a kubernets cluster in at least 2 VMs

2. Pods

a. Create a pod running ngnix

b. Create a service for the pod you've just created

c. Verify the app is reachable

3. ReplicaSets

a. Create a ReplicaSet with 2 replicas.

b. Verify a ReplicaSet was created and there are 2 replicas

c. Delete one of the Pods the ReplicaSet has created

d. If you'll list all the Pods now, what will you see?

e. Remove the ReplicaSet you've created

f. Verify you've deleted the ReplicaSet

Exercise #10 - Cloud Architecture


Draw a diagram of a backend service (like NodeJS, Flask, etc), exposed on the internet,
with an unpredictable network load, to update values on a database

The architecture should be:

Reliable

DevOps - Technical test 5


Scalable

Secure

Fault-Tolerant

For this exercise, you can include as many details as possible, including network ports,
different solution providers, encrypted connections, domains, certificates, and network
segregation. Database scalability can be ignored.

Suggestion: There are many online apps to draw diagrams. You can use
https://app.diagrams.net/

Exercise #11 - GOLang


Create a small script in go that:

1. Print all mac addresses from interfaces with IP addresses

2. Print machine hostname

3. Bonus: Create a small menu for this;

Exercise #12 - Terraform

Create a terraform recipe to launch an AWS EC2 instance with the following proprieties:

1. Instance type: t2.nano

2. AMI: ubuntu 20.04

3. Storage: 5GB disk

4. Generate an ssh key and set it as the access key

5. Open port 22 to 193.137.28.212/32 IP address

6. Use subnet: subnet-011c0778a1f037247

DevOps - Technical test 6


7. Bonus: Create the whole infrastructure from VPC to EC2. Note: We are going to
need internet access on this machine

DevOps - Technical test 7

You might also like