No Need for Virtualization

May 1st, 2009 @ 7:57 pm UTC by evan

Today Duncan Keefe, Senior Manager in Apple’s Information Systems and Technology, presented on campus about how Apple’s IT department functions.

Somewhat understandably, there was a lot of sales pitch for Mac OS X Server in there incorporated in the talk, not to mention a lot of how Apple’s IT department is as awesome as the rest of Apple (which certainly seemed to be true based on the numbers we saw today). But some of the discussion on how to effectively communicate with your userbase would have been interesting for anyone who works in support, and there were a couple of interesting technical tidbits in there as well, and one in particular that still has me excited.

For example, did you know that Apple’s IT infrastructure is 71% based on open-source solutions? While I know as well as anyone that a lot of pieces of OS X itself are open source, they’re making use of a lot of enterprise-grade systems like SAP, which I thought would offset that number more.

Or another interesting fact: after migrating large parts of their infrastructure to Mac OS X Server and Xserves instead of Solaris or AIX or other systems, the sysadmin to server ration for OS X servers is 1:276. To compare that to the organization I know, SIPB has about 30 or 40 servers in its machine room, and there are about 20 people who have access to the machine room, not counting people without physical access who maintain servers on XVM – or people who just don’t have physical access. Now granted, Apple’s number is for maintaining a network with completely homogenous hardware and operating systems, and our tiny farm of servers probably runs more services per server than theirs, but the idea of a single person being able to run the entire SIPB machine room is…stunning.

But the truly interesting thing that Duncan mentioned was in response to someone’s question about virtualization. He responded that Apple currently doesn’t use virtualization for their IT infrastructure. Instead, they developed an in-house app that allows them to dynamically shuffle services around their servers based on the resources those servers need. Apparently their average server utilization is 60%.

And that is the dream of the cloud – by providing an environment large enough to contain your entire enterprise, you can smooth out what would otherwise be debilitating spikes in individual services. And in particular, this is the perfect answer to server virtualization.

If you look at your average, non-virtualized, single-purpose server, it’s probably at about 10% resource utilization, which makes it hard to justify buying a new server for each individual application. Virtualization is often touted as the solution to this problem – you run a bunch of single-purpose virtual machines on a single physical host. You can take advantages of features like guest migration to balance load dynamically. But if a service doesn’t need to exist in a completely independent instance of the operating system, you’re probably losing on the operating system overhead, in terms of disk space and RAM and probably processor usage as well. I’m willing to guess that the cost could be as much as 5% or 10%, which matters when you have hundreds of systems.

By dynamically shuffling applications without the extra overhead of full OS virtualization, you can take take advantages of the economies of scale without that overhead. Which is just awesome. And the 60% average utilization? Also amazing. It’s just about the perfect number: high enough that your servers aren’t twiddling their thumbs, but low enough that any one server should be able to handle a sudden spike.

I’ve been kind of excited about this idea all day, although I can’t really think of a scenario that I could apply the concept to. MIT’s infrastructure is too heterogenous in terms of both hardware and operating system to benefit, and all of the servers I maintain for SIPB are too specialized, or too heavily used already to benefit, or are run services that are un-migratable – or some combination thereof.

But it’s fun to think about what a system like that would take to implement – you’d have to be sure to never assume that a service lived on a fixed IP address. How often do you re-balance services? Unfortunately, I was a little too busy dragging my jaw across the floor to actually ask any interesting questions while Duncan was there.

Anyway, that was my exciting tech story for today.

Wireless Bootloading

January 28th, 2009 @ 3:14 pm UTC by evan

I've been meaning to come up with a way to flash microcontrollers over the air for a while – almost even had a use for it for a project recently. This is an awesome trick, and it looks like they did a good job of making it robust, too.

Spam, Eggs, Bacon, Sausage, and Spam

January 14th, 2009 @ 12:01 pm UTC by evan

Last year I taught SIPB’s IAP Introduction to Python class. It was a really good experience, so I decided to do it again this year, and last night was the first class. But with Mystery Hunt coming up and other things having my focus, I didn’t really start prepping for the class until the day of.

Apparently Python is trendy these days! I was in a room that seats 65 or so people, and there were lots of people sitting in the aisles.

In spite of being somewhat intimidated by the large audience, and struggling to hit my stride during the beginning of the talk, I think I did a much better job this year once I actually started covering linguistic constructs. In spite of not spending a lot of time preparing this year, I had good notes for the first lecture from last year. But more importantly, I felt like I knew Python better, which really made the difference. I thought that my discussion was more focused, more concise, and more clear.

The room was an impressive mix of skill levels – several people who had never programmed and a few people who had clearly been doing it for years. Both groups asked very good questions as well.

Hopefully I’ll get to spend more time preparing for the next class, because my notes from last year get worse as I get further into the class.

Culinary Accomplishments

January 12th, 2009 @ 1:42 am UTC by evan

