In just the last few years several trends have impacted the way that applications are developed and deployed. Agile infrastructure options such as public clouds have empowered application teams to quickly spin up compute capacity to host their applications. Application owners are growing accustomed to provisioning their applications in a matter of minutes instead of the traditional IT model of submitting support tickets and waiting for several weeks.
In the data center, significant improvements have been made at the compute layer and with application development tools and processes, but the network services necessary for application provisioning still represent a last-mile problem. These services, including load balancers and firewalls are rigidly entrenched in support-ticket driven manual processes with infrastructure and operations teams often taking the blame for the resulting slowness. Handling these support tickets for application provisioning typically means that the IT team needs to figure out capacity, network topology, and dependencies with existing apps or tenants.
But it isn’t all despondency in the world of application networking services. Web-scale computing principles, which have long been the forte of large cloud providers such as Google, Amazon, and Microsoft are making their way to enterprises. A core guiding principle of these web giants is that they have rejected the “dedicated appliance” mindset and its inherent architectural limitations when it comes to application services. They realize the power of services such as a load balancing implemented in software (and deployed on general purpose servers) to provide much more fluid models of application handling. These application delivery architectures are improving how IT handles scalability requirements, deploys applications in cloud environments, and manage new applications such as container-based microservices. In addition to foundational software-defined approaches, let us take a look at the core tenets for this new world of application networking services.
Self-Service and Automation
DevOps teams love the idea of delivering infrastructure-as-code — it frees them from the wait times that are associated with submitting support tickets to network teams that are already stretched thin. It is no surprise that lines of business that are measured by their ability to roll out revenue-generating applications prefer cloud applications that enable them to easily deliver associated services. Software-defined load balancing with application program interface (API)-driven functionality is bringing these capabilities to data center applications. The added advantage is that app teams can spin up their own load balancers in test environments and carry forward the application to production with a consistent application services architecture.
Without the dependency on dedicated hardware for load balancing services and without the constraint of consolidating the services of multiple apps or tenants into appliances, enterprises can deliver unique application services on a per-app basis. This eliminates the need to purchase and configure load balancers based on the neediest application configured on the appliance and the typical cost overruns associated with the approach. Other advantages of the per-app model include natural isolation of applications, better uptime and availability, and scalability.
Load balancers should mimic the dynamic nature of modern applications where servers can be spun up or down and IP addresses are often ephemeral. A central orchestration point with oversight of the distributed load balancing fabric combined with automation driven by real time telemetry from the fabric, can ensure that load balancers are always configured correctly and new virtual services are easily added where needed. Administrators can get complete visibility to all VIPs configured and other application dependencies.
For a long time, the needs of traditional applications dictated the approach that enterprises chose for scaling application services. With monolithic or n-tier applications front ended by load balancers, the focus was on scaling up services by upgrading to appliances that could deliver bigger and better throughputs or transactions per second. On the other hand, web-scale architectures enable an approach to elasticity that involves horizontal scale out of services, which is better for cloud-native and microservices-based applications with vast amounts of east-west traffic. Application services can be spun up just-in-time based on real-time traffic patterns and scaled back down when traffic recedes.
According to the Rightscale 2017 State of the Cloud Report, 95 percent of enterprises are using the cloud with 67 percent of enterprises investing in hybrid cloud technologies. Increasingly, IT executives want to make technology decisions that enable them to be location and infrastructure-agnostic. Web-scale approaches for application services can drive uniformity of deployment architecture across multiple cloud environments while still delivering centralized management of services.
Application Performance and Monitoring
One of the biggest benefits that can be gained by web-scale architectures for load balancers is to take full advantage of the important position of load balancers in the network. With a distributed fabric of load balancers that are centrally controlled, it is possible to collect real-time application traffic data using telemetry from each load balancer that can be analyzed and from which application insights can be derived. Such insights including transaction round trip times, security data (TLS version, ciphers used etc.), location and devices of end users, and application data accessed can reduce troubleshooting times for common application failures.
The maturing of web-scale capabilities and the corresponding evolution of application architectures represents the best opportunity to provide dynamic and granular application services that match the needs of modern applications. Enterprises would do well to challenge the status quo and risk-aversion tendencies to try out new and better application delivery approaches that can ensure preparation for the coming wave of cloud-native applications. After all, web-scale application service architectures have satisfied the requirements in the toughest proving grounds and now are ready for broader enterprise adoption.