CloudFusion has become the AWS SDK for PHP!

CloudFusion has become the official AWS SDK for PHP! All of the work that has gone into the project code-named CloudFusion 3.0 is now available to the world as AWS SDK for PHP 1.0.

(This is a list of Probably Asked Questions, and will be updated over time as more questions are actually asked.)

Code for Amazon Product Advertising API, Eucalyptus, Google Storage, and other API-compatible services can be found on GitHub. Discussion happens at Google Groups. A migration guide is available for those migrating to the AWS SDK for PHP. The AWS SDK for PHP is on GitHub and has a PEAR channel.

How did this happen?

In March 2010, I joined Amazon to use my experience building AWS-related libraries to help improve the official AWS library support for PHP.

Instead of having to balance both a full-time job and a part-time job while trying to squeeze in CloudFusion development wherever I could, I’m now able to focus exclusively on spending the kind of time and effort improving the software and experience that I’ve wanted to for a long time. With the resources that Amazon has been able to offer, I’ve been able to make tremendous strides in improving nearly every aspect of the project.

What does the AWS SDK support?

The official AWS SDK for PHP supports the infrastructure-related services, including:

My goal is to support all infrastructure-related services as soon as humanly possible.

Wait, what’s up with the Product Advertising API?

The goal for the AWS SDK for PHP will be to support the AWS infrastructure services. Support for the Product Advertising API will not be in the core AWS SDK for PHP, but will continue to exist as a module offered by WarpShare (Foleeo Inc.) and made available via the existing CloudFusion repository. If you’re interested in getting involved with maintaining support for the Product Advertising API in CloudFusion, please get in touch.

So, how does this affect CloudFusion?

Rather than maintaining separate, fragmented libraries and separate code paths, all my effort on the AWS infrastructure services will go into the AWS SDK for PHP.

CloudFusion will continue to exist as an open project.

Third-party Clouds

From the very beginning, I designed CloudFusion to be incredibly modular. It’s very easy to build new services on top of CloudFusion’s foundation (that is now at the core of the official SDK).

Some CloudFusion users have expressed interest in adding support for third-party clouds such as Google Storage, M/DB, and OpenStack. Classes for Eucalyptus/Walrus have already been contributed. If support for additional services ever materializes, they will make their way into CloudFusion (as modules).

Will this be a drop-in replacement for existing CloudFusion 2.5 users?

Mostly, but not entirely. The oldest code in CloudFusion is more than 3 years old. CloudFusion grew very organically in the early days, and some of the APIs had gotten out-of-sync between services. Because of this, I decided that now was a good time to fix the inconsistencies in the API. Unfortunately this led to some backwards-incompatibility. (A migration guide from CloudFusion 2.5 to AWS SDK for PHP 1.0 is available for folks who are upgrading.)

Weren’t you going to do a CloudFusion 2.6 release?

Yes, but there had been more backwards-incompatible changes in this release than I was comfortable with for a 2.x point-release. See my answer to “Will this be a drop-in replacement for existing CloudFusion 2.5 users?”

What’s happening to the CloudFusion GitHub account and CloudFusion mailing list?

The GitHub account and mailing list will continue to operate as they always have, however their focuses will change to support the Product Advertising API and any contributions to support third-party clouds. That said, I’m not planning to leave the mailing list, so if you have a question, feel free to post there if you really want to.

Bug reports and feature requests for the remaining CloudFusion code should continue to be posted to the Google Code issue tracker (as they are today), and patches should be submitted as GitHub pull requests (as they are today).

How can I contribute or submit bug/feature requests to the official SDK?

If you’d like to contribute, you must first sign the Amazon Contributor License Agreement (CLA) and send it over to us — then we can accept your GitHub pull request.

Minor bug fixes or code changes can also just be posted to the PHP Development Forum. More information about contributing to the AWS SDK for PHP will be coming shortly.

Bug reports, feature requests, contributions, patches and questions should (ideally) be submitted to the right GitHub accounts. The division of bug fixes and support breaks down like this:

AWS SDK for PHP

Service Location
Amazon CloudFront services/cloudfront.class.php
Amazon CloudWatch services/cloudwatch.class.php
Amazon EC2 services/ec2.class.php
Amazon IAM services/iam.class.php
Amazon S3 services/s3.class.php
Amazon SimpleDB services/sdb.class.php
Amazon SNS services/sns.class.php
Amazon SQS services/sqs.class.php

CloudFusion

Service Location
Amazon Product Advertising API services/pas.class.php
Google Storage extensions/googlestorage.class.php
Eucalyptus extensions/eucalyptus.class.php
Walrus extensions/walrus.class.php

Has licensing changed?

The details are thoroughly spelled out in the NOTICE.md file, but the short version is that pre-existing CloudFusion code is BSD-licensed, and new Amazon code is Apache 2.0-licensed. While both are commonly referred to as do-whatever-you-want licenses, the Apache 2.0 license has clearer language around how contributions are allowed to be used by the original project.

All new contributions to the project will also be Apache 2.0-licensed.

More questions?

Feel free to ask me!