Virtualization 3.0

A lot of changes are happening in the IT space right now, with many of the conversations taking place in some Cloud context. What is not always clear is how much of the conversation is hype, and how much has real impact. A growing number of centralized information and information resources are shifting from Corporate Data Centers to both Public and Private Data Centers accessible over the Internet – so called Public and Private Clouds. As the shift grows, each major vendor ties marketing literature to their future “Cloud” strategy for dealing with the changing landscape, creating confusion in the market place.

The confusion becomes even more intense as the term “Cloud” is applied to technologies that have been developed to support large scale Internet accessible infrastructures becomes available to traditional IT organizations. Some may feel it safe to believe all of the Cloud talk is still just hype – but it turns out there are some real gems coming into the market place that can be lost in all of the marketing around Cloud solutions. As a result, I have stopped calling, or even thinking about, the new capabilities as Cloud capabilities  - instead talking about the new technologies as Virtualization 3.0. A process which seems to make previously tenuous and shifting conversation a bit more concrete.

Virtualization 1.0 and 2.0

From my perspective, Virtualization 1.0 was mostly about hardware consolidation. As many companies who conserved resources during lean years began to consider hardware and software upgrades, conversations about consolidating hardware resources through virtualization became the accepted norm. Discussing the opportunity to reduce the amount of hardware required to support small, medium, and large organizations who were upgrading from older software and equipment became a fairly comfortable conversation – particularly as the process was proven by more and more companies. Some organizations also took the opportunity to improve reliability by relocating centralized resources to large scale datacenters or hosting platforms, but not many. So Virtualization 1.0 was mainly about hardware consolidation.

I have spent much of the past 18 months discussing the veritable Recovery Time and Recovery Point objectives I used to plan large scale datacenter environments 10 years ago – but now in the context of virtualization. Discussions often involve not only the virtualization of physical servers, but also the approach to the spectrum of infrastructure availability, ranging from High Availability, to Backup and Recovery, to Disaster recovery and Business Continuity. I now see this discussion and planning about leveraging the capabilities of virtualized environments to meet business requirements – a conversation focused on ensuring IT resources are available when they are needed dispite the unexpected – as Virtualization 2.0. Which means Virtualization 2.0 has been mostly about IT support for Business Continuity.

Virtualization 3.0

Conversations around the third wave of virtualization are just beginning, focusing on two specific areas: Automation and architectures required to support the increasingly large number of virtual machines being supported on fewer, more powerful hosts. Many vendors are using “Cloud” to describe these solutions: vCloud, Private Cloud, etc. primarily because the technologies now available are a direct result of investments in research and development that were required to build large, successful Public and Private Cloud infrastructures. Microsoft, VMWare, and Citrix were forced to explore new technologies in order to provide the support massive datacenter environments with thousands of individual servers required; while at the same time looking for ways to drive down costs for public and private cloud solutions supported by Advertising, Freemium, or pay-as-you-go revenue streams. The fruits of the research and development dollars are now beginning to hit the mainstream in some surprising and exciting ways. It looks like the third wave of virtualization technologies, or Virtualization 3.0, will focus on Automation and Virtualized I/O, or Virtualized Networking – both of which become much more important as Virtual Machines and hosts are able to access an ever increasing amount of RAM and CPU resources.

We will explore some of the more interesting and recent developments over the next few weeks in this series entitled “Virtualization 3.0″.

A Peek inside an Exchange Admin’s Toolbag

Sometimes I’m asked to take a look at a company’s Exchange environment and make sure everything is healthy. I use a variety of tools to collect data, some of which I share with the client, and others would seem too much like reading tea leaves, so I keep that to myself.  I thought I’d share some of the tools I use. This isn’t my full arsenal of tools, but instead it’s a subset that I think will be helpful to most Exchange Administrators. These tools are relevant to Exchange 2007 and Exchange 2010, but not to older versions of Exchange.

The Microsoft Exchange Best Practices Analyzer (BPA) tool will uncover a lot of information. This tool can be found under the Toolbox section of the Exchange Management Console. A great feature to this tool is as Microsoft makes changes to their Best Practices for Exchange, those changes will be updated to the BPA. When you run the BPA, it will connect to your Domain Controller and make sure it’s not trying to connect to a Domain Controller at a different site in Active Directory.  Give the report a name and let it run.

Once the report finishes you’ll see something like this:

As you can see on this server, there are a number of errors needing to be addressed. When you click on one of those errors, you will see there are a few options, one of which is: “Tell me more about this issue and how to resolve it.”  If you follow that link, it will give you details about why this is an important change to make and lead you to Knowledge Base articles that will help you resolve the issues. In this instance, you only see warning level issues.  However, in many cases, there are critical errors.

Another tool that I use extensively is the Application Log in the Event Viewer. If you don’t look at your log viewer often, you may be surprised at what you find. Often, people don’t think to look at logs but when I do I often find skeletons lurking in the closet:

