DevOps: what it is, its responsibilities, tools, and much more!

Fotografia de Marina Pinho
Written by

Marina Pinho

Communication Manager
Este artigo também está disponível em português. Read now

It’s no secret that DevOps is one of the most valued areas within Information Technology. It is a culture that brings together, on one side, development (those responsible for building applications) and on the other, operations (those who ensure that applications are actually running as they should). The main goal is to automate processes between development teams and operational departments, thereby facilitating and accelerating the development, testing, and delivery of new solutions. But what are the most important skills and tools in the life of a DevOps professional? What makes this role stand out?

To help us better understand what DevOps is, as well as its responsibilities, tasks, and challenges, we spoke with our consultant Cláudia Tavares, who gave us a closer look into her world.

How did you end up in the world of IT?

I think it was something very natural. In my 10th grade, I chose the Science track and knew clearly that I wasn’t going into anything related to medicine, but I didn’t know exactly what I wanted to pursue. At that time, my father decided to enroll me in a one-month internship at the factory where he worked, in the IT department. Even though it was just one month, I really enjoyed the experience and began to take an interest in the field, and from that point on it was decided. I think he [my father] knew it was a field with good job prospects, apparently well paid, and somehow thought I would fit into it.

How did your interest in security arise?

I completed my degree at a polytechnic institute. I believe polytechnics prepare us better in practical terms, so I felt very well prepared during my degree. There, I chose the networking branch, meaning I didn’t choose the web path that most people typically go for. For me, it didn’t make sense because, honestly, even though I’m a woman and it may sound contradictory, I don’t really enjoy adjusting websites and making things look pretty, for me that’s somewhat stressful. I prefer backend tasks, so I went into networking, and there we had a security course that I think was taught in a very comprehensive way and sparked many curiosities that later led me to pursue a master’s degree in security.

You’ve been working as a DevOps for about three years. What are the responsibilities of a DevOps and what is its importance in the software development cycle?

In terms of responsibilities, there are quite a few. Basically, DevOps acts as the link between the development team and the operations team. Development builds the application that operations will later need. We, as DevOps, are responsible for making everything automated, making the process more secure and straightforward so that everything flows more naturally.

We take what development produces and automate it in some way. We are almost overseeing everything development does, which means we need to understand everything they do, because we have to automate and make the process more efficient and more secure.

Sometimes this creates some friction because we are seen as a separate team and there can be a lack of communication. Development or operations may not understand how important it is for us to know exactly what they are doing. Sometimes they tell us something very broadly, but that’s not enough. We need to understand specific aspects of the service in order to implement and automate the process.

What tools does a DevOps typically use?

In terms of monitoring, we use Prometheus and Grafana a lot. They are very well-known tools and very important. Prometheus helps us collect service metrics, and Grafana allows us to visualize those metrics more effectively so the operations team can understand what is happening on the client side.

There is also Elasticsearch, Kibana, and Logstash. The three work together as one, known as ELK, and they allow us to collect (Logstash), store (Elasticsearch), and visualize metrics (Kibana).

The cloud component is also very important. There are several cloud providers, but we should at least have broad knowledge of what we can do in each one. In my case, for example, I have more knowledge in AWS, which is also one of the most widely used, so it’s a good platform to start with.

Finally, regarding containers, it is very important to have knowledge of Docker and Kubernetes. Kubernetes runs on top of Docker, so by knowing Docker, it becomes much easier to understand what Kubernetes does and how we can work with it.

If you had to recruit a DevOps for your team, what differentiating factor would you look for?

That’s not an easy question, but I would say autonomy is always important in any field. In DevOps, since it is such a broad area, we need autonomy to search for solutions, which means we need to genuinely enjoy the field.

Communication is also crucial. We cannot wait for things to be handed to us; we have to step forward and talk to teams. We need to communicate a lot. So I would say autonomy, passion for what we do, and comfort and openness in communication are important.

In terms of hard skills, I would say security knowledge is always important. It’s a very relevant plus. Of course, you can be a DevOps without security knowledge, but I believe it makes a difference. It adds a differentiating factor. In addition, knowledge of networking is important because we also work a lot with that component.

Lastly, I would look for someone with knowledge of the tools DevOps professionals use, such as containers, cloud platforms, and service monitoring.

claudia tavares devops dellent

What does your day-to-day look like in your current project?

My day is never the same. I have daily tasks, but very often last-minute calls arise with requests that need to be solved for the Dev and Operations teams, which I manage according to priority. In addition, we have code reviews. I usually start the day by reviewing the code assigned to me and clearing that up so I don’t have to worry about it later.

Then I move on to my tasks and see what comes up during the day. They are usually related to automation processes. For example, when a new service appears, the DevOps team needs to prepare a playbook that automates the installation of that service. When a new metric is required for certain services, we need to prepare monitoring for that metric as well. We are also responsible for analyzing the machines used by the Dev and Testing teams.

What tools and technologies do you use daily?

I use Jira and Fisheye. Jira allows us to create and manage issues assigned to us or that we create for the Dev team to develop. Fisheye allows us to analyze code reviews related to those issues. We also use GitHub, where our code is stored. In terms of monitoring, we use Prometheus and Grafana to analyze metrics and ensure machines are in a stable environment and everything is working properly. We also use MobaXterm to SSH into machines and validate that everything is okay. For cloud, we use AWS to test the installation of our product in the cloud.

How do you think the DevOps area will evolve in the coming years?

I think DevOps is constantly evolving. A few years ago, we didn’t have this container and microservices component, and now it is much more common. I believe that will continue to grow. I would say DevOps will increasingly integrate with DevSecOps, because we are becoming more aware of what is happening and security is increasingly a priority. Therefore, I believe DevOps and DevSecOps will eventually become one single area.

What is the most challenging part of being a DevOps?

For me, as someone who likes to know what will happen during the day and be organized, the most challenging part is unpredictability. It means always being prepared for anything, someone might call with a simple question, or it might turn out to be something that takes a long time to resolve and wasn’t so simple after all.

If you could have a superpower in your professional life, which one would you choose and why?

To be maximally multifaceted, because so many things come up. I always feel like my days are very dynamic. There is always someone calling while I also have my own tasks, so I wish I could handle both simultaneously in an effective way.

How do you stay updated with changes in the sector?

I usually take courses on Udemy; I think it’s a good way to stay up to date with certain tools.

In DevOps, it’s very important to stay updated on security news, listen to podcasts related to the field, and so on. There is a lot of content available. I usually search online for what’s most recent and don’t follow any channel religiously. For example, if a tool sparks my interest, I will directly look for information about it.

What would you change in your journey so far, if you could?

I wouldn’t change anything. I believe I took the right path. It’s what led me to where I am today, and I’m very satisfied with my journey and everything I’ve achieved. So I wouldn’t change a single thing.

What is the best advice you’ve ever received and would like to pass on?

Don’t be afraid to take risks. We all make mistakes. It’s normal not to like making mistakes, but it’s important to do so in order to know what not to do next time. Autonomy is very important, and if we are always thinking about what could go wrong, it will hold us back. We need to accept that we will make mistakes, that it’s normal, and that they will help us grow.

If you also work in this area or would like to have your first experience as a DevOps Engineer, explore our projects here. Learn more about topics such as career, productivity, technology, management, or leadership on our podcast: