New Book Released

I’m proud to announce that I am a co-author on a new book just released. It’s available now for download and later via print edition. Frank Denneman announced on his blog the official release, as he was the main organizer and author for this project. This is not only my first published book, but also a first as a main co-author. It was indeed exciting and challenging at the same time. I can now at some level appreciate those that have tackled such a feat, as it wasn’t the easiest thing I have ever done! :) 

Being a 300-page book that talks about the many architectural decisions when designing for storage performance, is not something for the faint of heart. The focus and desire was to articulate a deeper technical understanding of the software layers that intersect and interact with the differing hardware designs.

I would like to thank Frank for giving me the opportunity to work with him on this project. It was truly a delight and a rewarding experience!

You can directly download the book here. Enjoy!

The vSphere Pocketbook 2.0 Blog Edition

The vSphere Pocketbook 2.0 Blog Edition has been released!

If you were unfortunate to not receive your copy at VMworld, you can always order at Amazon 

I have also decided to post my contribution to the pocketbook here for all to read as well! Enjoy!  


Systems Thinking Impacting Design Decisions

As with most design decisions it becomes imperative that all steps are taken to prove out a design that meets and exceeds all expected goals. In the world of virtualization, the choices we make are the new foundations of the enterprise. This is why it’s more important to get the process right in making a good design decision. It’s much easier to correct the implementation than having to go back and start over with the entire process. It is with this mantra that I want to explore one idea on how to implement a Systems Thinking approach for good design decisions in virtualization.

As technologists we thrive on new products and services that tickle our inner ego. This is where it becomes imperative to implement a process that incorporates all inputs that can help drive a successful design decision. The old military adage of “7 P’s” (Proper Planning and Preparation Prevents Piss Poor Performance) can even be relevant in a virtualization type of project design. This preparation and planning can be realized in the collection of inputs to a project design, where they can be broken down into smaller pieces for ample analysis. This is called the Feedback loop – a causal path that leads from the discovery of a design gap to the subsequent modifications of the design gap.

It’s this reciprocal nature of Systems Thinking that provides a constant feedback loop to the design. The ultimate goal is a design that changes based on external parameters to meet a new set of goals or challenges. If you can get to a design like this, then you can become more agile and not have to implement patch solutions to accomplish a new forced or unforeseen change.

To illustrate how such a process can impact design decisions, let’s first look at a common problem in many environments. Many organizations are growing their virtualization environment at a rapid pace therefore, there is a constant pressure to provide enough storage capacity/performance as the VMware environment constricts. 


As you can see this is a simple, yet applicable example of a feedback loop that can help you break apart the pieces of a design to come up with an effective solution. Let’s now go through the pieces to understand the relationships and the effect they can have on the design.

As the “User Base” or as “Applications” are virtualized this puts added pressure to increase the number of ESXi hosts to support the compute requirements. As in most environments the number of ESXi hosts increase; this will increase the demand and contention on the storage systems to keep up with the I/O load. In order to keep up the capacity growth demands and I/O performance load, this pushes the admin to add more spindles to the storage environment. More spindles allow for more I/O processing which as a result could increase the demand for a faster storage fabric. This loop finally decreases the demand on the storage system in a response to the growth, but as you can see it’s only temporary, since there is still added pressure from new user and virtualization growth. The only way to turn the tide on the storage pressure is to instrument a negative reinforcing loop. An “I/O Offload” solution can help by decreasing the demand on the storage system and thus provide better consolidation back onto the ESXi Hosts.

What this illustrates is how a Systems Thinking approach can help overcome some of the complexity in a design decision. This is only a small subset of the possibilities so my intention is to provide more examples of this on my blog. If you want to learn more about Systems Thinking check this short overview to a larger context.