Getting all the key services and processes to run in the same machine given limited memory and CPU resources

(It’s only one [virtual] machine!)

(It’s only one [virtual] machine!) Making sure our developers are able to easily set-up and keep these machines up-to-date

(Gotta develop with the “Latest & Greatest”!)

(Gotta develop with the “Latest & Greatest”!) Having good sample test data in the databases to represent the real Xbox LIVE servers yet small enough to fit in our hard disks

(Millions of users = A lot of data! Even bogus ones)

Ever wonder what it’s like to be an Xbox engineer working on new Xbox LIVE features? Of the number of behind-the-scenes challenges we try to tackle at Xbox LIVE, one that affects us every day is the ability for us to develop and test our work efficiently and independently without affecting the progress of our fellow developers. Being able to experiment and try out various ideas without having to worry about affecting other developers allows us the freedom to get creative with how the Xbox 360 connects and interacts with the Xbox LIVE services. This also enables us to help make sure our features are working correctly before releasing the bits to our production servers.The Xbox LIVE service actually consists of various web services, databases, programs, and tools that span a large number of servers. Some machines are built to store large amounts of data, some specialize at processing data, and others are designed to be efficient at routing and distributing data traffic to the machines. From the development team’s side, we own and develop all of these services and interactions. We usually work on multiple parts of this system at the same time, making it crucial for us to make improvements and introduce new parts without affecting other developers.And so as part of our development process, we host our own miniature, test versions of Xbox LIVE on one machine, cleverly named by one of our team members as an “XBLOB” (Xbox LIVE on One Box). Because we each have our own separate version of Xbox LIVE, we can experiment, develop and make changes without affecting anyone else. There are many parts involved in making XBLOBs possible, such as:In this post, I am going to talk about how our developers set up and make use of their own XBLOBs using virtual machines running on Hyper-V virtualization technology.