What is Devops ?

What is Devops ?

Before the 2000s, software development was mainly a waterfall process, with a version delivered after a more or less lengthy development phase. This was followed by a second period, often just as long, during which it could take several months for the quality department to accept delivery. This is often referred to as the Big Bang delivery jargon, with the software appearing from nothing.

It was in this climate that the term DevOps emerged in 2009, thanks to the work of Patrick Debois. The aim of DevOps is to define a new paradigm to replace the compartmentalised structures of the early days of IT. These structures have gradually become inoperable as demand for IT products has grown.

DevOps has become one of the most sought-after practices following the revolution in software distribution cycles since the 2010s. Among other things, DevOps has enabled development teams to carry out their entire mission in a stable manner, despite the recurring impacts and complexity of the business.

In this article, we take a look at the foundations of the DevOps philosophy and introduce the vast field of DevOps culture.

What can DevOps do for your business?

The main objective of the DevOps organisation is to guarantee higher quality software delivery. This also means meeting the growing market demand for software that is increasingly sophisticated in terms of content and functionality.

To achieve this, the teams need to work together and build a continuous delivery plan by automating certain tasks and putting in place the processes needed to ensure that assignments run smoothly.

The main principles of the DevOps organisation.

First of all, it’s important to point out that there are several definitions of DevOps, because the practice is vast and not institutionalised. In general, DevOps practices can be seen as a toolbox of approaches that have been tried and tested in industry since the middle of the 20th century.

DevOps is based on a standard product lifecycle, often referred to as the continuous distribution pipeline. This cycle takes into account several aspects, the essential parts of which are: planning, development, integration, deployment, operation and learning. In some models, other pillars are added, such as continuous testing, security and compliance.

The aim of DevOps is to improve relations between the development teams and those who manage the operational phase. The shared vision is to deliver more for the customer.

When you read about DevOps structures, you quickly realise that it is first and foremost an essential part of the corporate culture. As a result, DevOps is a practice that relies heavily on social interaction, and in order to work, relationships need to be taken into account. Ultimately, the DevOps manager has to bring about a change in the company’s habits and philosophy in order to optimise and improve the production cycle.

It’s an essential and highly complex part of the process, requiring a great deal of time and a sympathetic ear from all those involved. DevOps is often at odds with old, established practices, and encourages mistakes to be avoided. A parallel can be drawn with Agile methods, in which greater attention is paid to collaboration between silos. Obviously, the effort involved must be justified by results.

What are the benefits of DevOps ?

DevOps programmes have already proved their worth in industry. The objectives of a DevOps structure are often multiple, the tangible aspects of which are mainly: a significant increase in the frequency of software deployment, the acceleration of the commercial delivery of an IT project and the reduction in the failure rate following the sale.

In addition, DevOps principles promote increased team productivity and performance, which in turn leads to faster time-to-market, a more flexible response to the market and competition, and the maintenance of product stability and compliance.

In the IT sector, processes and practices are emerging through DevOps operations. Among the most popular are continuous integration and delivery (CI/CD), version tracking, Agile development and real-time monitoring. This has already enabled a number of major companies to increase the quality of deliverables and reduce feature development time.

The DevOps cycle in an IT project.

The Devops transformation cycle can vary independently of the players involved, depending on the current state of the company before the start of the cycle (levels of automation, human resources, etc.).

Before returning to the DevOps cycle, we’ll qualify our remarks by returning to the historic Waterfall cycle. This cycle goes against the grain of modern Agile methods. But that doesn’t make it an approach to be discarded in every situation. Waterfall development has a number of advantages, including rapid implementation and clear, precise deliverables. In the context of a simple project, this can have its advantages, with well-defined and comprehensible milestones for a short production period. Resources in this case can be easily allocated, while processes and deliverables can be easily documented.

In other situations, particularly for large-scale projects, cascade development is less effective and has led to the emergence of Agile practices to address a number of drawbacks. For example, the lack of time for reflection and revision during the development phase. But it is also a situation that tends to increase both risk and uncertainty, while accentuating the difficulty of large projects with complex, interlocking architectures. This situation does not make development flexible, because it is difficult to measure success and visibility during production. Finally, all these uncertainties were sometimes the cause of unstable delivery and delays. It is against this backdrop that Agile practices and the DevOps production cycle, which are often linked, have emerged.

