There is this epic debate about the co-existence of cloud computing and open source software. Some as Richard Stallman, GNU Founder warn that “Cloud computing is a trap because Web-based programs will force people to buy into locked, proprietary systems that will cost more and more overtime”.
Others have said – including Tim O’Reilly, founder of O’Reilly Media and supporter of free and open software movements – that “open source doesn’t matter in the cloud because that once your computing workloads are hosted on a remote service, the most important things to the customer are reliability, uptime, scalability, interoperability and manageability – not whether or not the cloud software is based on open source”.
Most open source licenses, including GPL are mainly concentrated on software copying or conveying issues, clearly not applicable to the Cloud and SaaS model where software is used as a service. Even modified for the Cloud, licenses such as GNU Affero GPL License, which is designed to close a perceived application service provider “loophole” (the “ASP loophole”) in the ordinary GPL, do not, in essence, cover the free distribution of a “network server software” between server operators and server users. As a matter of fact, a Cloud Service Provider (CSP) required to publish the application code for a SaaS distributed software covered by the Affero GPL License, is not obliged to publish the Cloud software that he uses to provide the service (either an open source GPL licensed, or a proprietary closed software).
On the other hand, Cloud Computing and Open Source share common goals in minimizing costs by not paying license fees. It is generally accepted that without open software, cloud computing would not be able to grow as rapidly. Today most cloud vendors utilize open software to develop their systems such as Red Hat for Cloud Operating System and Infrastructure, Eycalyptous and Openstack for Infrastructure as a Service implementation, The Cloudera for open source Hadoop software framework, The OpenNebula for Open Source VM Manager The Xen Supervisor for Server virtualization Management, Cloud Foundry and OpenShift for Open Platform as a Service, etc.
To redefine the relationship between open software and cloud computing, one would have to pay homage to the soul of the open source movement. On the technical front, this means respecting the “open” philosophy that deals with software quality and evolution, while on the social/cultural aspect the “free” spirit with the “liberating” meaning of the word has to be maintained.
These two philosophies of the open source movement are represented by the Open Source Initiative (OSI) and the Free Software Foundation (FSF). According to their definitions, the user of free software should enjoy the following four freedoms:
- The freedom to run the program for any purpose
- The freedom to have access and study the source code
- The freedom to redistribute copies or modified copies of the software
For conventional applications, the meaning of freedom is applied only to the actual software that the end-user is running since the data and infrastructure on which the software runs belong to the user. In contrast, for applications on the cloud the end user relies on unreplicable software and infrastructure supplied by the cloud vendor. In this case, data are most likely stored in a “multitenant environment” and coexist with data from other users (such as other companies, etc), within the same physical device or the same database.
Thus for the end-user, it makes practically no difference even if a software is protected by an open/free license because:
- The user cannot replicate the whole cloud functionality simply by copying and installing the software.
- The user is not interested to copy the software since he has not paid any license fees, and theoretically has the freedom to stop his subscription and choose another provider.
Logically free software is useful to the cloud service provider/manager who utilizes the software in its conventional form and not to end-user of the cloud service. In the cloud, the end-user should have the freedom to:
- Adapt the service to his needs.
- Stop using the service.
- To replace an older cloud service with another, or to transfer to a private cloud, or to choose to migrate off the cloud to an on-premise solution.
- To transfer his personal or enterprise data or metadata where he wants.
- To transfer the data interrelations and their design (social data).
To parallel this to a physical relocation scenario, a user-citizen could move to another city or state, maintaining all this personal-company data while also keeping intact all his personal and social relationships (family, friends, acquaintances, etc). This implies a similar freedom in the cloud as one would have in everyday life where we have the freedom to move, change jobs, etc. Of course, because there is no user license that covers such freedom of action each user must carefully review the provided SLA and realize the granted rights and freedoms. If the SLA of a service is not specifically referring to the transfer capabilities of the whole service and “open data”, then, in essence, a user is locked-in with the specific service provider.
Various groups, expressing interesting points of view, try to deal with these cloud issues and contribute to the effort to establish standards. No organization, with similar to the FSF standards, has been established to this date that provides a widely accepted definition an open/free cloud but many open cloud groups have been created.
Opencloudmanifesto.org examine the five main challenges for cloud computing, security, data and application interoperability, data and application portability, governance and management, metering and monitoring.
Open Cloud Computing Interface (OCCI) aim is the development of an open specification and API for cloud offerings cloud computing interoperability forum which is an open community promoting the standardization of cloud computing technologies.
DMTF Cloud Management Working Group has developed the Cloud Infrastructure Management Interface (CIMI) work-in-progress specifications to help improve cloud management interoperability.
Open Software Service Definition (OSSD) states that open software service is one:
- Whose data is open as defined by the open definition with the exception that where the data is personal in nature the data need only be made available to the user (i.e. the owner of that account).
- Whose source code is Free/Open Source Software (that is available under a license in the OSI or FSF approved list), and made available to the users of the service.
It is apparent that with the rapid in-progress evolution of the Cloud the meaning of Open Free Cloud software will increasingly challenge the user, technical, scientific, and legal community.