Now for the fun stuff, I thought I’d share a couple of command line tools that will help you get some statistics from your Exchange server.  These commands are run at prompt of the Exchange Management Shell. This first command will get you a list of all your mailboxes on a server and sort them from largest to smallest. This can be quite the eye opener

Change out the items in red to match your environment:

Get-MailboxStatistics -Server SERVERNAME | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(KB)”;expression={$_.TotalItemSize.Value.ToKB()}}, ItemCount > c:\users\YourUserName\Documents\mailboxes.txt

And Last but not Least, this command line will produce a list of all that ActiveSync Partnerships Exchange still has listed. Some of these partnerships found are rather old and need to be removed, either way you’ll certainly find the results interesting.

Get-Mailbox | ForEach {Get-ActiveSyncDeviceStatistics -Mailbox:$_.Identity} | Select-Object Identity, DeviceFriendlyName, Devicetype, DeviceUserAgent, FirstSyncTime, LastSuccessSync | export-csv c:\users\YourUserName\test.csv

The H-Factors

This is a blog post about attitude and approach, rather than technique or practices and its origin was in my attendance at the Software Craftsmanship North America (SCNA) conference in Chicago this past November. As always, the SCNA organizers put on a great set of meetings and I learned a lot and was able to spend time with like-minded practitioners of the software craft. But the more I thought about it, the more the last part of that last sentence began to gnaw at me; “like-minded practitioners.”

I have an innate ambivalence bordering on antipathy toward “like-mindedness.” There is no problem with a shared set of values (like those of the Software Craftsmanship Movement or the Agile Alliance) or goals; the problem is when the group of people sharing those values ceases to view them critically and subject them to constant evaluation. They become like-minded. It is usually at about the same time that they begin to view those who disagree with them as somehow “less” than them. This may be subtle, but still present. For example, Bob Martin’s emphasis on professionalism in his books Clean Code and The Clean Coder is well founded and is something to which all developers should aspire. However, it can be a short step from striving personally and organizationally to be professional to denigrating another individual or group who does not practice software development the same way.

Not that SCNA has “jumped the shark,” and become such an organization. However, there were elements of it present and a definite “vibe” of superiority. There are two dangers I hope the Software Craftsmanship movement will avoid, and that we here at Pinnacle also seek to escape: the danger of the Inner Ring and the associated danger of hubris.

The Inner Ring is the title of a lecture by the author C. S. Lewis. In that lecture he identifies how every organization (however loose) has an official structure, but then there are the unofficial structures, the “inner rings,” that people strive to become part of. These “inner rings” have ever changing membership, but one thing that is always clear is that some are “out” and some are “in.” As Lewis says, “But your genuine Inner Ring exists for exclusion. There’d be no fun if there were no outsiders. The invisible line would have no meaning unless most people were on the wrong side of it. Exclusion is no accident; it is the essence.”

Now I don’t think for a moment that the Software Craftsmanship movement (or the older Agile movement) is intentionally excluding people or groups. However, as the movement matures there has arisen a set of criteria that define a developer as a craftsman. In and of itself, that is not bad; but it is what we need to be careful of as a movement. There is a distinct danger of chronological hubris (the first “H-Factor”). What I mean by this is that for decades many of the practices that we use to define a “professional” developer or “craftsman,” didn’t exist in their current form. Yet professional developers still existed. I venture to say that 20 years from now we’ll all be utilizing new and different tools, practices, and technologies and while the same principles will apply, the practices will change. We need to be open to a new generation and take care that our current views don’t become ossified.

I happen to work with an amazing group of people at Pinnacle who are open to new learning, eager to adapt and grow, and excited about the possibilities of what can be accomplished as we increasingly adopt the values of both the Agile and Software Craftsmanship movements. However, I view it as one of my key responsibilities to ensure that I don’t foster the creation of an inner ring or contribute to the growth of hubris on the part of myself, my team, or the rest of Pinnacle. There is so much we don’t know (and that we don’t even know we don’t know) and we are constantly learning from other developers, teams, and our customers. My hope is that reading this blog years from now, we will be able to say that we have stayed the course and have continued to grow and learn from each other with humility; the other “H factor.”

I finish with Lewis: “If in your working hours you make the work your end, you will presently find yourself all unawares inside the only circle in your profession that really matters. You will be one of the sound craftsmen, and other sound craftsmen will know it. This group of craftsmen will by no means coincide with the Inner Ring or the Important People or the People in the Know. It will not shape that professional policy or work up that professional influence which fights for the profession as a whole against the public: nor will it lead to those periodic scandals and crises which the Inner Ring produces. But it will do those things which that profession exists to do and will in the long run be responsible for all the respect which that profession in fact enjoys and which the speeches and advertisements cannot maintain.”