An Array of Hope

The very elusive nerd & politics reference, not easy to do....

Thank you Google

For those of us who use Gmail like its the antidote I was happy to see this announcement which is that in Google Labs there is a new feature to add a Calendar and Docs window to the main Gmail screen. Brilliant! After reading one of their older posts about right-side labels and chat I got the sense that some work was going to get done which would allow users to better utilize the space on the screen that many of us look at quite often per day. There tends to be quite a bit of hoopla about some of the more "interesting" features that Google releases (e.g. Google Goggles), but its features like these that really make people appreciate the service that you provide.

I am also glad to see that Google is taking a hard stance on the cloud downtime complaints and fears. This is one of those fears that is continuously bring up when you talk about cloud services. It will be interesting to see what sort of response this gets, I suspect plenty of people out there are going to be investigating.

Why is a cloud OS necessary?

      Ever since Ballmer announced that Microsoft is going to release a cloud operating system I have seen the same question posted over and over again, “Why do we need another operating system for the cloud?” The answer is simple, you dont, Microsoft does. The “Azure” operating system was designed by Microsoft specifically for running in the cloud. The OS is not made for people accessing the cloud, instead it is made specifically for running on servers inside of Microsoft datacenters. Will the OS be made available outside of the data center? For all intensive purposes, no. If it is made available it will likely be limited to use by developers and companies specifically for creating and testing applications which will run in the cloud, and for installing on some corporate servers so they can have seamless integration between their in-house servers and the Microsoft cloud. For example, say a company has a small server farm which they run to host their web application. If they were to run that application on servers running Azure, in the case that their application gets very popular and their servers become overloaded they could send some of the excess traffic to the Azure platform as opposed to become completely Slashdotted into submission. By keeping the operating system consistent it will ensure completely seamless transition between the two as well as an actual test-bed to run applications on before putting them on the platform.
      Seeing as how questions come in packs, the immediate follow up to this is, “isn't there already Windows Server 2008? What wrong with that?” Yes, both operating systems are designed to run on servers, but by making an OS specific to the cloud there are quite a few optimizations which can be made to get even more performance out of the machines. In the case of Azure it is definitely going to be run as a virtual machine inside the data center much in the same way that Linux/Windows images are virtualized on EC2. Virtualization is really the key to making the cloud possible. It allows multiple OS instances to run on the same physical machine while encapsulating them from each other. That way one VM cant mess with anothers data or processes. Also, when someone is done with their VM, they simply replace it with a clean VM image and its as if they were never there. On EC2 they run up to four VMs per machine, I highly suspect that by trimming down their server OS they will be able to get a lot more VMs running reasonably on a single physical machine (I wont speculate as to the exact number, but I think that number will be at least double digits, maybe more?). Keep in mind that as opposed to EC2 where users have direct access to the OS, on the Azure platform users wont have direct access to the operating system. Therefore Microsoft can toy with the number of VMs to figure out the optimal number to run on their servers.
      So in summary, the new OS is not absolutely necessary, they probably could have done it on Server 2008. But, given the scale they are shooting for, and the amount of optimization they can achieve by making a specific OS it is no real surprise they made a new version specifically for this function.

What Microsoft "Azure" really is...

      This morning I awoke to some very interesting news, straight from the get-go of PDC, Microsoft announced "Azure." I was very much interested in what exactly this service is, what it does, etc. so started reading some of the news stories about it, wow, people are confused. I partially blame Microsoft for clearly not giving people a good enough idea about what exactly Azure does and does not do. At the same time I also blame journalists who dont seem to really know whats going on (yet dont seem to mind). What is really going on? Lets talk about it.

      Today, at PDC, Microsoft announced Azure, its cloud computing platform. Just so it is clear, Azure is also the name of the operating system that the Azure platform will run on (previously dubbed Windows Cloud by Ballmer). I will address the "Why does the cloud need another OS" question in the next post, for now lets just stick to the platform. For those of you unfamiliar with the cloud, it effectively breaks down into three different levels of services which can be provided (see this Tim O'Rielly article for a full definition of the three layers). Azure falls into the platform layer, which is the middle of the three layer hierarchy. As the title suggests, this layer provides a “platform” which developers can utilize to write and run their application. For example, lets say that I want to create a web application which allows users to input their contacts and access them from anywhere. If I were to do this using a framework like Rails (with Ruby) or Django (with Python) then after designing the application itself, I would also have to set up a database which would be used by the application to store the data like user login information and the actual contacts themselves. Using the platform layer, instead of running a database myself, they (the service provider) run the database for me, and I just access it though the provided interface. I still determine what tables I want, how I want them to be laid out, its just that instead of actually writing the SELECT statement, I call a SELECT method. It is up to the provider to figure out how they should host the database and make it scale. Similarly, I as the user dont have to set up the platform and the underlying operating system, this is handled by the provider, note how this is different from the infrastructure services (a la Amazon EC2). Basically, I would write the contact application, making sure that the database interaction would go through their API, once I'm done (with this release) I then hand it over to the provider. It is up to them to figure out how to deploy it and scale it up and down as necessary. Again, very different from EC2 which requires the user to determine how to deploy it and manually scale up and down the number of machines (or use a third-party service like RightScale).
      Ok, now that you have a better understanding of what a platform and platform service is, it should be clear that Azure's main competitor is Google App Engine. Many people will lump Azure and Google App Engine together with EC2 but in fact they provide very different levels of service. Think about it in terms of a car. Amazon EC2 is really the infrastructure, its as if someone gave you the frame of a car, it is up to you as the car-builder to find the appropriate engine, tires, and seats depending on what you intend on doing with it (drive on the freeway vs entering in a monster truck rally). With platform services its as if you were given the frame of the car, with the engine, and tires already installed (and you cant remove them). The key parts of the car are there, its up to you to put in things like the seats and gas in. Notice however that you dont have a choice on what engine and tires were provided, so they may fit your needs, but they may not. You have less control of the infrastructure in the sense that it is provided for you and you cant change it, but you also save yourself the complexity of having to figure out what engine would fit in your car, how many cylinders etc.

Got it?

Shameless Windows Vista bashing

      So for the millionth time I somehow find myself reading a Vista bash article (this one) and once again THEY GOT IT WRONG. Just to be clear, it is supposedly an article about Windows 7, which apparently implies that it is a forum to bash Vista. The more articles I read the less I respect online tech journalism, but I digress. So a quick summary of the arguments presented against Vista:
      1.Incompatibility was and still is an issue, albeit the tip of the iceberg
      2.UAC is annoying
      3.Vista is bloated
      4.Vista tried to hard to be pretty
      I suspect that if have read other articles about Vista you have probably seen some combination of this complaints in the various other articles. This is by no means groundbreaking stuff, in fact I'd bet I could probably find a few articles from 6 months or even a year ago that present just about the same argument. Even still, that doesn't prevent you from getting it wrong.
      Incompatibility was definitely a big issue when it came out, there is no getting around that. Basically, the second hardware vendors saw that Vista was getting a lukewarm reception they put Vista drivers a few notches lower on the list (aka they weren't going to do it, or at least quickly). Then, when some user goes to install their Brothers printer and it doesn't work they get mad. Is that Vistas fault, or the hardware vendors fault? No reason to point fingers, it just stinks for the end user. In either case, Vista post SP1 incompatibility is unlikely to be the issue. Sufficient time has elapsed for even the slowest of vendors to get Vista drivers out. If they have no done so already, I definitely put the blame on vendors, they have had long enough.
Good ol' UAC seems to be pissing a lot of people off, does this not strike you as odd? OS X and Linux have had the equivalent of UAC since their inception, but no one seems to complain about it there. Yes, UAC likely pops up a lot more often then you are used to in OS X and Linux, but in all reality, if it is popping up, it likely should be. People have become so accustomed to the pre-Vista Windows where nothing pops up to notify you that some terrible website is trying to put a Trojan on your system. Realistically that is just a poor model for security and is likely to result in a lot worse results (keeping a clean system) then the UAC model. It is a lot easier to prevent malware from installing, then it is trying to remove it once it has already been.
      I think when these writers think of Vista they get the image of the Micheline tire man running in their head. How exactly people determine that Vista is “bloated” is a very subjective process and in all likelihood does not imply that they have any actual knowledge of the underlying operating system. Much of this perception comes from people seeing the amount of RAM Vista uses by default compared to other OS's. Its hard not to make that association, but it simply is not valid in this case, not by default at least. Vista has a feature called SuperFetch which proactively puts often and recently used programs in RAM even before it is started by the user. Why? Its simple, if they guess what you are going to start and put it in RAM before you start it, start up time is drastically faster then it would be otherwise. So when someone looks at Vistas RAM usage and sees that it is using 2GB on start they are wondering “How is it using so much RAM? I haven't even started anything!” Chalk a lot of that usage up to SuperFetch, and hope that SuperFetch uses as much RAM as possible. Using RAM is GOOD, thats what its there for, and as long as SuperFetch gives it up when necessary all is well in Windows world.
      Even still, the Vista bloat argument continues. Consider this, when Macs changed from PPC to Intel hardware it was a HUGE change. It required a new OS, programs to be rewritten, and just about anything Apple related that was PPC became outdated. They effectively drew a line in the sand and said it stops here, anything older then this we are done with. What happened? People bought new Macs. Those left with PPC's were left to wither away out in the cold. This wasn't too terrible for those users since Mac users (and Apple users) in generally tend to be a lot more dedicated to the brand then most people are to just about anything. Lets say Microsoft employed this strategy with their next version of Windows (clearly they arent with Windows 7, but lets just say for the sake of argument). I don't think that any of us could imagine the amount of uproar such a decision would make. Even though Microsoft wouldn't be changing the hardware (they don't make their own hardware, Apple does), the software changes alone would bring about so much complaining we wont be able to hear ourselves think. The sheer amount of labor required to rewrite software for the new Windows would be enormous and an absolute nightmare. You think people are pissed about Vista, the amount of headache this would cause would make Vista seem like a blip on the radar. Based on the amount of people who use Windows, and the amount of software written for Windows it is going to be much more difficult for Microsoft to draw that line in the sand.
      Finally, there is always the claim that Vista is trying to be too much like OS X and be too pretty. Its no secret that Microsoft significantly dressed up Vista compared to it predecessors, and its hard to argue that Vista doesn't look better. Whether or not it is worth the resources it draws is a matter of preference. To me, it is. So Vista is trying to be too much like OS X? Really? Are we talking about specifics in the UI, because I don't see many. Your not going to see Windows with a “dock” any time soon (especially now since its patented), I cant see Windows using left side close and minimize buttons, or adopting the silver theme by default, so where is the copying? If you are simply making the case that they are trying to make Vista pretty, then you cant fault them for that, part of being a successful operating system is being pretty. Dont believe me, ask Linux? One of the big pushes in Linux over the past few years has been beautification, and it has paid off. Compare your distro of choice now to how it looked 2-3 years ago and you will see that it is likely a lot prettier, shinier, and slick overall. Linux demonstrates this case so beatifically, pretty is a very important part of being a good OS, like it or not.
      I suspect with Windows 7 hype continuing to build, more and more of these articles will be resurrected from the murky puddles they belonged in. Please, if you are going to make an argument about Vista being “sucky” think about it before you just regurgitate the arguments of others.