Images, APIs and SDKs … oh my.
When you dial up a website or an app on your smartphone and it takes more than 10 seconds to load, this is a problem. For all the strides that the computer industry has made to make smartphones more robust and capable of handling high-end computing tasks, Internet speed and performance is still a major issue.
Why is that?
It depends on what type of website or app you are accessing. The movement of the “visual Web” that was popularized in the last several year has made websites and apps much more aesthetically pleasing, but it also increased the bandwidth needed to load those sites.
“Consumers are coming to you not from landlines and desktops but from mobile devices on cellular networks which inherently are getting worse and worse in terms of performance because no matter how much a Telco does in terms of having better cell towers and so on, the fact is that we are putting much more data on it,” said Ash Kulkarni, senior vice president of Web experience at Akamai, in an interview with ARC in 2015.
So while Internet speeds have gotten faster, the ability to handle the increasingly complex load has led to some poor experiences for people—especially on smartphones—everywhere.
“Your apps and your websites are far richer with image content and other things. So the weight of the packets moving around is outpacing technology improvements on the radio/cellular side,” Kulkarni said.
In an era of ever-increasing data packets combined with limited computing power of smartphones and cellular data speeds, the performance of the Web has never been a more pertinent topic. ARC sat down with Kulkarni in late 2015 to discuss the issues of speed and reliability on the Web and within apps to determine what can be done to make connections faster
Image Bloat: Good For Aesthetics, Bad For Speed
Big, beautiful images are taking over the Web (ARC is no exception in this). The full-width image on top of a news story is now the hallmark of high-quality publications. Image-centric sites—Facebook, Google Photos, Flickr, Instagram, Tumblr, Pinterest—are immensely popular, carrying the trend of the image-centric Web to the rest of the ecosystem.
All of these images put immense strain on the system, a fact pertinent to Akamai, which often has to deliver the data packets.
“If you see what is going on with how sites that are constantly becoming more image heavy just because of the richness that images really brings to us,” Kulkarni said.
“That is a big problem because if you really think about the work that is involved in downloading a good experience, a good site, to load fast on your mobile device, if you images tend to be very heavy and not optimized for that device, that form factor, the compression rations et cetera, you are going to be moving way more bandwidth than you should be using. The quality of those images won’t be optimized for that device.”
Akamai has been developing a patent-pending technology that can pre-position images in a Web browser to increase speed and perceived image quality. Essentially, the image will be loaded in a lower quality but still visible format while the rest of the site is built. The image will slowly come to full quality as the site loads.
It is slowing building up the image over time. To your naked eye you see that it popped up immediately, but that is not what really happened. So when you see when was the DOM-complete event, it is going to happen much later but the perceived quality of how quickly that site was downloaded and available to your mobile device is just so much better. There is a lot we are doing in that area, even under the guise of like better performance for a mobile device.
There is a trick to it. The trick is how do you use math to figure out what is the right amount of data to send so that it is not grainy. You also don’t want the experience where it is a grainy image that slowly gets better. That is also pretty annoying to people. You want it to be crisp enough, but not the whole image. There are ways in which you can compute the right number of coefficients to send down. And given that our CEO is a math professor, everything—as you can imagine at Akamai—is very math based.
Speed Up Both Ends Of The Cellular Network
A double-sided problem should come with a double-sided solution. For Akamai, the cellular networks are not exactly the problem—Akamai will always say that it works with all its partners, from the networks to the edge providers—but the evolution and maturation of cellular speeds is sometimes a frustrating process.
Of course, the Akamai content delivery network helps with delivering content through its process of caching content at nodes across the world. But more work is needed to really increase performance in the era of bloated websites and apps.
Akamai attempts speed up wireless performance at both the cellular tower and on smartphones.
Think of it as everything from co-locating with cellular gateways where the IP address typically gets assigned to protocol shaping when you are sending data over a TCP network of some sort,” Kulkarni said. “Being smart about looking at packet congestion and sending the right amount of traffic based on that.”
Akamai also can help speed up performance within apps with its own software developer kit that can help apps request and retrieve content more quickly from the network.
“A native app SDK to do a better job of accelerating content to apps,” Kulkarni said. Because these apps at the end of the day are often basically bringing Web content into their app. So you look at the Macy’s app … or any of these apps … airline apps. It is very image rich, there is a lot of stuff in there is effectively is like building a website.
APIs: The Dark Matter Of The Internet
The Internet has undergone some subtle restructuring of how it sends data from place to place over the last decade.
“Fundamentally, the world is being reshaped in that it is not all about HTML on HTTP anymore, but it is APIs. Everybody is re-platforming. It is all JSON on REST,” Kulkarni said.
Think of APIs kind of like the dark matter of the Internet. You can’t see dark matter, but you can measure it and it binds everything together. In the current era of the Internet, APIs serve the same function.
To help increase the performance of the Internet, the optimization of APIs must be a priority.
“If you have an app that is very REST heavy, you have the entire JSON payload, there is a schema associated with it that often ends up loading the whole packet,” Kulkarni said. “So what you are sending down is often much heavier than if you expressed it using style sheets and HTML. So we are seeing these really heavyweight traffic patterns on APIs where there is big opportunity for people to accelerate it but they just aren’t doing it that way today. It is a new, emerging world.”