Home > Uncategorized

The Death of the Data Center. Part 7 – The Software

April 30th, 2009 Comment Go to comments

In my rough model of scaled-up data center costs, I never had a separate category for software costs. These were simply bundled in with the server costs. You can think of this as a natural consequence of the costs of an operating system normally being bundled in with the server when you buy hardware.

Note that I was also modeling a highly scaled operation. If it’s Infrastructure as a Service (IaaS) then all you are going to have is operational software; the applications come from the customer. The same will be true of Platform as a Service (PaaS), it’s just that you will also be providing a software stack and development environment. With Software as a Service (SaaS) you’ll be providing the application and in most circumstances that’s going to be an application your company built.

Open Source Software

In the last decade Open Source software has become part of the fabric of the IT industry. It is  available for a wide variety of tasks. Some of it is very high quality and nearly all of it can be used for no license fee, as long as you obey the associated license. Open Source software has already become a business factor in the ISP business with most ISPs providing a easily installed and highly functional software stack for building web sites. It is going to play a similar role in the aaS businesses, but not just because the cost is very low.

A critical factor is going to be that the source is open.

As an operator of a large data center you will not have much of a problem paying for support from any given Open Source team, but you probably wont want support of the normal kind. In all probability you will change the source code to tailor the software you use to precisely fit your environment.

Just think of the OS for the moment. Under normal operation an OS will have many background processes running. All such processes have a function and quite a few of them run by default, whether you have a need for them or not. Some of them are keeping logs, some are handling messages from the network, some are there to fire off scheduled jobs if there are any, some handle printing, some provide directory services and so on. They all sit there happily chewing up cpu cycles whether they are busy or idle. You don’t want any of them there unless they have a specific role to play.

In a normal environment you would never even think of deleting these useful background processes, but in an environment that cares about efficient resource usage you really don’t want superfluous anything. Not only that, you maybe interested in rewriting some of these tasks; because you need them, but in your brave new world you may need them to run slightly differently. That’s why open source is key.

The Context Change

You may not know what a context change is. Think of it like this. You are getting on with some task; writing a program or writing a report or designing something and you get interrupted by a phone call. It’s someone on the line and they need your attention at once. You give them the assistance they need and five minutes later you’re back to what you were doing.

The question is: how long will it take for you to get back to the level of productivity you had before the phone rang?

It varies from person to person, but the general consensus is somewhere between 5 and 10 minutes. Computers are the same. They don’t like context switches either. With a computer the context switch occurs when it has to drop one application to get on with another. Technically, this is simply because the computer has to put a kind of bookmark in the application it is running, save it in a state where it can start up again and then load another application – filling the instruction pipeline to the processor. Context changes are expensive, both for people and computers. They consume cycles.

All those background jobs that do printing or write logs or handle network traffic cause context switches. If you can eliminate some of this activity you win more than you might think. And if you know precisely what your workload is going to be then you can design the whole flow of instructions and data to the cpu to try to minimize context switches.

All I’m really trying to do here is point to the fact that, although we have had general purpose computers for decades, we now have the possibility of building very application specific scaled  computers.

The big point here is this:

Executing cpu instructions is what a data center does.

That’s it’s prime job. That’s why it is there. If you improve the efficiency of that activity then you win EVERYWHERE:

  • Less electricity
  • Less cooling
  • Less hardware
  • Less networking

In the next posting I’ll cover optimization. We’re not done here yet.

The Death of the Data Center: The Model
The Death of the Data Center: Location, Location, Location
The Death of the Data Center: Power
The Death of the Data Center: Cooling
The Death of the Data Center: Networking
The Death of the Data Center: Server Hardware
The Death of the Data Center: The Software
The Death of the Data Center: Software Optimization

Categories: Uncategorized Tags: Subscribe to RSS feed
  1. No comments yet.
  1. No trackbacks yet.