Don't Believe the Myth: The Need for Complexity in DevOps

By

We have long heard promises in developer circles about a DevOps pipeline in which all the tools are connected in a perfect serial fashion.  But, DevOps looks more like a continuous loop than a straight line.  In fact, DevOps cannot work properly as a serial pipeline at scale because the whole end-to-end process must be based on a parallel architecture, which introduces ongoing complexities.

Such inherent complexity is a necessary, but overlooked, aspect of DevOps for development and operations teams.  Let’s define DevOps as a set of practices to reduce the time between committing a change to a system and the change being placed into normal production, while still ensuring the highest quality software.  Due to the pressures of expedience, scarce technical skills and limited resources, we are often tempted to provide simplified versions of our dev and test environments.  This may sound strange, but the truth is that we need all that complexity.

The biggest myth about DevOps is not only that everything canbe simplified, but that everything should be simplified.  This is especially true when it comes to the application environments used for development and testing.  Let’s face it, the real-world data center is a complex place, so our replicas of real-world environments must reflect similar levels of complexity to achieve successful results.

The goal of DevOps should be to shorten the systems development lifecycle, while still frequently delivering new features, fixes and updates in close alignment with business objectives.  In the software world, we cherish terms like speed, agility, rapid releases, and even the notion of “failing fast.”  We also strive to deliver greater simplicity, especially when it comes to user experiences.  These are admirable goals, but they mask the diligence and close attention to detail that’s needed to create, test, certify, and launch robust software and equipment that will survive and thrive in complex environments.

Re-creating the complexity of a real-world environment helps development teams produce more robust software because the complexity gets baked directly into product, security, and compliance testing.  Oversimplifying our environments is the equivalent of winging it, which is another way of saying improvising, or doing something without the proper level of preparation.

Think of the products you trust with your privacy, or even your life.  Would you prefer to share your private health information or ride in a self-driving car that was created by dev and test teams that were just winging it?  Or, would you appreciate knowing that your software-based products were created and tested by well-prepared teams that did not oversimplify their environments?

Managing Complexity Through Environment-as-a-Service

Creating real-world replicas of networking and software environments can be hard, especially when it’s done manually.  An environment-as-a-service approach is good news for anyone who’s ever had to wait for days, weeks, or even months for access to the application and infrastructure resources they need to create replicas of their own complex environments.

The solution involves turning development and test environments into cloud services.  A service-based architecture can be delivered by pulling together all the necessary components, including infrastructure, tools and applications, and then rendering them into a fully automated test environment.

Such a service-based model makes it simpler for users to set up and tear down their own environments dynamically on an as-needed basis.  This approach improves resource utilization, while cutting costs by eliminating the need for extensive IT support to provide the necessary infrastructure and toolsets to line-of-business users and sales engineers.

Our industry is still developing new technologies to plug some important gaps in the full spectrum of DevOps tools.  Ongoing market consolidation is likely to accelerate the path toward greater standardization over the next several years.

As the speed of business becomes increasingly complicated and fast-paced, our development tools and testing systems must keep pace by reflecting similar levels of complexity and agility.  Along the way, we should seek to refine our internal DevOps practices byabstracting away the underlying infrastructure complexity.  In this way, developers can focus on doing excellent coding and developing better applications.

Lior Koriat has served as Quali’s CEO since 2008. Prior to joining Quali, Lior was founder and CEO of Intellitech Engineering Mechanical & Aviation Ltd.  He has over 20 years of experience in system and software engineering in the fields of avionics, robotics, communications, control, real-time and embedded applications, algorithms and audio/video streaming.  He holds a Bachelor’s degree with honors in computer science and economics from Tel Aviv University.




Edited by Erik Linask
SHARE THIS ARTICLE
Related Articles

How New Payment Options are Changing Ecommerce

By: Special Guest    9/11/2019

There was a time when the concept of online payments made people skeptical, but that's far from the case today. Payments are central to eCommerce and …

Read More

3 Types of Manufacturing - Additive, Subtractive, and Forming

By: Special Guest    9/9/2019

Most of us identify manufacturing processes by the equipment used. But manufacturing is also identified in a broader sense, by the way, the manufactur…

Read More

The importance of cybersecurity in 2019

By: Special Guest    9/9/2019

The internet may have transformed almost every part of the world today. But it goes without saying, it has also created a wide range of other threats …

Read More

Startup Product Taking a Long Time to Get Off the Ground?

By: Special Guest    9/3/2019

Despite your best efforts, your startup product might be taking longer to get off the ground that you had hoped it would. You seem to be bleeding cash…

Read More

How the 5G Telco Market is Transforming with Lessons Learned from the Enterprise

By: Special Guest    8/21/2019

In the case of 5G, signaling/control messages between nodes give way to open API calls between virtual network functions (VNF).

Read More