The Clouderati are still busy debating whether open source has any relevance in the cloud based world. This video is one such debate which you might be interested in watching. As I have told in the past, there are two schools of thoughts. One, lead by folks like Tim O’ Reilly, advocate the importance of open architecture, open formats, etc. over licensing and there are others who insist that open source is equally important. Even though open source, by itself, cannot prevent vendor lock-in in some cases, it is equally important in ensuring an open federated cloud ecosystem. In fact, I would even argue that open source is extremely important in accelerating the evolution of the open federated cloud ecosystem which some of us are fantasizing. Having said that I am going to take an example of an open source software and argue that it plays a significant role in creating an interoperable cloud ecosystem.
Last week during the Google I/O event, Google announced Google Storage for Developers, a RESTful storage service for developers to store their data on the highly replicated Google infrastructure. In addition they also announced an open source command-line tool to store, share and manage data, called gsutil.
Using this RESTful API, developers can easily connect their applications to fast, reliable storage replicated across several US data centers. The service offers multiple authentication methods, SSL support and convenient access controls for sharing with individuals and groups. It is highly scalable – supporting read-after-write data consistency, objects of hundreds of gigabytes in size per request, and a domain-scoped namespace. In addition, developers can manage their storage from a web-based interface and use GSUtil, an open-source command-line tool and library.
Apart from the impact of this announcement on the market and speculations about Google’s motives, there is something that is more interesting here and it has been highlighted by Mitch Garnaat in this blog post.
What was even cooler to me personally was that gsutil leverages boto for API-level communication with S3 and GS. In addition, Google engineers have extended boto with a higher-level abstraction of storage services that implements the URL-style identifiers. The command line tools are then built on top of this layer.As an open source developer, it is very satisfying when other developers use your code to do something interesting and this is certainly no exception.
With hardware under the complete control of proprietary vendors and the source code having less direct relevance when open source software is hosted on third party servers without any need to share back to the community, our expectations on the role of open source should also change. We cannot use our worldview from the desktop world and then argue that open source is irrelevant in a cloud based world. When there is a complete shift in how we use computing resources, then we should see open source’s role with a different kind of lens than the one we used during the desktop era. As seen in the above example of Google tapping into Boto project to develop gsutil, open source licensing of Boto was the main reason for Google to develop a software which will let users access files in Amazon S3, Google Storage or even your own storage system using an URL-style identifiers. What are the chances for Google to extend a proprietary tool available for Amazon services to work with their own thus leading to interoperability between Google and Amazon storage services. If you listen to Mitch Garnaat, it is possible to extend Boto to other storage services also. The fact that it is an open source tool makes it highly likely for someone with a need (itch) to extend Boto/gsutils to other services in the future. With a proprietary license, there is no chance for a developer with a need to extend a tool to meet his/her needs.
In short, open source still is important even in the cloud based world. In spite of all the arguments given against the relevance of open source by pundits, I don’t see it going anywhere. If anything, it only goes on to accelerate the trend towards an interoperable federated cloud ecosystem. Having said that, we need to see the role of open source from a completely different perspective than its role in the desktop dominated world.