I’ve always been fascinated by the way in which different computing concepts get converted into common knowledge and how, depending on who’s speaking about a certain concept, that person will tend to assimilate it according to their own field of knowledge and action. This article is the result of a conversation I had with a colleague who interpreted DevOps as related to operational efficiency and facilitating business objectives – which is a perfectly accurate view when looked at from their perspective.
DevOps and the elephant paradox
The concept of DevOps has never been easy to define. One of this country’s leading technology providers attempts to explain it by referring to the paradox of the elephant and the blind men. This fable tells the story of some blind men who were asked to describe what was in front of them. One spoke of touching “something large and rough”, another, that it was “wet, soft and extremely flexible”, and another, that it was “like a bundle of wires”. Nobody could grasp that the thing they had before them was in fact an elephant.
In my view, the world of software development, until only very recently, resembled the “elephant paradox”: each of the constituent teams (Development, Systems, Quality, Security, etc.) were seeing only a part of the elephant. DevOps is a bit like removing a blindfold from peoples’ eyes and pooling all points of view to be able to define the elephant as precisely and exactly as possible.
Over the last two decades, software and the Internet have transformed the world, forging a new industrial revolution and changing the way people live and interact. Software has evolved from a support tool to an integral part of the business and value chain, permitting companies’ interactions with customers to be linked for the most part to online applications and services.
Software has transformed every part of the value chain, such as logistics, communications and operations. As happened with industrial automation, today’s companies must transform how they build and deliver software – this being the main motivation for the DevOps cultural shift.
DevOps and Cloud
Here, it is important to distinguish between Cloud and DevOps, as the two concepts are often used interchangeably. DevOps comes from the joining of Development and Operations. Its aim is to bridge the gap that exists between the two basic teams in the software development phase, so that, now without the blindfold, they can work together from the outset in the construction process. That is, DevOps focuses on the process, and usually implies a profound cultural change in the way things are done. The term Cloud is always linked to the availability of the technology and tools needed for speeding up the process and delivering this software to customers. A typical example where DevOps and Cloud are combined is in the SDN / SD-WAN context.
So, when we talk about the DevOps team, we are talking about a team of programmers, administrators, QA and security experts, and potentially other specialists (in our case networking experts) as well, who collaborate agilely on a common platform using a common language (the Cloud).
Regardless of the definition chosen, the Cloud’s importance for DevOps is unquestionable. Cloud computing drives IT transformation, and with automation (as happened in the industrial area) and advanced tools, it is invaluable in helping companies simplify and embed DevOps processes in order to increase their efficiency in a truly transformative way.
Five main benefits of combining Cloud and DevOps
- Products reach the market more quickly, thanks to the faster availability of simplified development processes and environments.
- Automation- and infrastructure-as-code reduce complexity and system maintenance.
- Automated, repeatable processes increase security by reducing errors and allowing security controls to be built right from the outset.
- “Downtime” is eliminated thanks to continuous Cloud-based operations. Moreover, in the process of applying automation, developers can create stateless applications (which increase availability and failover capability) in the process, increasing reliability and customer satisfaction.
- Increased scalability. One of the main reasons why organizations think about Cloud computing is that it provides a simple way to increase capacity. When combined with DevOps, the use of “infrastructure-as-code” and microservice-oriented and stateless designs, permits transparent, fast scaling (and even auto-scaling based on operation parameters is possible). This allows organizations to always have the right amount and appropriate capacity to cope with demand, thereby reducing overall infrastructure costs and increasing the overall scope of solutions.
At Teldat, we use DevOps to guarantee the quality and increase the speed of new features within our SD-WAN solutions.