Unicorns have been a big deal this week, mainly as a mechanism to acknowledge front and center that some words are overloaded in technology groups – in this particular instance it was Agile, so rather than wrestle with the notion that Agile had been tried already, I started calling the development methodology the Pink Unicorn, clearly differentiating it from anything tried previously here. Agile is a collection of approaches tools and techniques that is used to deliver software iteratively and collaboratively.
Friday, July 23, 2010
Unicorn Tamer
Unicorns have been a big deal this week, mainly as a mechanism to acknowledge front and center that some words are overloaded in technology groups – in this particular instance it was Agile, so rather than wrestle with the notion that Agile had been tried already, I started calling the development methodology the Pink Unicorn, clearly differentiating it from anything tried previously here. Agile is a collection of approaches tools and techniques that is used to deliver software iteratively and collaboratively.
Saturday, July 17, 2010
NB305 and a battery powered lawn mower
Last week I purchased a Toshiba NB305 with 1 1.6GHz Atom processor 1GB Ram, it runs like a whipped dog… but… if I connect (RDP) to my work desktop it flies. All it has to do is have sufficient horse power to render the graphics and the connectivity to support moving them, none of the apps are local and so my experience (which btw is how I am typing this blog entry) is as rapid as I could ever hope for – and a 10hr battery life
So what the heck has this got to do with a battery powered lawn mower? About three weeks ago when I became a producer of cash and not a burden on my wife’s income I decided it was time I stopped moving the gas powered mower back and forth between the house in the ‘burbs and the cabin, so I bought an additional one, not a gas one, a rechargeable electric one, J expressed her doubt, and I still have mine…. After being charged for 12 hours I turned the switch and away I went. A couple of learning’s so far: current battery powered mowers are heavy and are not self propelled. The mower is very quiet, the main noise being the blades spinning, when I hit tall grass I can hear the blades slow. It is not clear if the motor has enough power to cut grass in most conditions, however what is clear is that it is now an aerobic exercise now to mow the grass, but at least I am not burning gas to do it.Wednesday, May 5, 2010
Development Server Sprawl
Virtualization as an approach to server consolidation is no longer new and exciting; most CIO’s have established programs and are gradually reaping the rewards. However, virtualization only delays the inevitable day that the space power and cooling runs out of capacity.A challenge with many internally driven infrastructure consolidation initiatives is that the very people who are charged with working out how to decrease the scale and complexity of the environment are the very same people whose livelihood depends upon that complexity and scale. Their ability to objectively pursue the full extent of the opportunity must be challenged to ensure they are motivated to implement the appropriate strategies for the company and not their career.
As I have blogged about previously the developer community, of which I am a proud member, is a bunch of server huggers. Each team, and if they got a chance each developer, asks for their own environment to develop, test, debug, stage promote and finally run in production. Expecting developers to efficiently develop in a shared environment is unrealistic; the complexity of single application debugging is sufficiently high that the introduction of multiple application development environments within a single server instance would provide a level of ambiguity that would reduce productivity unacceptably. So whilst I don’t support the notion of every developer needing their own set of servers, I do support the notion that providing teams isolated environments where only their own actions affect the behavior of their technology is paramount if you wish them to perform efficiently. Why though do development environments get hosted in datacenters? And more specifically why do they get hosted in datacenters supporting production environments? And to be even blunter, why are they being supported by resilient facilities? Let’s face it, development environments only need to be working when a developer is working, is your office complex supported by facilities as resilient as the datacenter? I doubt it. If a development server environment is offline does that prevent the developer from continuing to code on their desktop/laptop? No. So I posit that development server environments should be supported on relatively non resilient facilities with a fairly low RTO/RPO, perhaps measured in multiple hours. What is the size and scale of development server environments?
A recent survey by a company I was working at demonstrated that approximately 18% of the server inventory physically residing in the highly resilient data center space was not supporting production equipment. If one conservatively estimates that half of these servers are development servers this suggests approximately 9% of servers in the datacenter do not need to be there.
One might logically suggest that large organizations should build their own low resiliency facilities to house their development environments; this seems the logical next step. However, how many companies truly have the scale to fill a data center with development serves alone? Tiny datacenters tend not to be as financially efficient both in capital and operating expense as their larger counterparts due to the economies of scale of the mechanical and electrical plant.
The scale of development server needs is exaggerated by the general absence of rigorous decommissioning or repurposing policies. Due to the one server-one use mindset that caused the proliferation in the first place few application development environments are decommissioned until the application is decommissioned from production. These behaviors have led to a bloat of underutilized processors sitting idle waiting for an app to break or a feature to be developed.If an organization has one thousand servers in its datacenters then maybe 80 of them are development servers, those eighty are consuming probably between twenty and thirty kilo watts in aggregate, the capex necessary to build the facilities they exist within equates to roughly half a million dollars. The capital depreciation of datacenter investments is complex due to the varying nature of the building, mechanical and electrical plant, a reasonable estimate is a ten year depreciation period. The estimated annualized depreciation of the space occupied by the development server environment could then be calculated to be fifty thousand dollars.
Virtualization results in tangible savings for most organization firstly from its ability to enable consolidation of servers onto fewer CPU. Over allocation, the ability to slice up infrastructure so that the sum of the virtual parts is greater than the physical whole, varies considerably depending upon application type and operating systems, as well as the underlying infrastructure that is the source and destination for the environments. It has been my experience that development environments are especially suitable to substantial over allocating. This is facilitated by several, facts: Most development servers are substantially idle, due to their activity depending upon human interaction by the developers, and the lifecycle of development being sporadic depending upon a longer term product development lifecycle. Additionally, the performance of development environments is far less critical than that of the production environments enabling developers (begrudgingly) to accept lower performing environments than the target production environment. Server consolidation rates of twenty to one are not unreasonable to expect, especially if the target environment is using modern multi-core chipsets optimized for virtualized environment execution.
Applying the twenty to one consolidation approach to the eighty development servers leads to the suggestion that four new physical servers can provide the processing necessary to support the development server environment and still provide adequate performance and isolation to ensure the developer’s productivity is sustained. The capital outlay for four servers is probably 100k, depreciated over 4 years equaling a 25k anual operating expense. The additional operating expense of powering and cooling these four servers is roughly equivalent to 35,000khw per year assuming a conservative PUE, this becomes roughly $2,500. The annualized savings opportunity for this environment is thus conservatively estimated to be $22.5K. This however is a gross over simplification and under estimation as I will continue to discuss later. Hopefully though this potential savings opportunity wets your appetite sufficiently to warrant you continuing to read on.
What would be an ideal development server environment? Many competing demands are at play in development environments, cost, flexibility, isolation, availability. The consequence of attempting to mitigate these demands leads infrastructure teams to establish an ever increasing foot print of servers as each team, project or consulting group comes in and demands that their own unique environment is established early in a projects initiation.
At any one time it is unlikely that every production application is being modified by the development teams. This leads to the obvious conclusion that multiple development server environments are sitting idle at any particular moment in time. Why are these servers not repourposed for the next development effort? Depending upon the capital appropriation practices of your specific organization it is likely that asset ownership becomes an issue. One specific cost center owner has the development assets sitting on their balance sheet, and this inhibits the opportunity for sharing. The unpredictable nature of discovering issues in production that will need rapid diagnostic and development work to take place, coupled with the relatively slow deployment times or repurposing times of physical servers makes the idea of dedicated environments attractive to teams responsible for break fix work.
A number of years ago VM Ware added a product to its portfolio called Lab Manager. Lab Manager provides a rich user experience to establish and maintain complex environments made up of a combination of guest VMs, it provides the ability to quiesce the guests and capture then store the state of entire application development server environments and rehydrate them on demand. This technology then creates the starting point for mitigating several of the factors that have driven technology organization to bloat their development environments. First the rapid deployment of rarely needed server configurations becomes an efficient and practical exercise. Secondly the decommission of retired environments becomes a right click exercise. Thirdly the establishment of entirely new application development environments take minutes not weeks.
It is challenging for many corporations to change their policies for infrastructure investments without it having substantial impact on reported top and bottom lines of individual lines of business. The migration from individual business unit asset ownership towards a shared infrastructure can get bogged down in financial performance restatement and other financial issues, irrespective of the obvious benefits from implementing the strategy. It then becomes attractive to look outside of the organization for a less financially intrusive solution to the challenge. The economics of shared virtual infrastructure provide the opportunity for an external business to provide on a subscription basis access to shared virtual development environments for a lower cost than most business units would experience if they purchased and hosted their own physical servers. If instead of selling a subscription to individual guest virtual servers the infrastructure is sold on the basis of capacity to execute concurrent guests a business can then truly optimize its infrastructure usage to a minimum by providing each development team the ability to hydrate a specific number of virtual guests concurrently. This need then becomes independent of the number of applications actually being supported and instead becomes proportional to the concurrent activity of a development team. Not only does it provide the opportunity to decrease capex and opex, it also provides the opportunity for the rapid spin up of new development initiatives without the delays that can sometimes be imposed by the time taken to establish development server environments, providing a hard to quantify but very real time to market advantage for product development teams. The removal of development environments from expensive highly resilient data center space allows for production server capacity growth, another hard to quantify yet equally important revenue growth supporting opportunity.
My next post will deal with responding to some of the commonly cited objections and resistance to the idea of virtualizing development environments as well as moving infrastructure outside of the confines or security of an enterprise's own datacenters.
Friday, April 23, 2010
90% of businesses should not own a data center.
The logical extension of virtualizing application environments is the sharing of disparate workloads with variable utilization cycles which enable the aggregate CPU/IO/RAM resources to be lower than that of independent application specific hardware. But most businesses, especially small to midsized, tend to have small geographic and time zone coverage, this leads to a lack of diversity in workloads, this can lead to situations where the result of virtualizing environments while reducing the number of physical servers may still result in one resource not decreasing, be that IO, CPU cycles, RAM.
Clearly resource consolidation is just one advantage that operating within a virtual infrastructure environment provides, and it is possible that the business value created through greater automation, improved speed of deployment, rapid repurposing of infrastructure etc can make the transition worthwhile absent of the value of resource consolidation.
By combining individual company workloads together greater workload and resource utilization diversity can result which then leads to a greater opportunity to consolidate infrastructure due to the peak aggregate resource utilization at any moment in time being lower than the sum of the individual peak utilizations. If this math does not hold true for a set of workloads then there is no net improvement in resource utilization through consolidating onto a single infrastructure.
To take this thought process one step further, if there is a resulting advantage in aggregation of workloads then clearly co-location of infrastructure is not sufficient to reap the reward fully. It will be necessary to share infrastructure between companies, sharing storage, server, network etc. this notion of shared leverage infrastructure is marketed today as The Cloud. And I would argue is the appropriate place for any small to midsize (non-global) business to place its workloads.
Okay so the 90% number was pulled out of the air, but, any business which does not have a global geographically dispersed client base which results in almost continuous level utilization will benefit from sharing their infrastructure with other applications – which may be outside of the confines of their own organization.
The good of the many outweighs the good of the few.
Wednesday, April 21, 2010
Wind and Solar power
Sunday, April 18, 2010
Thursday, April 15, 2010
Network Services Virtualization
I had a very interesting conversation with the CEO of Embrane today, they have a clear vision for virtualizing the network services, this is a company to keep an eye on going forward."Embrane’s Architectural Vision
Embrane has designed a software-based solution that simplifies the adoption of virtualization and cloud computing for both service providers and enterprise customers, while preserving the existing operational model for the data center. This solution enables the delivery of any network service on a pool of general purpose, x86 processors in the data center. It leverages an architectural design familiar to both the network and systems administration teams, thus making its adoption possible without having to work across organizational boundaries.
It includes the ability to manage and automate the lifecycle of network services through a policy-based, distributed control plane that enables scalable provisioning, monitoring, configuration and reconfiguration of the services as well as elastic changes to their profiles.
Embrane’s solution enables virtualization of network services very much like hypervisor technologies have enabled virtualization of servers."

