A Typical Day in life of our DevOps Engineers

The following is a description, provided by one of our DevOps Engineers, of a typical day working for our client on a project to improve their CI/CD and supporting infrastructure.

The project is run under the Agile methodology and we have a daily scrum meeting that lasts around 15 minutes to discuss progress on sprints etc.

So my day to day activities in the current project mainly depend on what task  I’m working on, on that particular day. Depending upon whether it is  infrastructure related activities or CI/CD improvements or process improvements, it usually changes the tools that I’m using.  For CI CD tasks, process improvements, things like that. It’s usually Jenkins.

For scripting, mostly it’s Python, or shell scripting or PowerShell scripting, depending upon the OS  that I’m working on. That’s CI CD. That’s mainly the things that I use for CI/CD process improvements. 

Then for infrastructure related activities. It’s mostly VMware vSphere.

We also have Packer for creating images, but it’s not widely used at the moment, it’s still in a kind of a Investigation Phase to see whether it is useful for us or not, so it’s not fully integrated at the moment.

Again, Jenkins might also come into infrastructure tasks  because most of our automation is done through Jenkins. So if it is related to updating the VMs that are available, we might run a task through Jenkins, which will automatically update all the VMs. Most of these VMs that we use are for building and testing and are already connected with Jenkins, so it is easily communicated with.

With regards to Groovy, it is mainly used for Jenkins administration. There are some cases where we need to list all the offline notes or online notesi in particular Jenkins itself. So there is no kind of easy way to do it. So this kind of groovy script helps us automate those processes. In listing all the offline nodes, we can kind of figure out why they are offline, or how many days they have been offline and then we can decide using the list provided whether some nodes are actually required or not. And then maybe take it off, completely remove it from Jenkins.