HTTP Isn't Enough
#sdas #devops #webperf Speaking "HTTP" doesn't make you application fluent, it makes you protocol fluent.
There are over a million apps in the Google Play Store. There are also about a million apps in the Apple App Store. That's two million apps (give or take a couple thousand).
How many of them can your infrastructure "speak"?
If you said "All of them" let's try that again, this time remembering that HTTP is a protocol, not the application itself.
Now, one more time, how many of the approximately 2 million mobile applications can your infrastructure speak?
Right. We won't ask the question about the over 10,000 APIs now listed by ProgrammableWeb.
And those are just the ones we know about.
The reality is that even applications that use the same technologies to encode data (JSON, XML, HTML, HTTP POST or GET) still use their own special dialect. What that means for infrastructure is that you can't really assume anything about an application just because it's delivered via HTTP or its data is encoded in JSON. You not only have speak its unique language you have to know the application. You have to understand what kind of data it's exchanging, how often, and where its users might be generally located. Not only that but you have to be able to recognize the subtle (and sometimes not so subtle) impact the user's device might have on how the application performs and interacts with the network.
You also have to "get inside" the application, and that requires understanding how to dig into payloads encoded in different formats and how to parse it out; how to extract objects and values. That's important when you start inserting or deleting content - whether those are ads, dangerous values that compromise user security (social security and account numbers), or images that need have the EXIF removed for security and/or speed.
You can't just stop at HTTP headers and call it a day. To really provide the capabilities required to improve performance, increase reliability and protect both users and businesses, you must be fluent in applications, not just HTTP.