article-spots
article-carousel-spots
programs
Hard skills

Don’t like doing one task more than two times? Welcome to DevOps!

10 Sep 2021

Andrei Belov, the leading software maintenance engineer at EPAM, told us about what DevOps and DevOps culture are, and how to become a DevOps-developer. 

Describe your typical work day  

DevOps has two main tasks: to support the development team and to automate development. The first task often overlaps already scheduled activities and may take hours or even days. This strongly influences the automation process. To bring the infrastructure to a single denominator, you have to communicate with different teams. So, there’s a lot of work meetings and calls during the day. And you have to often switch between tasks and change the context. 

What is DevOps?  

DevOps is both a set of practices and a methodology for the interaction of specialists. DevOps is a complex domain. And it’s not just about automating, deploying environments, and ensuring a development cycle. It’s about the stability of the application, monitoring, ensuring testing, and operation of the application as well. 

Repeatability, deployment, and automation of everything that is possible 




What is DevOps culture?  

First of all, we are changing the focus from tracking infrastructure changes to ensuring the speed of delivery of the final product to the work environment. We do not serve the underlying systems (virtual machines, environment, networks) as something that cannot be touched. And we follow the immutable methodology when every component of the system must not change. If it fails or needs to be reconfigured, we take it out and replace it with a new one. And, of course, automation of everything that can be automated with an eye on how much effort it will require. 

What does automation provide?  

Automation provides a readable code—any engineer can easily understand the way it is done and why. Thus, we greatly speed up the development process and improve the reliability of this process. 

Who are the members of a DevOps team? 

The first part of the team is former system administrators who can write code. The second part is Quality Assurance engineers who can create a reliable test cycle for the application. They have programming skills, know OOP (object-oriented programming) that helps them to write autotests in a convenient and easily maintained way. And the third part is developers. They also have valuable programming skills. They go into this domain because they like to work with lower-level systems. 

What exactly do DevOps engineers do? 

  1. They automate system deployment by writing scripts in Groovy or Python using various frameworks. Most often, Terraform or AWS CloudFormation as now we're getting more and more into the clouds: Amazon AWS, Google GCP, Microsoft Azure, IBM Cloud, and more. 
  2. They describe the monitoring system, agree it with the developer (key indicators that show us that the application works as required). 
  3. They provide the development cycle by writing automation scripts for Jenkins and CI/CD processes in Git Lab CI or Git Hub. 

What are the benefits of being a DevOps?  

  1. High Demand. There are currently about 30 million developers in the worldwide IT market. And the number will grow as automation will require 100 million jobs by the end of the decade. With many developers, there can be chaos in development processes and infrastructure. And in this sense, DevOps has become a necessary profession: both the development process and the infrastructure must be maintained. 
  2. Competitive salary. Within the past three years we see a salary boom in DevOps. And it will remain competitive.  
  3. Making key decisions. If you like to take responsibility for the decisions made, DevOps will give you a great opportunity to realize your potential. 


DevOps is the point of contact of different teams: development, Quality Assurance, delivery, business analysis 


What are the difficulties in the profession? 

DevOps engineer is a versatile specialist. He knows algorithms, system administration, infrastructure, and networks. Therefore, you need to be erudite in various aspects of development. Not necessarily in detail, but the range of knowledge you need to dive into is wide. 

How do I know if DevOps is right for me?  

The desire to go down to the engine room, not to be afraid to soak your hands in fuel oil and fix a broken gear in the engine—I would say this is one of the must-have qualities for DevOps. It`s right for you if you like operating systems, set-up of hardware, and network options: for example, configure an application to run fast or optimize memory consumption. 

What knowledge should the future DevOps have? 

Knowledge of computer science and computer systems is essential. Problems often arise that demand making a decision that will greatly affect further development and operation. You need to understand what the operating system is for, how networks are organized, what the options for networking and protocols are. You need to know what the development process is as well as the Git version control system which is one of the main tools. And build systems—Jenkins, GitLab CI, Travis, Circle CI. 

And what soft skills?  

You must be able to argue your point of view, to prove that your solution is the best to solve this problem. Time management skills will come in handy: first, self-organization in conditions of high demand for help from other teams. Ability to develop independently: spend time reading books, taking courses, learning video lessons. 

You must be pretty flexible and stress-resistant. You must be able to switch quickly between contexts, but at the same time dive quite deep into the problem to solve it in an optimal way. 

What would you recommend beginners to read? 

  • Mike Gancarz, «The UNIX Philosophy».  
  • Andrew Tanenbaum, David Wetherall, «Computer networks».  


And the Computer Science 101 courses by MIT and Harvard University:  

Also I highly recommend to monitor the new educational courses provided by EPAM for Junior DevOps Engineers to jumpstart your career with us.