How the Cloud Improves (or Hinders) Application Performance
June 14, 2017

Josh Gray
Cedexis

Writing elegant, effective, flawless code is totally in the hands of the developer. When you accidentally drop in an infinitely recursive loop that takes your whole app down … well, you kick yourself, fix it, and pretty much just hope nobody else saw it.
 
You may even get to have a say in the stack it runs on to ensure there's nothing in there that could get in the way of smooth operation. Nobody loves finding out that the Linux instance is old and buggy, or that somebody forgot to update JQuery to the latest release — but, with a little interrogation and tenacity, things like that can be found and fixed.
 
The big hurdle remaining just outside your grasp, though, is the network your app ultimately flies across: the Internet itself. When everyone in Boston decides to watch the series finale of The Leftovers the moment HBO drops it, and the peering connections between all the local ISPs and HBO's CDN get slammed, your app can suffer if it coincidentally shares these linkages regardless of how much effort you put into making it hyper-efficient.
 
And given the efforts we put in these days to deconstructing monolithic applications, and using distributed microservices to make us more agile, the potential for app performance to take a nosedive because of unseen (and unanticipated) network congestion and outages is only getting greater. If even one of the dozens of APIs you call as the app opens is blocked by network problems, the entire user experience can fall apart.
 
There is help at hand, though, in the form of new ways to program network awareness directly into your code. There are many different words, acronyms, and marketing nonsense naming this, but let's call it Delivery as Code (DAC). Think of it as Infrastructure as Code, but instantiated and refined within the application rather than across the network.
 
The core principle of DAC is pretty simple, actually: don't try to hit any microservice at a particular location. Rather, hit a dynamic traffic manager endpoint that will automatically calculate which of several options to use for that microservice and the best route to get to it. Think of it like hitting a load balancer, instead of a specific server, inside a LAN, except that it's designed to work from the client over the unmanaged Internet, as well as within internally-managed data centers.
 
How could the traffic manager actually know which endpoint to direct your request to? In a perfect world, the answer is that it is part of a broader platform that doesn't just direct traffic — it also measures, analyzes, and acts on a broad swath of user experience data.

For instance, a system that tracks availability, latency, and throughput across and between networks, CDNs, and ISPs, will have a clear sense of where congestion exists, and where the clearest paths between your app and its desired APIs are.

Configured correctly, the system would also take into account all the possible endpoints you have within your own network: that way, it would have the option of directing requests between your own building and the farthest reaches of the Internet, based on an objective virtual map of Internet traffic.
 
By embedding DAC instructions within your code, then, you can remove the uncertainty of network delivery fluctuations from your development process. You can know that each microservice or API call will automatically be directed to the most efficient endpoint — and if your app is running slow it's because of something other than network congestion (ouch).

Josh Gray is Chief Architect at Cedexis.

The Latest

October 16, 2017

A survey of more than 750 development team leaders in the US and UK, revealed that 68 percent plan to build more apps during the next 12 months. At the same time as reporting increased volumes of development, 91 percent of developers surveyed agree that user expectations for innovation and quality have increased, but app deliveries continue to fail ...

October 12, 2017

Today, organizations must digitally evolve or they risk becoming irrelevant. One area that’s been growing in adoption is a shift to developing and deploying modern applications in the cloud, which requires software and IT architects to rethink how to architect and manage these apps ...

October 10, 2017

Designing and deploying complete software-defined data centers (SDDCs) can be complicated because each implementation requires a broad range of infrastructure to support heavy demands for compute, networking, storage, applications and security ...

October 05, 2017

According to LogiGear's State of Software Testing Survey, almost one-third of the respondents are experiencing classic test automation issues. One problem commonly cited among respondents was that management didn’t fully understand what it takes to have a successful automation program ...

October 04, 2017

Load balancing at the DNS (Domain Name System) level has been around for a few decades now, but it didn't become crucial until recently as technology is moving to the cloud. DNS is the perfect solution for managing cloud systems ...

October 02, 2017

QualiTest recently compiled a data report analyzing software testers globally. The report details the Quality Assurance and Software Testing job market, one of the fastest growing job markets and a bellwether of tech employment due to QA's involved in nearly every conceivable industry ...

September 28, 2017

API use is exploding among developers, as APIs are an essential part of software development for the web, IoT, mobile and AI applications. APIs allow a developer to create programs or apps that can successfully request services or data from other applications or operating system. This connectivity, though powerful, is complex, and that complexity grows with new apps, new hardware such as the new iPhone and Echo, and the creation of new APIs ...

September 26, 2017

Companies are placing a greater value on high performing IT professionals as IT demands continue to escalate, according to Puppet's DevOps Salary Report ...

September 25, 2017

Code working perfectly doesn't matter much if apps aren't reaching customers, or are negatively impacted by network latency or outages. All the customer cares about is how they are enjoying an app. To effectively guarantee application availability and usage satisfaction, DevOps teams need to leverage three important application assurance data sets into their delivery automation logic ...

September 21, 2017

There are many options when it comes to container orchestration platforms and services. Figuring out which one is best for a particular organization’s needs and applications can be a challenge. Which platform for containerization you choose can significantly influence your business success, so the selection process should be carefully considered ...

Share this