Two accomplishments for today:

First, I made tortilla soup for dinner, using Mom’s recipe. It turned out really well, although it was very, very filling.

Second, for the first time, I actually made something that could be said to resemble latte art. Ever since I got a cappuccino machine at the apartment, I’ve been trying to pour latte art, and I finally pulled it off tonight. It looked very similar to this random image I found on the internet, although the leaves were curling around the edge of the cup, and there weren’t quite as many of them.

Unfortunately, I didn’t take a picture. It was on the first cup of coffee I made tonight, and I was convinced that I could do it again, only better – a few more leaves, a little more bunched together. Of course, the other two cups were nowhere close. Maybe next time?

Hmm…it’s cold out. Also snow…

January 10th, 2009 @ 10:05 pm UTC by evan

Hmm…it’s cold out. Also snowing. Maybe I should head home soon

Sourcing Information

January 9th, 2009 @ 6:44 pm UTC by evan

I’ve been having a fun time with the idea of pulling information from other sources into my website, and I think this morning I was able to put together a toolkit that makes it fairly easy going forward.

Just about all of the information sources I might want to pull from provide RSS feeds, so I started looking at Yahoo Pipes as a way to filter, adjust, and otherwise correct feeds before they’re published here. It turns out that Pipes is far more powerful than I expected, and it’s fun to use, too. It does have the same kind of feel as piping data through a bunch of Unix commands, but it also has a bit of a functional programming feel to it too (although I tend to regard anything that has map and reduce as functional-like).

In any case, my first creation is a pipe to process an RSS feed from github. I use github as a hosting service for open source or otherwise public source code that I’m working on, assuming that I’m the one that gets to make that decision.

I decided that including all events from github would be a bit overwhelming, so instead I’m only showing events where I push local changes that I have. I then re-write the title of the post to be a little shorter. You can see the pipe at http://pipes.yahoo.com/ebroder/githubpush. I’ve generalized it a bit so that you can substitute any username.

Finally, to pull in the result of the output from Yahoo Pipes, I use WP-o-Matic to pull the RSS entries into here.

I’m looking forward to poking at some other sites with Yahoo Pipes and seeing how much I can collate into this site.

Oh – a few other details. First, I’m categorizing all entries based on their source. So far, that means “posts”, “github”, or “twitter”. If you only want to see original content on this site, just go to the posts category page.

Second, with the new evil plan to write more, but also restrict access more, it doesn’t make sense any more to crosspost all of my entries publically to LiveJournal. LJ folks, you’ll just have to deal with visiting a site outside your little circle.

Excited about the Palm Prē – …

January 9th, 2009 @ 2:56 am UTC by evan

Excited about the Palm Prē – I can finally get a new phone now!

Back Again

January 8th, 2009 @ 9:30 pm UTC by evan

Well, here goes round…3? I think it’s 3.

I’ve been meaning to bring the site back together for a while – especially after I stopped blogging for MIT Admissions. (If you weren’t paying attention, I spent August 2007-August 2008 blogging for the MIT Admissions office. I dropped it because, well, I couldn’t keep it up to date. Go figure).

But I’ve been thinking a lot recently. Here’s what I realized:

First, I hate paying for hosting, and I hate shared hosting, which means that I was totally getting the short end of the stick with the last host. Instead, I’m moving the site to a server at school, where I have total control over the whole thing. It’s much easier to work with.

Second, I’m not actually comfortable exposing my entire life to the entire world. A large part of why I wouldn’t post is because I had no mechanism to restrict who can see it. I’ve fixed that now. Anyone can sign-up for an account on ebroder.net, and the site is also an OpenID consumer, so you can use your auth.mit.edu, Livejournal, Launchpad, Sourceforge, or other OpenID identity to sign in and create an account. I encourage everyone to do that; I expect that a lot of my posts won’t be readable unless you’re logged in.

Third, there’s a trend of spreading out information and life updates on the web. Between Twitter, Flickr, Facebook, etc., a personal website is no longer the source of everything. (Zeldman seems to have noticed this early on, and I’m basing a lot of my implementation goals on Dave Shea’s description of changes to his site).

It may be a little optimistic of me to think that I’ve been generating content, and it just hasn’t been making it to this site, but I’m still going to try to build a website that can adapt to that. You may have noticed that all of my Twitter posts have been copied over. I may try to change that in the future to only include posts with a certain tag or something like that, but this seems like a reasonable start. I may also try to pull in other sources like Flickr (not that I’ve posted any photos in the last few years).

So anyway, welcome back to the new ebroder.net. Maybe it won’t die this time.

I could go for a cup of coffee…

January 6th, 2009 @ 5:36 pm UTC by evan

I could go for a cup of coffee right now…

Incredibly and inexplicably ti…

January 4th, 2009 @ 6:33 pm UTC by evan

Incredibly and inexplicably tired