We often use the analogy of "thinking outside the box" as a way to encourage creative thinking. It's a cliché at this point, but it can be effective—especially when you take it literally as well as figuratively.
Literally speaking, a box is a box. Its material composition does not change its form or function. A cardboard box is still a box. It’s more flexible than a wood box, but it’s still a box.
Applying that to application delivery nets us the insight that a software box is still a box. More flexible, yes. More fragile, as well. But at the end of the day, it's still a box. And the future of application delivery belongs to those who think outside both the literal and figurative box.
For nearly fifteen years, the application delivery controller—a box—has been the center of organizations’ attempts to scale and secure applications. Even as we've moved into the age of 'software-first' strategies, the solutions offered in the application delivery space have still been based on a software box in the network.
And for a significant percentage of organizations and applications, this approach is—and will continue to be—the right one. Because most organizations are multi-generational. They are supporting four and five generations of application architectures, some of which will continue to rely on those boxes. But for other applications—particularly modern and cloud-native—it's time to think outside the box.
Modern applications are no longer restricted to a single server and delivery over a single network. Applications are not monolithic software today, they are loosely-coupled, highly distributed systems—of which 70% are reusable (and often open-source) components (Source: White Hat). Consider the consumption of components delivered as a service for specialized functionality, such as maps and images. The rise of cloud computing—in particular its utility-based cost model—has created a new market economy in which component-level specialization can occur. Modern application design then leverages the power of specialization and enables developers to focus on features that add value or offer competitive advantage with little to no investment.
The consumption of highly distributed components and economies of cloud scale have ensured that "the network" is now "the networks." Organizations today rely on public cloud, with 60% employing two to six different providers. Nearly half (44%) of those organizations have deployed more than one-quarter (25%) of their application portfolio in those environments (Source: F5 | State of Application Services 2019).
So, it's time to think outside the box for application delivery, too.
The principles that guided the design of the ADC were based on traditional network and application architectures of the time. Both were constrained by network and compute limitations, necessitating an aggregated approach that limited external network access. The latency associated with network activity was too high to provide the speed and reliability required to engender the trust in the network—and by extension the Internet—as a viable medium for business. The network has become fast enough to support API-based communication and high-availability. The Internet has evolved to support speeds at which operational control can be realized across multiple environments.
The stability and speed of the network today enables application delivery to enter a new era in which the network allows us to act as a distributed, scalable system. Instead of a system deployed on a box, application delivery can evolve to embrace a modern, stack-based design. It can now be distributed to better take advantage of the advances in technology and software design over the past fifteen years.
By leveraging the ability of containers and container orchestration to provide mechanisms akin to that of process management and treating the network as if it were more like named pipes between processes, we can design a seamlessly scalable and endlessly extensible architecture for application delivery. We can take advantage of best-in-class software components that support demand not only for observability and orchestration, but ease of integration with operational analytics and automated deployment toolchains. We can compose data paths dynamically instead of being bound to cables and configurations.
We can reimagine application delivery as a distributed delivery stack—a stack that is not bound to either a software or a hardware box.
To deliver on such a monumental shift in application delivery we've adopted modern methodologies like Agile and embraced DevOps approaches and principles that automate and orchestrate integration, build, and testing. This endeavor is guided by a set of design principles that demand attention to not only functionality and features, but operational necessities and multi-cloud realities. We are driven to deliver an "out of the box experience" that exceeds customer expectations by keeping our focus on five key characteristics:
The ADC has, behind the scenes, served to scale tens of thousands of customers to success over the past fifteen years. But it was not the box that did it. It was the application services and software the hardware assisted that did that. And now that it’s time once again to reimagine application delivery, these relevant roots are why we're confident we can do it again outside the box.
And if you're wondering what we mean, here are a couple of great examples of thinking outside the box about application delivery: