Saturday, July 26, 2008

Cloud Computing and High Availability

Last week, the fail whale, a concept that has become associated with the recurring Twitter service’s outages, swam across the north pacific and hit Amazon’s S3 service. I am talking about the already widely discussed outage of Amazon’s S3 service. It is fair to say, the services dependent on the Amazon’s S3 services – i.e. polvore.com – really felt the “business and user impact” of the outage. Did the users of those dependent services really care that those services were using Amazon’s S3 to save costs? Of course, they do not. The dependent services wrote apologizing blog entries, and never-ending debates of pros of cons of the cloud computing started yet again. But I won’t bore you with yet another synopsis on the outage.


UPDATE: Yesterday, Amazon did a great job of being transparent with the issue that caused the outage.


However, as a technology product leader, who also runs a software-as-a-service product at IBM, I am always faced with new challenges related to the shared application code based and more importantly, the shared application infrastructure. It is a no-brainer that specialized services (i.e. Amazon’s S3) always can do better job at lower costs than the individual internal IT services could do and cost. But at the same time, most people do forget to realize that the more clients the cloud-based services get, the more the impact will be felt during an outage. Therefore, with the increased usage of the service, the tolerance of a failure goes to zero, and uptime expectations go through the roof. Mathematically, we can represent it as: Cloud computing uptime expectations = number of clients x cost the service. Amazon’s S3 had an outage. But is that an anomaly? No. If your answer is yes, you have never run a large-scale system. However, the impact of the Amazon’s S3 service was unbearable to most of its clients. Again, please keep in mind, cloud-based storage means nothing to the users of FriendFeed, Twitter or Polyvore.com.


I am a big proponent of both infrastructure cloud computing services and software-as-a-service applications. However, this Amazon’s S3 outage got me thinking as how we as an industry could come-up with a solution. We know it does not matter how much redundancy a distributed cloud-based system has, some day, some thing does break. So, the obvious armchair architects’ solution of having redundancy of disks, servers, unbreakable distributed system design and other infrastructure elements just won’t avoid another outage.


I think one possible solution could be as the interoperability of the cloud-based infrastructure services. The concept is analogous to SMTP and POP protocols for the email-based services. Let’s take an example of online storage. Amazon S3 and participating competitors would agree on a standard API to retrieve and store data in the cloud. Users would select the service based on their criteria initially. S3 and its competitors could offer an “extra insurance” of redundant cloud storage feature at the time sign-up. With the feature, the users could choose the cloud of a competitor of the selected company as a “redundant” cloud in case the selected company’s cloud fails.


Now, this solution has not gone through any deep analysis and is more of a random thought. But I do wonder the other factors that could play into it. The companies would have to compete hard to keep the customers as they will be one click from switching to the competitor and perhaps making you the “redundant” cloud. Another factor could how someone would cost the service of being redundant? X% of the primary service and full charges during the failure of the primary provider? Also, what would the economical advantage for the companies that interoperate with each other versus the ones who don’t cooperate? Open source foundations – i.e. Apache Software – have pioneered the standardizations among a lot of locally installed software. Will we need a similar foundation to manage the cloud-based services interoperability?

Saturday, July 12, 2008

Public Companies and Wall Street

Since January, I have followed Microsoft’s Yahoo! acquisition proposal, and then withdrawn, and then semi-proposed [search only], and finally the ending of the discussion. And the last statement to come back to the deal table only if Carl Icahn is able to replace the Yahoo! board. In between all of this, Yahoo! lost most of its senior executives and executed another re-organization; the executives of the two companies issued conflicting statements, and blamed each other for tanking the discussion of a merger or partial acquisition.

In all of this, I have also concluded that that the Wall Street’s never ending desire to make as much money as possible [in short term] provoked discussions and actions that otherwise would have been much more civil, less controversial and could have resulted into a friendly good deal also.

So, I do wonder. Yes, we all want to make money. But would anyone be ok making money by selling his soul? In case of an Internet company, the soul of the company is its products and users of those products. If your CEO makes a statement that creating the shareholders value is the most part of his job, isn’t he putting the money before the soul – products and users? So, is Wall Street capitalism such a vicious spiral that the more you spin around it, the more you care about just money, and just ignore the products and users – who could make or break your business?

None of us will get to know the real stories of the meetings that happened between Microsoft and Yahoo!, but personally, I am just disappointed on how Yahoo!, Microsoft and Mr. Icahn have handled it. Microsoft approach made it hostile. Yahoo! has gone to the point of begging for the deal. And Mr. Icahn just wants to make money of the stock he has bought. In all of this, no one really cared about the product overlaps and resulting confused users.

