DevOps Engineer
DevOps engineer: functional positions such as testing or project management are not the only opportunities existing after developing software. New jobs are also available for you, as you will discover it in this job description!
AViSTO recruits DevOps engineers. Find out our open positions on jobs board, where it is also possible to submit an unsolicited application.
Are you looking for a company specializing in DevOps to help you streamline your software developments? Read more about our dedicated services..
Summary:
- What is DevOps Engineer?
- What does a DevOps engineer do?
- What DevOps engineer should know?
- How to become a DevOps engineer?
- How much do DevOps engineers make?
- Employment opportunities
What is DevOps Engineer?
DevOps is a dual concept, with several levels.
Firstly, it is a contraction between “development” and “operations”.
Then, it is a role that will seek to bridge the gap between the developer and the system administrator. Before, we had two engineers (or teams) who worked independently of each other.
To simplify, in a traditional model, developers coded new features, often took care of part of the tests themselves and at the end of the cycle passed everything on to the team in charge of deployment on production environments, whose main concerns were to maintain the availability, integrity, security and performance of the application.
Today, with Agile development methods, we do things differently. We will deliver the code in batches, put into production, review what was delivered by injecting changes and thus progress in small steps. Development cycles are much shorter, they can even be reduced to one day in some projects.
This is where the DevOps engineers come in: they will set up a set of processes, tools and automate everything as much as possible so that each iteration goes as smoothly as possible. They are going to be the intermediary between the “dev” and the “ops”.
Thus, we can even say that beyond the roles that we will describe a little below, DevOps is in fact a school of thought that is revolutionizing the way of designing software. It aims to optimize the fluidity between development and operation.
Please note: in some small organizations, we will sometimes try to combine these two profiles into one, with the aim of better designing the applications and being more productive. It does exist, but DevOps engineers are more there to bridge the gap between the two areas, they are not some kind of Swiss Army knife capable of taking care of everything.
DevOps or DevOps engineer?
In the DevOps community, talking about a “DevOps engineer” has not always been straightforward. To use an analogy, we are not talking about an “Agile Engineer”, but rather a software engineer capable of implementing Agile methods. The same goes for DevOps.
Now, the term DevOps being a little better defined than a few years ago, the fact of adding the title of engineer is better accepted, even if the consensus is not yet absolute, especially since there is no specific diploma.
Many professionals call themselves “DevOps” when asked about their job.
What does a DevOps engineer do?
The developers write software, but before it is validated and deployed, it takes what is called a build and a certain level of testing. The DevOps engineers will thus take care of the management and support of the environment used to develop and test automatically as often as possible.
From responsibilities and daily tasks point of view, they will therefore set up, administer and support all the IT systems that allow for greater fluidity.
In practical terms, it refers to:
- Regular application deployment, improving the reliability of the process through repetition;
- Testing at the earliest in the development cycle;
- A practice of testing in an environment similar to that of production;
- Continuous integration including “continuous testing”;
- Quick improvements due to frequent deployment cycle;
- A close monitoring of operational and production quality through quantifiable success metrics.
Another example: during builds, errors are likely to appear. DevOps will try to understand if the problem is with the code, or with the build environment.
What DevOps engineer should know?
The DevOps engineers are typically seasoned professionals who have the ability to understand the entire software development process, from specification to release.
They know how to appropriate not only functional requirements, but also non-functional requirements; in other words, anything that is not always explicitly requested in the specifications (eg security, GDPR etc.).
Through their training and background, they have additional skills in systems and network administration, or in software development, but they have at least been able to soak up the issues and needs of both worlds in order to make the whole process more fluid.
Here are some details:
When it comes to software and programming languages, they have to know what automation is and how to do it with scripting, in Shell or Python languages for example.
As developing new tools or customizing existing solutions is part of the role, knowledge of programming languages such as Java, Python, and C ++ is often required as well.
They also need to know web tools for rendering or monitoring.
Strong knowledge of the field of system administration in general is required, with Linux tools in particular. For example, if a developer is unable to compile a program, it may be a rights management issue.
Here is a diagram gathering a non exhaustive list of technologies (Source: Fresh8 Tech website):
In addition to those (many!) potential skills, it is essential to care about quality, automation and have a keen sense of customer service.
How to become a DevOps Engineer?
At first sight, a developer interested in system administration tools can do DevOps. Likewise, a system administrator who knows the basics of development and major programming languages can become DevOps. So you have to know how to code and be interested in a whole set of tools.
On the educational background side, in France, there is currently no specific course with a Masters’ degree level diploma. The prerequisite is usually a computer science masters’ degree.
Then, it is important to master many elements that are learned only in the field, justifying experience in development, system administration and software production.
Often this experience is acquired over time. However, entry-level positions, such as junior DevOps engineer, exist: personality, taste for quality, geek side and sense of service then make the difference between two candidates.
How much do DevOps engineers make?
The salary of a DevOps engineer depends on a whole series of factors (experience, training, skills, company, job location etc.). You can consult a salary barometer on the Internet.
For an experienced engineer, the salary is above 36K€/ year in France.
Jobs
AViSTO hires DevOps engineers in France! Find out employment opportunities on our jobs board.