The three points of the DevOps cycle.

The DevOps cycle extends Agile practices to all IT production tasks. There are three essential phases that can be automated in this cycle for any IT project.

Integrating content into content (Continuous Integration or CI).

Continuous Integration, or CI for short, involves rapidly integrating code into the delivered version of the project. Since CI can be automated, it saves a considerable amount of time at the end of production and during delivery.

There are several stages to automating CI. The first concerns automated tests, which are made up of four main groups:

Unit tests are used to validate methods and fractions of code during development.

Integration tests to validate the correspondence between the components that make up the body of the project.

User interface tests to ensure that the interfaces comply with end-user expectations.

Important: In a DevOps approach, at best, each commit should come with its own set of tests, so that tests can be automated little by little.

Deliver content as it is received (Continuous Delivery or CD):

The aim here is to offer regular delivery of the product with the best software quality and also to automate the production launch. In other words, to have a smooth software production process.

Whenever a change linked to DevOps practice is launched within a company and processes are automated, we need to think about building or modifying the delivery cycle impacted by this change. Content delivery can take different forms and does not have to be totally automated. Some tasks can be carried out manually, and in most cases this is the case for a variety of reasons (technicality, cost, choice, etc.).

CI and CD are linked in their implementation, but are in fact two separate processes. CI is essential and quickly becomes necessary to implement a good CD. To do this, it is essential that the developers and the operational team work together.

Continuous deployment and delivery:

A major sub-stage within the CD, it is very often confused because it is the heart of the delivery strategy. It enables the release of versions to be automated, so that no release date is at risk for the teams and they can remain focused on the design of new functionalities.

What are the prerequisites for DevOps?

We have seen the benefits of a DevOps organisation and what a production cycle following these principles looks like. Before we can put in place the transformation strategies required for a DevOps policy, certain prerequisites need to be met in order to validate the transition.

The first is simple: to put in place a DevOps structure and a DevOps corporate culture, the organisational team must be able to offer facilitating tools. In the context of the IT industry, this includes project management tracking tools, collaborative source code repositories, automated testing systems, an operational CI/CD platform, configuration tools, monitoring tools and feedback tools. This non-exhaustive, but already well-enriched list testifies to the importance of the work environment in achieving DevOps objectives. It is possible to integrate these tools during the transition phase, but it is clear that they will quickly become indispensable on a day-to-day basis.

What’s more, even if implementing DevOps principles requires resources and hardware, nothing is possible without overhauling the company’s organisational culture. The main changes compared with traditional approaches are: increased collaboration with greater visibility and alignment of objectives, evolution of the scope of each person and distribution of responsibilities, use of a shorter creation cycle and continuous iterative learning. To this end, the choices to be made can be based on the proposals of various DevOps integration frameworks or on the experience of existing structures.

Finally, it is important to ensure that all the players within the company are feasible and properly trained. DevOps must ensure that each business group within the production cycle follows a common framework, despite the conflicting objectives of each. Here too, there are several frameworks that can help to implement the necessary actions.

To conclude, DevOps work is long-term, and the introduction of new processes, their validation and optimisation can take time. That’s why this transition needs to be carried out as quickly as possible, bearing in mind a long-term vision while keeping in mind short-term business imperatives.

Photo Maxime Macé

Maxime Macé

Simple passionné de thématiques diverses et variées. J’apprécie enrichir mes connaissances dans les disciplines techniques comme l’informatique, les sciences et l’ingénierie, mais aussi dans les domaines merveilleux de la philosophie, l’art et la littérature.

Prenons contact

Vous souhaitez me contacter suite à la lecture de cet article ? Merci de renseigner votre adresse électronique et je vous recontacterai dans les plus brefs délais.

CV Ingénieur développeur informatique

CV Étudiant PhD Artificial Intelligence

Portfolio Artist designer