DevOps: Delivering software faster and safer

The term DevOps is a concatenation of the two words Development and (IT) Operations. The goal of DevOps is to enable a more agile and efficient cooperation between development and IT operations through shared incentives, processes and software tools. DevOps is supported by an automated delivery chain which aims to ship working software faster, reduce overall efforts in repetitive tasks, and increase the over-all quality, says Karim Limam, head of Integration Services at skyguide.

SKYGUIDE : How would you define DevOps?
KARIM LIMAM DevOps is a set of practices and tools that enable us to be as fast as possible in shipping software to the business as well as to enhance collaboration between development and IT operations. DevOps is hardly possible without the adoption of Agile principles in the way we think and make software. Then, to obtain the most efficiency from the Agile approach, the delivery chain from development to IT operations has to enable aspects like fast feedback, information sharing, automatic pipeline, and collaboration. The goal of DevOps is to change and improve the relationship between development and IT operation by advocating better communication and collaboration.


So, what is actually changing?
KL We are starting an important change journey. We try deeply modifying the way we collaborate. So far, only a reduced set of employees, mainly technical operators, have access to information from production. They are responsible for the run and they communicate with development only if they cannot solve an occurring problem or incident themselves. While enabling DevOps we are currently promoting a different approach, which consists of allowing the development teams to directly access production information, and engaging IT Operation to contribute to the design of our IT solutions. In DevOps, IT Operation and Development are co-responsible for ensuring a stable run.


In this journey we are also modifying the way we ship software to production. Today, some applications are still installed and tested completely manually. By adopting DevOps we are also introducing a standard way of automating deployment and testing. We are convinced that this will reduce the overall effort we spend on repetitive tasks and open up the opportunity to concentrate on value-adding activities.


Who is the DevOps team?
KL The DevOps team is any team, which delivers a working software that meets the expectations and requirements of the company, while autonomously applying the concepts of Continuous Integration, Continuous Delivery, Continuous Testing, Continuous Monitoring and Continuous Improvement (the fi ve C’s), as well as integrating IT Operation. At skyguide, the group Integration Services is putting in place the technical and organisational prerequisites for DevOps but is certainly not the DevOps team; they should rather be considered as “the DevOps enablers”.


Could you describe the DevOps roadmap?
KL In the simulation environment we are today able to ship working software automatically in all environments. I consider this a success story. The second phase started at the end of last year by applying the same approach to the actual ANS, the applications used by our ATCO’s. We have started to work on the applications and services in the scope of the Virtual Centre programme and are moving now to the next business critical applications. The main investment phase will be considered as achieved once “dev” and “ops” break the silos, share the same platform, get continuous value with a minimum transversal support, and implement the five C’s mentioned above. We, as IT, will then enter a continuous improvement phase, which aims to get more out of the automation and collaboration. The adoption of DevOps will become true when it is lived by all the IT stakeholders.


You are talking about the “five C’s”. Could you elaborate on that?
KL The five C’s are the technical aspects of DevOps. The concept is to inscribe a set of defined actions into Continuity. At skyguide, we’re currently focusing on four Cs: Continuous Integration means that the work is sliced in small pieces and packaged as soon as it has been successfully tested. Continuous Delivery means that software is deployed (or delivered) in a test environment automatically upon successful testing and verification. Automatic delivery comes with less manual intervention and more reliable deployment or rollback of software. Continuous Testing means that, as soon as software is deployed somewhere, complete test campaigns are run automatically. The development team is automatically informed as soon as results are available to shorten the feedback loop. Continuous Monitoring means that the monitoring capability is defined already during the development phase and used along the chain and not only once the applications run in operation. Due to current compliance and regulation framework we decided not to put in place a fifth “C” called Continuous Deployment. Instead, we keep the final step, corresponding with the deployment into the production environment, strictly manual.


What are the main challenges?
KL We need to break down mental barriers and deal with “it doesn’t work” or “we’ve been doing it differently for years”. Like in any transformation process, some people can feel insecure with all the changes DevOps infuses. We’ll need to tackle this as an IT organisation and give a clear vision to those who think they need to work differently. We are building the airplane while flying. Although our DevOps chain is not yet complete, we have to convince people that DevOps belongs to a leading transformation agent towards a performant IT environment.