The world has changed its cadence. Before the turn of the millennium, business processes and systems used to run at a linear, sequential pace within more circumscribed and defined parameters. But we have progressed. As the compound effects of the cloud, mobile ubiquity and web-scale intelligent networks have coalesced, we now operate at a more connected, concurrent, multi-dimensional pace—and that change impacts the way we both use and build software.
Software application developers (dev) in both eras have traditionally worked alongside their operations (ops) counterparts–system administrators, database administrators and other core systems management staff. The dev team needs the ops team to keep their applications well served with network resources, to apply updates, and to carry out all forms of essential maintenance and reporting.
Equally, the ops team has always needed the dev team to provide it with its reason for being, but in a communicative and collaborative way, so ops can be more than just the “gas pump” that supplies the fuel for enterprise applications.
They may have tangoed periodically, but their approaches were not aligned. The dev team would often just “throw applications over the wall” once they were ready to exist in live production environments and expect the ops team to deal with the day-to-day challenges that presented themselves. The ops team would then provision as many resources as it could, but often fail to comprehensively communicate system status to the dev team either before, during, or after deployment.
Enter DevOps
Today, both functions can come together to deliver and more rapidly iterate apps inside continuous integration/continuous deployment (CI/CD) pipelines. This offers real functionality and robustness for mission-critical enterprises. But what defines DevOps today and how does an enterprise go about building an effective DevOps team? An organisation’s first task is to understand that DevOps is not simply a software development methodology. DevOps is a wider notion of combined cultural philosophies, practices, and tools that increase an organisation’s ability to deliver applications and services at a high velocity.
A cultural shift
Developing the culture and implementing the tools to create a DevOps or DevSecOps (with the security team as a third essential function) is rarely a plug-and-play overnight task. Separate dev and ops functions typically have ingrained ways of working that take time to define, deduplicate, delineate and eventually fuse.
This means making sure that all functions have access to the same levels of measurement, provisioning and reporting technologies from the outset. While it would normally only be the project leaders among the dev team that would talk to end-users to gather requirements, the ops team should be privy to those base-level parameters from the start.
Giving all teams the same visibility into application and data health with a custom-built DevOps assessment dashboard is a key step. Using a dedicated DevOps platform, everyone can be driven to adhere to a multi-factor development process and engineer to the same security compliance standards.
This approach can also help businesses mitigate the security challenges associated with digital transformation. The Dell Technologies 2020 Digital Transformation Index (DT Index) found that the COVID-19 pandemic catalysed digital transformation across the globe. But continuous digital transformation is not easy with most businesses facing entrenched barriers to transformation, particularly data privacy and cybersecurity issues.
The 2020 DT Index highlighted the “information overload” difficulties organisations face, leaving them “unable to extract insights from data,” while attempting to roll out broader remote-working capabilities. DevOps serves as a control mechanism as businesses continue to transform services and consumption models. But there is still work to do. According to the Dell DT Index, just 53% of organisations in the Asia Pacific & Japan (APJ) region are practicing DevSecOps to champion a “security-as-code” culture. Only 37% in both Singapore and APJ are using DevOps as a route to practicing CI/CD.
Speed, security, and substance
Where outsourcing sought to split work apart into various components to create a wider billing structure, the natural by-product of this approach was disconnected workflows and a lack of collaborative drive.
DevOps counters this and allows us to drive toward building agile, hyper-performing models where constant adjustments can be made to technology for changing use cases and markets. Crucially here, DevOps also allows us to validate areas that were never given substance in the past. We can now look at how we code, what quality management controls we have in place, what layers of security fabric our applications and data are exposed to, and what overall productivity measures are being placed over the now-combined forces of the DevOps team.
DevOps also changes the way people work. Using a formalised DevOps platform gives teams greater accountability for the products they help to develop—and, therefore, satisfaction in their work. This accountability enables more expansive, comprehensive security controls, infrastructure security, security of plug-in modules, and security of as-yet-unknown information channels when they arise. By passing code through stringent validation controls, we can standardise confidence in the IT stack and pave the way to robust scalability.
DevOps as a platform for innovation
As a business progresses its DevOps practice, it can look to widen DevOps training throughout its technology department, as well as the commercial functions that depend upon it. Only then can it introduce new capabilities and use DevOps as a platform for deeper and wider innovation.
Of course, this needs to be done with daily operations and commerce channels in live production. As such, each stage will need to be properly planned for, with risks mitigated. But the payoffs are worth it. DevOps is an increasingly established work practice that has brought greater collaborative efficiency, more robust and effective software delivery, and, ultimately, improved business profitability.