Last week I wrote about the impact cloud computing will have on IT operations. I noted that the increasing scale of data dramatically changes the expectations of how data centers are operated. This week I want to turn to how cloud computing affects IT application architectures, specifically examining the flip side of the coin of data growth: application load.
Succinctly put, the assumptions we have traditionally used to design application architectures are increasingly outmoded due to the changing nature of applications. Application architectures are going to change — just as much as IT operations — over the next five years due to the nature of cloud computing applications.
What are the reasons that applications are going to change so much?
All of that big data is going to mean software applications are going to need to change to manage it.
As I noted last week, IDC projections indicate that the average company will experience a seven-fold increase in unstructured data (think click stream capture and video storage, etc., etc.), accompanied by a doubling of structured data (think database row-and-colum info). I actually think that IDC's projections are understated on the structured data side, because of the constrained assumptions it (very reasonably) brought to its analysis.
The remarkable decrease in the cost of IT brought about by cloud computing will — no surprise to economics majors everywhere — lead to much larger amounts of computing being done, which, in its turn, will lead to larger application architectures and topologies.
The Business Use of IT is Changing
In the past, IT was used to automate repeatable business processes — taking something that already exists and computerizing it. The archetype for this kind of transformation is ERP — the automation of ordering, billing, and inventory tracking. That "paving the cow paths" approach to computing is changing. Today, businesses are delivering new services infused and made possible by IT — in other words, creating new offerings that could not exist without IT capabilities. A dramatic example of this is the way music services have developed. Pandora leverages the knowledge of experts to deliver customized song streams to its customers; Pandora tracks the preferences and feedback of every one of its listeners to ensure each receives a personalized offering.
Pandora's service could not exist without the support of massive amounts of computing power, which forms the core of the business. Less dramatic, but no less reliant on IT infusion, is the personalized service offered by high-end hotel chains. The personal attention that employees offer guests — going *way* beyond the "prefers non-smoking room" of yore to, say, "likes to see avant-garde theater and new museum exhibitions" — enables highly specific employee interaction with customers. And, guess what, it's all driven by new applications.
The Nature of Applications is Changing
Heretofore, most computing has been driven by human action — someone making a purchase, requesting a Web page, and so on. In the future, a growing percentage of computing will be driven by non-human activities from devices like sensors. As an example, much has been made of the move to smart electric meters — instead of your meter being read by a human walking through your neighborhood, the meter itself will connect back to the electric company data center and upload its billing information.
However, one of the other ballyhooed characteristics of these smart meters is their ability to give real-time readouts of load to users. This data about electric usage — the metadata, if you will — will be invaluable to electric companies to help understand how usage changes with immediate pricing feedback. This will result in far more data than just a monthly reading being sent to their data centers. And — wait for it — that data will be transmitted in irregular patterns, leading to highly variable loads, thus affecting the nature of application architectures.
Given how the number, type, and nature of applications are changing, what does this imply for the future of applications and, to address the specific topic of this post, the future architecture of applications? The implications are fourfold:
Application load variability will increase: The driver for the vast changes in resource load variability is application load variability. For hotels, the traditional busy times are early morning (checkout) and late afternoon/early evening (checkin). In the future, personalized attention will mean high application load at other times. In essence, application load will vary throughout the entire day — all 24 hours of it — rather than being focused during business hours. Applications will need to be much more able to dynamically scale.
Application interfaces will change: Instead of being human- (and thereby screen-) focused, data will pour into applications from other applications, sensors, file uploads, and, undoubtedly, things we haven't even thought of yet. So service interfaces and upload interfaces will join terminal interfaces. Applications will need to be able to gracefully — and dynamically — add new data streams as inputs.
Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.