Over the past year, I’ve observed a concerning trend about workloads. It seems that with the advent of cloud computing, the idea of a workload has been confused a bit. The fundamental concern is a misguided view that all workloads are the same or similar. Specifically, I’ve heard general IT professionals making decisions around cloud computing by following those of Netflix, Zynga, Facebook and Google. This makes some very large and flawed assumptions that are fundamentally based in a misunderstanding of the business drivers and workload requirements.
What is a Workload?
First, let’s start with what a workload is. A workload is a characterization of the work that applications perform. This includes the applications, systems, storage and network infrastructure. It’s a holistic view of the type of “work” being performed with the entire system. The nature of the work is the load being placed on the infrastructure systems. The work being performed is governed by the application, systems, configurations and specific use of the applications or services. At a macro level, this is fairly unique to each company. There are exceptions, which I will discuss in a minute…read on.
For well over 20 years, organizations have modeled their workloads to better understand performance characteristics of systems. Others may refer to it as Web Testing, Software Testing, Load Testing and the like. When I was at InfoWorld in the early 90’s, I participated with BAPCO to model performance of systems based on the 10 most popular applications at the time. At the time, we used scripts to perform functions in each app similar to popular actions taken by typical users. It was very cool for the time. The idea was to create a “typical” load by characterizing typical application use on systems, storage and networking devices. Today, the level of sophistication of workload modeling has increased significantly. And many tools like TPC target a specific application or service. I’ve listed a number of more popular ones in the references section.
Two Fundamental Types of Workloads
At a high level, when you consider the different types of workloads, there are two fundamental categories. One is the monolithic application/ service while the other is more generalized. These are very different.
The monolithic application is often a single-purpose custom-built application (or application suite) and runs at scale. In addition, it’s commonly a dedicated application separate from general business IT functions. Examples would be Zynga’s gaming platform or Google’s search platform. Both Zynga and Google’s environments also run at an extreme scale. Because of the scale, it’s even more important to understand nuances around workload characterization that are less critical (and harder to pin down) with mixed workloads. For example, Google can fine-tune the different aspects of their search platform to decrease the time to present results. In addition, they can create custom infrastructure components, architectures and configurations. Why? Because they clearly understand the myriad of possible tweaks to the application and their impact. In addition, applications at scale bring a whole host of unique challenges on their own. This is a very different environment from their internal core business applications that run their business. It is also very uncommon for most businesses to have this type of workload with the exception being the aforementioned or possibly a Line of Business (LOB) application. Arguably, one might consider Google, Facebook, Netflix or Zynga’s apps the company’s LOB application.
The second type of workload is a mixed workload that combines a variety of core business applications. Internal core business applications are great examples of a mixed workload (email, ERP, HR, Financials, custom applications, etc). Each company will have a different combination of applications. They may also be a combination of off the shelf and custom applications. And each application does not typically run at a very large scale. These are classic IT workloads and found in just about every organization. The amount of effort to characterize and tweak this workload at a granular level vs. the value gained is often hard to justify.
Comparing Apples and Oranges
It’s important to clearly understand the type of workload you are comparing. Comparing what Zynga does with your own decisions is not the wisest of choices. Meaning, the demands and specifics of a monolithic workload are very different from a mixed workload. In addition, this does not taken into account the business factors that each type of workload brings to the forefront. All of these should be considered in the decision making process.
Following, Learning and Thinking
So, simply following Zynga, Google or Facebook’s decisions with cloud computing should not be happening without further consideration. Unfortunately, it is. Yet even Netflix and Zynga have taken very different paths for their applications/ services. Can we all learn from these industry leaders in the cloud computing space? Absolutely! But we need to consider what factors and aspects compare with our own needs. Getting to the answer is more complex than simply saying “Facebook went right, we should go right too!”. It means we need to think more and understand our own needs.
And as if understanding your own workload is not complex enough, comparing workloads across companies is very challenging. There are so many variables to consider that the value may not be worth the effort. For most it will still be an apples to oranges comparison. The best advice is to understand the factors that go into your decision-making process and compare common attributes across workloads. That way, you can learn from others while making good decisions about understanding your own workload.
Leveraging the appropriate tools can also assist in the decision making process.
TPC Benchmarks: Transaction Processing Performance Council (http://www.tpc.org/)
SYSmark/ MobileMark/ WebMark Benchmarks: BAPCO (http://www.bapco.com/)
Cloud Testing: SOASTA (http://www.soasta.com/)