Nirvana in the cloud world, as in the ability to easily move from cloud service to cloud service without vendor lock-in, might be on its way for application developers.
Tackling portability issues in cloud deployments, Zend Technologies, backed by heavyweights IBM and Microsoft, is launching an open source project Tuesday to provide an API for developers to implement cloud services amongst multiple platforms.
[ InfoWorld's David Linthicum reveals the truth about lock-in and cloud computing. | Find out what's different about developing apps for the cloud. ]
The Simple API for Cloud Application Services project, or Simple Cloud API, is intended to let developers use common application services in the cloud and access value-added features from individual providers, said Zend, which is best known as a provider of tools for PHP application development. Developers would be able to build cloud applications accessing all major cloud platforms. IBM, Microsoft, Nirvanix, Rackspace, and GoGrid serve as co-founding contributors to the community project. Cloud leader Amazon Web Services is among the platforms supported, although Amazon is not now a participant in the effort.
"What the simple Cloud API does is offer one API, one API with interfaces to these different kinds of services so that you only have to write your application to this API and you can deploy across these services with just configuration changes," and move to different clouds, said Wil Sinclair, cloud strategist for Zend.
Initially functioning with PHP, the API was designed for translation to any object-oriented language for the Web, Zend said. "We have talked with people in Java, Python, and the Perl community and they're interested in collaborating," to support the API in these languages, Sinclair said.
Initial deliverables include interfaces for file storage, document databases, and simple queue services from platforms like Amazon Web Services, Windows Azure, Nirvanix Storage Delivery Network, and Rackspace Cloud Files. Developers can deploy applications accessing services in these environments without having to make changes to source code.
Future services might be supported such as mail or authentication, said Dirk Nicol, director of emerging technology at IBM.
"What we'll do is we'll launch this [project] with some early code for the community so they understand the concept and from there, they will take it to the next level," Nicol said.
The PHP implementation of Simple Cloud API will be available as a component in the open source Zend Framework, to be called Zend Cloud. PHP developers can use the component to access existing libraries in the framework.
Industry observers offered varied perspectives on Simple Cloud API, citing similarity to ODBC database technology and noting an application orientation.
"What they are doing is something like ODBC/JDBC for cloud services," said David Linthicum, author of InfoWorld's Cloud Computing blog.
"Considering that most cloud APIs are Web services, thus leverage standard interfaces, I'm not sure what this is buying you. Perhaps just another abstraction layer between the native cloud service and your applications," Linthicum said.
"I'm not sure the intention moves beyond the application-level, so it's not a 'cloud-to-metal' lock-in avoidance system," said analyst Michael Cote, of RedMonk. "That said, what they're doing here is starting up a project to make a common set of cloud-related APIs for applications to use."
Zend is encouraging contributions to the project from the open source community, with a goal of generating Simple Cloud API adapters for virtually all major cloud providers. Zend plans to provide adapters for local services to make it easy to do offline coding and test against cloud services.
Zend Cloud adapters will be available for such services as:
- File storage services, including Windows Azure blogs, Rackspace Cloud Files, Nirvanix Storage Network, and Amazon 3
- Document storage services, such as Windows Azure tables and Amazon SimpleDB
- Simple queue services, including Amazon SQS and Windows Azure queues
Adapters such as those for Rackspace Cloud Files API will work with external libraries and not require changes to application code. Microsoft will contribute Simple Cloud API adapters and PHP client libraries for Windows Azure storage to future versions of Zend Framework, Zend said.
With these adapters, applications can leverage Azure features through the Simple Cloud API interface. Microsoft client libraries will enable developers to utilize Azure capabilities such as transaction and partial upload support.
IBM plans to contribute adapters for IBM cloud services and IBM's data storage products. This will let developers switch between public and private clouds and traditional data center environments, according to Zend.
Microsoft's participation is part of an effort to encourage PHP developers to target the Azure cloud, said Vijay Rajapalan, principle architect for the Microsoft interoperability team. He noted the current implementation of Simple Cloud API is PHP-specific.
Although Amazon has not committed to supporting Simple Cloud API, Amazon's cloud is being supported through community contributions, Sinclair said. Discussions are ongoing with Amazon, he said.
An initial Simple Cloud API proposal and reference implementation is available at the company's Web page. Developers can evaluate the API by deploying applications that use it on the Amazon cloud using the free Zend Server Community Edition Amazon Machine Image (AMI) for EC2. A commercially supported Zend Server AMI also is being offered.
A technology preview of PHP client libraries for Windows Azure is downloadable.
Zend anticipates revenue-generating opportunities from the API through selling support services for Zend Framework and boosting opportunities for its other products.