The DevOps Engineer Profession
The IT sphere is expanding daily, and new directions and professions appear. Today NIX experts would like to introduce you to the DevOps profession.
– Who is DevOps and what does he do?
DevOps, short for Development & Operations, has everything to do with providing a CI/CD process—that is, continuous software integration and delivery. CI/CD combines software development, testing, and deployment. It’s IT to support the work of the IT team. This is the primary domain of the DevOps engineer. In practice, however, DevOps implements any task related to infrastructure maintenance, from networking to security to cloud cost optimization. A DevOps specialist can deal with a separate area (e.g., cloud services or environment security) or become a universal engineer and perform various tasks.
The entire logic of work is built on the interaction of components. That is, you know the functionality of a tool and use it by adjusting and integrating it with other instruments. The specifics and complexity of the tasks depend on the level of knowledge and skills of the specialist. For example, an experienced DevOps often needs to formalize an assignment that is unclear or described only at the top level in terms other DevOps can understand. Then the engineer becomes a bit of both a business analyst and a solution architect, transforming user requirements into technical requirements. Another example of a task is breaking a task down into stages. Here DevOps combines the roles of a technologist and a project manager. As you can see, there are many options for professional development in this field.
– What do you do at NIX?
I’m a team lead and DevOps architect specializing in AWS (Amazon Web Services). I do whatever it takes to build a project. Sometimes I accompany development projects in terms of architecture and tasking. Sometimes within automation, we need development.
– What knowledge do I need to become a DevOps engineer?
The person must have a basic understanding of Linux and Windows operating systems, cloud environments like AWS, Azure, and Google Cloud Platform, and the skills to deploy projects with automation. For the latter, it is crucial to know the tools—Ansible for server configuration, Jenkins for deployment, Docker and Kubernetes for containerization. Knowledge of Python and Bash programming languages will come in handy. Note: it’s essential to not only know the buttons but to also understand the approaches. Tools in DevOps are changing faster than in development. However, if you understand how they work and know what to do and why in different cases, you will quickly master the new tools.
– What personal qualities are needed to work as a DevOps?
First and foremost, it is attention and diligence. DevOps work starts with reading a manual. They configure already-existing pipelines, application integrations, etc. One misconfigured parameter can paralyze the entire system. This is a very high level of responsibility. When developers have a bug in their code, sometimes it’s only possible for certain factors to malfunction. And if DevOps has an error in one place it could cause the whole system to not work.
Also important is the ability to convey arguments and negotiate. However, this character trait is helpful for all IT professionals. DevOps industry is built on the American corporate paradigm, where constant communication is the basis. For DevOps, it’s doubly important. They are at the center of the development team and in contact with everyone involved in the process.
– What kind of education does DevOps need?
The best is a technical education. Its accuracy and systematicity is what is needed. However, a humanities background has never been a barrier to a career in DevOps. The most important thing is developing a technical mindset and learning to choose the best way to solve a problem out of several. If a specialist has already worked in IT, experience as a system administrator, system maintenance skills, telephony, networking, computers, servers, and other devices are helpful. And developers and testers can quickly move into DevOps.
– What advice do you have for those interested in DevOps?
First, you must figure out if this specialization suits you. Let’s say this: if you like to configure something and build a construction set from ready-made parts, go for DevOps. Also, this job will suit those who want to deal with servers, networks, and operating systems. Unlike developers, DevOps specialists rarely create something from scratch. Usually, they do not implement client ideas, but the infrastructure for them.
Regarding training, there is the advise you to practice deploying sites constantly. You can start with a simple project, but every time you repeat the deployment, manually and automatically on the local machine and in the cloud, with monitoring and backups. At each stage, you need to “play” with the configuration to understand what the settings affect and where there are errors in case of failure. When you can achieve stable project operation and easily find the causes of any problems, you already have a good chance of becoming a successful DevOps.