Technologies | April 15, 2020

What is a DevOps engineer and how does he support IT projects?

Recently, many people outside the industry have been asking me what a DevOps engineer is and what I do at work. This is not surprising – there are an increasing number of job offers from companies that are looking for DevOps for their projects. How to explain this phenomenon? Let’s go deeper into the secrets of a DevOps engineer’s work and try to answer the question of why more and more companies have decided to create such a role in their projects.

DevOps

Software development in the past…

A long, long time ago, when all applications in the world were built by development teams in monolithic architecture, the Almighty Admin deployed these applications. Why “almighty”? The admin had enormous power, both in terms of equipment and its configuration. No wonder, then, that his authority was vast. At a time when cloud solutions did not exist, he had great responsibility for correctly configuring monolithic architecture in a production environment where traffic was often huge and the requirements in terms of reliability were high.

Such a division of responsibilities, however, created huge barriers between the software development team and the admin. The person who controlled access to server resources, locked up in their fortress, did not understand the problems faced by developers and often blamed them for all the problems which arose. It worked similarly from the perspective of the other side too, and the lack of communication could seriously slow down any project.

DevOps

How do we do it today?

Today, we have many more possibilities in the field of software development and we are not afraid to experiment because, thanks to cloud solutions, we do not implement changes directly in the production environment. We work in an Agile manner, focus on communication and transparency, and build well-coordinated teams, paying attention to Time to Market. In the era of start-ups, there was also a need to start the development environment quickly and implement even the basic version of the application (MVP – Minimum Viable Product) in the production environment. This allows you to quickly check the correctness of business assumptions for the new application.

The high level of complexity of business requirements and the level of complexity of the applications being built, in turn, require greater specialization of members of the development team. The previous approach – one specialist being responsible for everything – no longer has any reason to exist today. No wonder that a programmer, who is focused on developing the application, no longer has enough time to implement it in a server environment. This is how the need to identify a specialist in the team who would have competences in both the area of application development and its implementation arose. And that is a DevOps engineer.

What is a DevOps engineer?

DevOps engineer is a role in which a specialist is or may be responsible for:

  • Preparation of environments at various levels, which enable software development, tests, implementation in the development environment and implementation in the production environment respectively.
  • Continuous Integration / Continuous Delivery (CI / CD) process – preparation of the process of building, testing, verifying the quality of the application code, and then implementing it in the server environment using dedicated tools (Jenkins, CircleCI, GitHub etc.)
  • Installation, configuration and updating tools that support software development (repositories of docker artifacts and containers, Sonar, Elastic Search, databases)
  • Infrastructure monitoring and checking alerts automatically generated by the system in case of anomalies
  • Improving communication with the team responsible for the infrastructure (if such a team exists)
  • Process automation, eliminating errors resulting from the “human factor”, i.e. IaC (Infrastructure as Code), using such tools as Terraform and Ansible
  • Implementation of a scalable, flexible and self-healing application (mainly in the cloud)

Read also: DevOps monitoring systems

DevOps – various configurations

Although “DevOps Engineer” job offers are often advertised, some people say that such a role does not exist, probably because the scope of responsibilities of such a person varies greatly, depending on the size of the project. In practice, we can therefore come across various configurations of this role:

1) A DevOps engineer is a member of the development team

The infrastructure team is responsible for the server part, and the DevOps engineer is the “representative” of the software development team who contacts the infrastructure team.

DevOps

Pros

  • A DevOps engineer can play an active part in software development
  • He can listen to the needs of the development team better

Cons

  • He has less impact on what is happening on the infrastructure team side
  • Communication with DevOps engineers from other teams is worse

Read also: Software Development Life Cycle: DevOps

2) DevOps specialists form a separate team, and each DevOps engineer is assigned to the tasks of one or two development teams.

Pros

  • Better communication between DevOps engineers – previously implemented solutions are not replicated; greater consistency
  • Higher work efficiency associated with improving software delivery processes
BigCTA LeszekJaros

Streamline Your Application Maintenance

Leszek Jaros, our Head of Telco and AMS Practice, is here to help you navigate the complexities of Application Maintenance Services. Book a consultation to boost your application's efficiency

Schedule a meeting

Cons

  • Worse communication with the development team
DevOps

Why is it worth having a DevOps engineer in the project?

As you can see, although a DevOps engineer is a specialist with a wide range of competences, he is nothing like an administrator locked up in a server room. Companies are willing to employ DevOps specialists or entire DevOps teams because of the specific benefits:

  • Faster implementation of applications – a DevOps engineer, thanks to his knowledge in the field of implementation, unburdens developers who focus on programming
  • Significant improvement in software quality – thanks to the multi-stage Continuous Integration process, which includes conducting various types of software tests
  • Improving the security of the delivered solution – a DevOps engineer has extensive knowledge in the field of security. In the context of DevOps, the term “DevOpsSec” often appears – related to the word “security“
  • High availability of applications – there are different ways to deploy applications on the server. When you deploy one instance of an application, if it crashes, the application becomes unavailable. Thanks to the implementation of the application by DevOps engineers in the so-called High Availability, there are several instances of it. In case one of them stops working, the other ensures the availability of the service.
  • Scalability of the delivered application – DevOps engineers can implement a solution enabling an automatic increase in the number of instances of the application in the event of sudden increased traffic and its ability to repair itself in case of a failure (self-healing). For example, a DevOps engineer can implement a mechanism that checks, e.g. every 10 seconds, whether the application is running and automatically restarts it if necessary.
DevOps

Conclusion

The speed of digital transformation means that the approach to software development is changing, and companies are looking for specialists who will improve and speed up this process. However, obtaining them is not easy, and last year DevOps specialists were third on the list of the most desirable competences according to the LinkedIn report. Not surprisingly, more and more companies are deciding to employ a DevOps engineer or a DevOps team, using the support of companies specializing in software development. The reasons are varied: the need for faster implementation of the application, the need to improve security and communication between project teams or to have high-quality applications. And what would your reason be?

Consult your project directly with a specialist

Book a meeting

Java Developer with over 10 years of experience. Currently fascinated by the idea of DevOps and cloud solutions.

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Subscribe to our newsletter to unlock this file

Dive deep into our special resources and insights. Subscribe now and stay ahead of the curve – Exclusive Content Awaits

Information on the processing of personal data

Almost There!

We’ve sent a verification email to your address. Please click on the confirmation link inside to enjoy our latest updates.

If there is no message in your inbox within 5 minutes then also check your *spam* folder.

Already Part of the Crew!

Looks like you’re already subscribed to our newsletter. Stay tuned for the latest updates!

Oops, Something Went Wrong!

We encountered an unexpected error while processing your request. Please try again later or contact our support team for assistance.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.