Sunday, February 9, 2014

Goldilocks & Supply Chains with VMTurbo

I'm fulfilling a New Year's Resolution to get back into blogging. Life has been crazy (but good crazy) and it's time to reestablish some old habits.

If you listen to the Cloudcast you know that Shmuel Kliger, CEO & Founder of VMTurbo was a guest back in December. I didn't know it then but that episode was the first step in a major education that I wanted to pass along to everyone.

Let's start with what you probably think about VMTurbo. You probably think they are a monitoring solution for virtualization, specifically VMware. If you thought this, you are not alone. I'll attempt to convince you that VMTurbo has a pretty unique value proposition and is properly aligned at the intersection of a bunch of upcoming data center operations trends (Software Defined Anything, Public and Private Cloud, etc.). Version 4.5 of their product was released a little over a week ago and here are a few items I observed in the last few months digging into the product.

VMTurbo Isn't Your Daddy's VMware Monitoring Tool

A major shift within the last 12-18 months has been the advance of multiple hypervisors and private cloud IaaS projects and products. The virtualization world isn't a one horse race anymore. Many other hypervisors are now "good enough" and the case can be made for certain workloads to run on non-vSphere environments. As you can see over on the new product page, VMTurbo works with all the major hypervisors and private/public cloud IaaS offerings. They cover vSphere, vCloud, Xen, Hyper-V, CloudStack (and Citrix CloudPlatform), OpenStack, Azure, and AWS. This is smart of them, really smart. I see workloads moving all the time to different environments (and sometimes moving back). Finding a tool to cover all possible infrastructure combinations is difficult currently.

What Do You Mean It Isn't Just a Monitoring Tool?

This is where VMTurbo gets really interesting for me. As mentioned on the podcast, I'm an old data center operations guy and it has always been a passion for me. I have been exploring not just WHAT VMTurbo does but HOW it does it as well. Yes, the product monitors complex systems but the WAY it does it is very different. This isn't just a bunch of agents running on machines and sending alerts back (or SNMP traps!) and then somebody gets an email or a page to take a corrective action. Just because you get an alert doesn't mean you know what corrective action needs to take place. What is the cause? Is there a problem downstream (a hot spot on a disk on a volume or LUN creating disk latency)? Monitoring systems often detect "black outs" (something is down) but don't do as well with "brown outs" (something isn't performing optimally) because most monitoring systems don't understand the connections from the lowest level of hardware all the way up to the application and potential performance impacts. Only by understanding how application resources are mapped to physical infrastructure can insight be gained into optimal performance of a system.
This is where VMTurbo comes into play. The product uses a Supply Chain Model to map every input and output of hardware and software in a system to understand potential impacts as well as potential improvements. Every product you consume has a supply chain. How does a product get from various raw materials into a finished offering that is consumed by you? Think about that for a second...

Take the computer or mobile device you are reading this on as an example. Every part, thousands of them, have to be made from raw materials, brought together, shipped, and offered to you as a product. You are the consumer. Now, think about an application or a workload as that consumer. All the underlying parts (disk, memory, compute, network) need to be combined and offered as services (hypervisor, virtual machines) that are consumed in various amounts by the application. Furthermore, each resource can serve as both an input and an output. Some will take resources, but will also serve resources to others.

By taking this approach, everything in the system becomes Data (with a capitol D). Once everything in the system is Data, you can start to apply some universal concepts such as a Common Data Model and System Optimization through the Economic Scheduling Engine. I'm going to take each one of those in turn.

What is a Common Data Model and why should I care?

By taking a complex infrastructure and breaking it down into a Common Data Model (compute, storage, network, hypervisor, etc.) it becomes very easy to add new systems and components. Remember above when I stated that VMTurbo supports the various hypervisors as well as IaaS projects/products? At a very fundamental level all products break down in the same way (Common Data) and once broken down we can begin to understand the mapping between components. This mapping gives us greater insight into connections for root cause analysis as well as making additions of new components and software very easy because the initial mapping is already complete. The latest version of VMTurbo has added hardware from Cisco UCS as well as storage from NetApp. I'm sure this integration further down the stack will continue and will be a great value add for converged infrastructure products (FlexPod anyone?). Here is an example of a mapping in the interface:

Here is anther way to understand this mapping. When I was at IBM supporting business parters about 10 years ago virtualization was just starting to heat up. Part of the early days of this market was convincing customers with physical infrastructure to go virtual. The demand was there but the tools at the time were not. Because of this my team would go in and analyze physical environments and then break them down (using a common data model) and carve up workloads and perform a manual calculation of how much virtual infrastructure would be required to support the proposed environment. We would map out applications down to the basic compute, memory, storage, and networking requirements. This was a complex operation that took weeks and lots of manual calculations and Excel formulas to accomplish. VMTurbo does basically that same thing and does it automatically without human intervention! This could have saved me hundreds of hours back in the day!

The Common Data Model is about more than just analysis. VMTurbo is able to recommend and (if configured to do so) will actually remediate environments to optimal operations. That takes me to the next section.

What is System Optimization through the Economic Scheduling Engine and why should I care?

We've talked Supply Chains to death, let's talk about Goldilocks for a bit. Most people in our field don't know it but they are always searching for a Goldilocks State of Operations. Our customers are looking for something that isn't too big, isn't too small, but just right. The problem with this is our applications and workloads are often dynamic and changing and so finding the "just right" spot is hard because it is constantly shifting. Too little resources and application performance may suffer, too many resources and we are wasting money through over provisioning of resources.

This is where the whole "cloud computing" idea comes into play. Cloud computing can be boiled down to the concept of Dynamic IT, dynamic pools of scalable resources. As our application workload shifts and moves, our underlying IT infrastructure must shift and move to compensate. This is what we call a "perfect state" in an economy system. We are providing just enough resources to be consumed.

VMTurbo uses this model to constantly monitor the resources demands and attempt to move and shift resources as needed. Think of it as VMware DRS for your entire infrastructure. The only way to do this is to map and understand the relationships of the infrastructure to the applications and how to make corrections as needed. VMTurbo attempts to provide a Goldilocks State of Operations to your entire infrastructure.
If you are still with me, thank you! In conclusion, VMTurbo is a pretty unique product that I have been having a great time digging into for the last few months. Through the use of VMTurbo's Common Data model as well as the Economic Scheduling Engine they are able to really provide a product that is well suited to tackle the increasingly complex infrastructure interdependencies as well as ever increasing and shifting application workloads. Go check out the site for more information.

Disclaimer: As noted, Shmuel Kliger was a guest on the Cloudcast podcast of which I am a co-founder. I also attended a pre-release briefing and product demonstration on VMTurbo 4.5. No compensation was given or expected and I'm writing this blog post because I think it is cool tech and wanted to help get the word out.Image Credits: VMTurboBig thanks to M. Sean McGee for his Goldilocks UCS Blade Post a few years back. The title is an homage to that post.