Pete Whiting, in a guest post on Joel Dehlin’s blog, has some insights into the perils of complexity. This is good food for thought as we plan our server virtualization project at Resurrection, which we have scheduled for implementation in May. I particularly agree with Pete’s point about isolating/avoiding tight coupling between services. For example, it’s much better if an application is dependent only on one server, than if it requires two (or more) servers to be able to operate. With virtualization, we are making it a priority to gather everything a particular application needs onto a single virtual server, which will be able to run on either of two redundant physical servers. This architecture provides the benefits of redundancy without introducing unnecessary interdependence.