Perhaps, the reality of the Wall Street capitalism is to torpedo the companies through its greedy approach of short term gains. And the system recovers itself as new companies come along and users move on. In the Internet, we have seen that happening to AOL, Excite and other early Web 1.0 portals. However, I do consider Yahoo! a bit different as it still does have the right talent to make it happen. At the same time, the recent departures of executives and the stories of technical employees leaving for greener pastures could make it difficult if too many people do end-up leaving. Microsoft, which still loses money in its Internet business unit, is not the right answer due to their vast cultural differences. And lastly, I still think, the companies are too deep in the vicious Wall Street stock price cycle to come out of it and make best possible decisions for the users and products.

When I started working 8 years ago, I always wanted to complete my project as early as possible to move to the next one. And that attitude resulted into some bad decisions that gave me life time lesson of “There is no short cut to success”. Therefore, I strongly believe that the involved technology companies, who are competing in this hyper competitive environment, can still bounce back and slowly become a very strong player. All it would take is the right leadership, technical talent, and maniacal focus on the long term aspects – products and users – over the Wall Street short term forces.

Saturday, July 5, 2008

PC Migration in the Internet 2.0 Era

Last week, my company’s 4-year “forceful” auto refresh program dispatched a ThinkPad T61 to replace my 4-year old ThinkPad T41. The company’s policy is 3-year refresh cycle but I was too lazy to ask for a new one in the last 12 months as I really didn’t want to go through the painful and time consuming migration process. Additionally, my ThinkPad T41 had had been very stable and durable, except when I spilt tea on it twice resulting into motherboard and keyboard replacements.

I was apprehensive of the migration because I thought it would be as painful and time consuming as my previous ones had been. Application re-installs (and who had all those CDs?), CD/DVD burning of my data, and re-configuration of so many programs. I was so dead wrong.

Here is it how it goes. As soon as I got my new PC, I dug up my text file of the “PC migration tasks” and started going through it.

My PC was already loaded with the corporate image containing all the security and office software so I crossed them out quickly. Also, 3 years ago, I migrated to the outside disk drive “continuous data protection” solution to backup all of the data from my user direction. The new ThinkPad immediately pulled the multiple GB of the data in just few minutes from the external disk drive over the USB 2.0 port. So, there was no need to burn the data CD. But the shocker for me was the no more need of the web bookmarks. I had stopped using del.icio.us bookmarks as I had started to browse the entire web through the Google Reader. And FireFox bookmarks were also not needed because my habits had changed. I just remembered every main website (yahoo.com, google.com, etc.) because I visited them everyday. And the rest of my web browsing was either through Web search or Google Reader search in case I wanted to visit an article I had either tagged or had in the back of my mind. So, this PC migration signaled the “death of web bookmarks” to me.

Thereafter, I went through the software installs on my PC. Out of that, I had stopped all of that because either they were programming tools (I transitioned to product management full time 4 years ago) or just desktop tools that were not needed in the era of Internet 2.0. I moved to the Quicken online in lieu of the installation, and had already uploaded my pictures to the Flickr in lieu of local software. I had stopped using the MSN, Yahoo or Google Talk as my company’s communication took place exclusively over Sametime. And I rarely found any time to do personal instant messaging. I preferred phone text messaging, voice calls (yes, my mom still wants to talk to me), twittering, Facebooking, and friendfeeding. I questioned myself. Do I really those IM clients? Not really but I still took few minutes to install them. Lastly, the most time consuming task was the migration of my lotus notes (yeah, we are mandated to use that) local connections and references to the team rooms over to the new PC.

Lastly, I had to install iTunes as there was no cloud-based version of that. I was disappointed more because Apple’s iTunes also didn’t allow me to download the songs from the iTunes cloud. I had to manually copy from the old PC. I did wonder as when we will see the iTunes to be in the cloud and allow us to just change PCs and de-authorize the old PC through the web. May be Apple needs some competitive pressure to work on it?

Now, if I was a programmer, my migration would have at least included a compiler / JDK installation and code editor like Eclipse. I doubt that compilers will go into the cloud but I do wonder if the local tools (i.e. Eclipse) would just be able to store the configuration of the workbench in the cloud and just retrieve it on the 2nd PC. May be they already do that as I don’t know as I don’t use the programming tools anymore.

All of the above took little over an hour (lotus notes took most of it) and I was ready with the new laptop. I immediately fired-up FireFox and was surfing the web.

So, going forward, I won’t be apprehensive of changing PCs. If my company moves the mail to the web and apple moves iTunes to the cloud, I would be 100% cloud-computing (my local external drive is part of that cloud) compatible.