Are you interested in applying for a new job? Possibly a job in the DevOps field? Or even hiring for a DevOps related position? If so, read on….
The meaning of DevOps and the tooling associated with it differs depending on who you talk too or what company you work for. Personally, I think the following categories cover many aspects of what a DevOps interviewee should be familiar with. (Obviously its not possible to be a expert in each one….)
Cloud (AWS, Azure, Heroku)
Orchestration (Ansible, Puppet, Chef)
Agile (Scrum, Kanban)
Programming (Python, PowerShell, Java)
Containers (Docker, Kubernetes, Swarm)
CI\CD Tools (Jenkins, Git, TFS, Ant, Maven)
Collaboration (GitHub, Slack, Forums, Blogs)
For the benefit of others and myself, I am going to start a github repo with some sample DevOps questions in the above categories.
So you have a handful of commands you execute weekly on multiple Linux servers. You run these commands by opening a SSH tool like Putty, logging into the server, and then executing the commands.
tail -10 /tmp/dropfolder/log1
With Fabric, you can bundle these commands and many others in a Fabric command file call fabfile.py. Below is an example fabfile.py file containing just 1 task that will run (fabric.operations.run) the commands above.
from fabric.api import run
run ("ls /tmp/dropfolder")
run("tail -10 /tmp/dropfolder/log1")
You can then execute this file via the command line on 1 or multiple hosts with ease.
fab -f fabfile.py -H host1,host2,host3 dailycommands
There are many many other things you can do with Fabric, so give it a try!
I’ve used Katalon primary in a Windows environment for running smoke tests. This tool is relatively new, built on top of Selenium, and actively supported. I highly suggest checking it out if you have some free time. (Article describe Katalon pro’s)
So, the Katalon tests I run are launched from Jenkins and executed on a Windows 2012 slave machines via the command line. These slave machines must have Katalon installed in order to execute the tests.
Tangent – Generating the Katalon command line string is beyond easy.
Installing Katalon on each Windows slave machine and remembering to do so in the future is a pain. Well, as of Katalon version 4.8, you can now execute the tests from a Linux server via the Linux shell.
So, the solution I am thinking here is the following:
Create a new docker image with Katalon installed and an ENTRYPOINTof ./katalon.
Setup a Linux server as a Jenkins slave
Install Docker on this new Linux server
Pull the Katalon docker image to this new server
Create a smoke test Jenkins job that will pull the smoke test files from Git down to the slave, and then run the docker container with the correct smoke test syntax included in the command. (Similar to this)
The benefits of this solution are numerous. (e.g. easily update Katalon versions, identical Katalon configurations between Linux slaves, easily recover from outages, etc…)
So what are the 2 words that come to me when someone says DevOps?
Collaboration – This means that all teams practice strong collaborationbetween one another. This doesn’t mean more email or messaging, this means sitting in the same area, participating in the same morning scrums, solving issues together, reviewing work together, etc…
Automation – This means looking at your build\deployment pipelines and other SDLC processes, and applying automationto them to produce predictable, repeatable, and reliable results. (e.g. Automated CI deployments, automated notifications)
With collaboration and automation, we can continually delivery value throughout the SDLC.