November 30, 2020
About the Importance of having a DevOps in your team
Developers working on client projects are taking care of numerous tasks. When you think the list gets shorter, new things are added at the bottom. What you can do is provide an infrastructure that lets them tackle their issues. But this doesn’t include only the administrative side but also the technical requirements for the developers to work properly. What’s missing is someone who is familiar with the IT area of the developers and has the capacity to assist in operative processes aside from the usual management. This is where the DevOps enter the field.
The DevOps work to hold the development team’s back. They appear as the merge between operations and development, supporting the team by managing the software and applications, deployment of tools in order to simplify procedures and smoothen the development process. With his work the DevOps face delays and other performance interferences by reducing downtimes and system failures. The use of DevOps in your team not only assures quality and an optimized workflow, you also stick to the latest development trends and keep yourself and your team up to date.
What skill set do the DevOps need?
Let’s start with the most obvious one: The development skills. The differentiation element of the DevOps in comparison to an administrative manager are their skills regarding programming and scripting. This includes various programming languages, open source technologies and tools as well as knowledge in server systems and security concepts. The DevOps prove their expertise for the position through their understanding of source control systems, infrastructure automation tools, cloud services and testing skills. Aside from the technological competences required in this area, the DevOps need to combine this with a set of soft skills that they can come up with.
As they stand for the binding component between different teams an excellent communication is indispensable. Bearing in mind the amount of possible issues the DevOps need to solve, which is a challenge for itself, and to keep a cool head and show empathy and integrity is not easy. Last but not least the job requires more than any other the willingness to educate yourself. The digital environment is in a continuous change and so are the skills the DevOps have to maintain in order to stay an expert in their area. Being well-informed about new technologies, systems and procedures will prepare the DevOps for the never ending wave of issues and errors they need to solve to support their team.
How do we implement the DevOps role at Factorial?
We at Factorial divide the tasks of the development operations on various shoulders. In this case we not only have specific members of the team dealing with specific tasks, we also use administrative development programs in order to automate workflows. We established a way to centralise logging and monitoring and also administer our zoo of hosted applications like Jira, Confluence and Mattermost to constantly improve our corporate infrastructure. With this we work on new ways of streamlining our processes and think about new features like rapid rollouts of dev instances.
In addition to that we enhance and develop our local dev stack based on MultiBaseBox. Our devs are using docker for spinning up the needed dependencies for their projects. We are using MultiBaseBox and phabalicious for local development. The underlying haproxy container with automatic configuration is also used as an easy way to spin up remote dev instances, so clients can test new features. Our team is constantly enhancing and extending these tools.
By using phabalicious our devs are equipped with all necessary and project related information within one single configuration file. With this program our devs can connect to the actual app installation, be it locally installed, behind a ssh-jump-host or part of a kubernetes cluster and can execute common, every-day tasks as getting a database dump, deploying a new version of the application or just get a shell on that particular instance. Recently our engineers added support for kubernetes. It’s actively maintained by our team, and adapted to the ever changing needs of our developers and clients, while trying to be as open as possible.
Our devs can rely on kubernetes as a valuable tool to administer and create definition files for our clusters and the clients’ clusters. They can bring Drupal-, Laravel- or Node-based websites and applications into a kubernetes based cluster and monitor the applications over time.
GitLab & docker
As passionate developers we work with GitLab as our main code repository and make full use of its strong integration capabilities provided by Pipelines. In addition to that we use docker to provide the best working environment for our developers all across the globe.
The DevOps appear as the perfect match to your development team. In fact, as we at Factorial see it, the development team isn’t complete without someone uniting the understanding of development processes and programs with the administrative knowledge that ties all together. The true value this role can bring to your business, is not only from an economical standpoint but also in terms of stress reduction and process optimization. If you haven’t thought working with this role yet, you might be surprised about the value it can contribute to your company.
Stephan Maximilian Huber