The term DevOps stems from the contraction of “development” and “operations“, namely, the team which deals with aspects of software production and maintenance. However, DevOps does not refer only to an operative group, but it is a cultural and methodological change that includes a set of practices, automatic tools and processes of Development and Lean Management. Thanks to DevOps, it is possible to improve the production chain of software to make this faster and more efficient. To achieve this, collaboration between the two Development and Operations teams is essential, which must always be aligned regarding activities carried out and business objectives to be pursued.
DevOps, a mix of culture, methodology and team building
DevOps is not a recent methodology, nor a new construction, but an operating flow that has always been practiced within companies to improve their business, but only in recent years has it received a name and recognition. DevOps is fundamental for improving the integration between systems engineers and developers with the aim of growth and optimization. According to our DevOps Evangelist, Pasquale Camastra, the DevOps can be defined as:
“A mix of culture (which is one of the most important elements), competence, sharing, collaboration, design meant for the End User leadership, team building. It is not strictly Agile, it is not (only) Continuous Delivery and Continuous Improvement, it was not born with the Cloud, but has emerged and has become easier to use with the latest generation of the cloud.”
The DevOps Officer, a respected individual with excellent communication skills, able to lead the two Dev and Ops teams towards the common goal of getting the application up and running, can be useful to encourage collaboration between system operators and developers. At the same time this person should encourage a culture of collaboration, a culture that is essential to ensuring that this methodology works properly.
DevOps and Cloud, an ever-improving cycle
The technological evolution of recent years, as well as the advent of Cloud and smartphones, has made the application development cycles “tighter”, eliminating the barriers between competences between those who develop software and those who deal with operation. In the past these competences were clearly separated
The Cloud, particularly in its meaning of PaaS and SaaS, has services designed to lighten the task of the operational staff, which currently focuses on the monitoring of the SLAs of Cloud services rather than to the real operation of the systems.
In this way, operational staff now acquire application knowledge which was not required before.
Likewise, Cloud services help the developer in composing applications no longer from scratch, but as a patchwork of external services provided by third parties, forcing them to acquire management knowledge that they would not have experienced in on-premise environments.
In this case the DevOps concept is realized in the use by the two Dev and Ops groups, in Cloud, using a common pipeline, making it difficult to exactly define the operational boundaries between one group and another.
Continuous delivery, an example of DevOps integration
In DevOps methodology “continuous delivery” is one of the collaboration drivers between the Dev and Ops groups. With this software development model, code changes are applied to a build, tested and prepared for release in production automatically. Before the changes are sent into production, the DevOps group must approve them. Various aspects can be tested: for example, interfaces, integrations, uploads or API reliability. Continuous delivery is very useful for developers because they can analyze updates and detect problems in more detail.
DevOps and Agile methodology, benefits and innovation
The Agile methodology aims to deliver quality software developed in a short time. This methodology develops software in limited time windows called “iterations” and in each of these, new software features are developed. Each iteration is developed in a few weeks and it reduces the number of software malfunctions. The collaboration, integration and communication between the development team and the operation team aim to reduce the time of the process: product release, software testing, further developments and operation in order to create more reliable and secure software. Furthermore, the risks of frequent and significant changes to the program are reduced.
According to our DevOps experts, implementing the DevOps in an environment that already uses the Agile methodology gives the best results and makes it easier to approach the methodology than to implement it in a traditional environment. Of course, this does not mean that in a traditional environment DevOps cannot be implemented, rather it would be appropriate implement it to ensure that the two teams do not continue to work separately but can integrate with each other and collaborate to obtain better results. DevOps methodology introduced in a traditional environment could have the further advantage of promoting the rejuvenation of the methodologies used, stimulating an expansive leap towards innovation.