DevOps is a relatively new approach to managing the operations side of software development. The idea behind DevOps is fairly simple: break through the walls between development and operations teams, and open up effective communication. A DevOps engineer is someone well versed in both fields, and capable of bridging that gap – as well as working through many of the problems often encountered when working on a software project.
Since the idea and the job are new, we thought we’d share our observations on how DevOps teams work and what it means to be a DevOps engineer in an international software house like Netguru.
Starting a career in DevOps doesn’t need to be complicated, according to our team. Some end up in the field by chance, guided by their passion for solving problems, understanding the inner workings of various systems, and creating things out of nothing. What’s important is to keep a somewhat holistic approach and work on professional development in various areas at once. It’s also helpful to get familiar with popular DevOps tools and platforms, such as AWS, Docker, Chef and Git.
Another possible route is to begin your career as a sysadmin. You might realise after some time that you’re having the most fun when scripting and working on automation – as Patryk, one of Netguru’s DevOps experts did.
“I started to read about the DevOps movement more and more and it sounded like so much more fun than regular operations roles. I read blogs, listened to podcasts, and tried to get familiar with just a few of the commonly used tools in that field,” he says.
Finally, you might start out as a developer and discover that you have a deep interest in operations, as well. Michał from Netguru’s team begun his career as a Clipper programmer, but decided to make a shift towards working with infrastructures in addition to applications. He needed automation, or else he would have been stuck repeating the same tasks over and over. After learning that, progressing to a DevOps role was only natural.
DevOps assumes that a company’s software developers and operations experts (or sysadmins) work closely together.
There are no strict requirements you need to meet to be sure DevOps is for you. Introverts can excel in this field, as development teams often have only one dedicated DevOps expert, who needs their powers of introspection and focus to do their job well. A bit of stubbornness may help, particularly when you find yourself facing a difficult problem, and you’ll need not to take yourself too seriously, as there will always be more to learn, and making mistakes will likely remain part and parcel of your life indefinitely.
Patryk believes that a passion for your work and the technologies you use can get you halfway there. The rest of the journey requires some effort: keeping up-to-date with the latest tools and solutions and daring to propose new, yet unexplored ways of doing things. In terms of technical requirements, a DevOps engineer should (in theory) be good at everything related to software development. Luckily, the reality is not quite as demanding. A DevOps engineer is the last man standing, according to Michał, the one who comes in when everyone else has given up, solves the problem and adds some nifty automation for that as a cherry on top.
“A DevOps’s attitude needs to be to work to achieve the impossible quickly, and make miracles happen at their leisure,” he says.
There are many answers to this question. Following your interests is probably the most important aspect – when it comes to our team members, it was almost inevitable that they would end up doing what they now do. Be it a passion for automation or a keen interest in implementing the applications you build as a developer guiding you, you are also likely to find yourself becoming a DevOps engineer before you fully know it.
Why should you stay on this course, though?
“I think DevOps is a very dynamic field. It focuses not on server uptime and stability, but on cooperation, as well as fast and reliable deployment/delivery. It requires an understanding of the customer and developers’ needs, which allows you to better plan out and improve infrastructure and processes,” says Patryk.
It’s also a job that will let you become a professional problem-solver, and give you a perfect excuse to learn a lot about how certain systems work.
It turns out that joining a good DevOps team is quite an event in an engineer’s life. It’s important to find a comfortable job, particularly because of certain characteristics of the role. A DevOps expert is often alone in a project, and needs their project team’s support to excel. They also need to learn how to deal with stress. One of our team members, Kamila, recalls dropping a production database, which is something of a meme for sysadmins. In this case, the difference between life and death was a ‘>’ where a ‘<’ should have been used. “That day, I didn’t need coffee to keep me buzzing with energy,” she says.
A DevOps engineer is expected to provide assistance at all stages of product delivery.
Working in DevOps is demanding and often involves a pressure of time. When a mistake is made, it needs to be fixed quickly. Taking too long to solve an issue can hold up an entire team and hit the project budget hard. It’s crucial to be aware of what’s happening on both the ops and development sides of the coin at any given time – neglecting this only to play catch-up when a problem occurs can be disastrous. Working in DevOps is a responsibility.
Which is precisely why the job is so fulfilling and exciting. A DevOps engineer’s work matters, in very obvious ways. It can give you more opportunities for growth than you’ll know what to do with, as you’ll find yourself deepening your knowledge on familiar technologies and exploring untried solutions. You’ll work with true experts in their fields as well, learning from them along the way. And you’ll find yourself quickly acquiring the communication skills needed to achieve the harmony between two traditionally separate aspects of software development.
We’ve established that if you’re interested in DevOps, pursuing the career will likely feel like a breath of fresh air. Look at where you are right now and make an action plan. Choose the path that will take you to your dream job. Be curious and enjoy yourself every time you encounter a new environment, setup, or tool. Learn about what the DevOps movement is and what problems it solves.
Look for good sources of information. “RedHat Command Line Heroes Season 1 covers the entire history of DevOps, its present, and the possible future. I recommend listening to that podcast,” says Patryk. Gain as much experience with operating systems as you can without losing your drive. Don’t be afraid to experiment. Find a team that will learn from their mistakes alongside yourself, share their knowledge, and help you whenever you get stuck. The right environment can be a huge advantage.
Finally, work on your mindset. Are you excited about trying new solutions, constantly learning, improving tedious processes, and introducing automation anywhere you can? If so, you’re on the right track. As Kamila puts it:
“There is no book, tutorial or documentation that you can go through to become a DevOps engineer. DevOps is always work in progress.”