pascaldevink's posterous http://pascaldevink.posterous.com Most recent posts at pascaldevink's posterous posterous.com Thu, 16 Jun 2011 06:49:32 -0700 Trying out Orchestra http://pascaldevink.posterous.com/trying-out-orchestra http://pascaldevink.posterous.com/trying-out-orchestra

At DPC11 I learned about the existence of Orchestra, a cloud service for elastic PHP applications. The service is mostly comparable to Google and its App Engine, but for PHP. Orchestra also took a nice approach to the deployment and supported services: easy deployment using subversion or git (optionally with github) and support for MySQL, MongoDB, memcached, couchDB, Amazon RDS and automated jobs (like cron jobs).

Testing Orchestra

Today, I had some time to actually test Orchestra. I created an account at http://www.orchestra.io and created a new (free) application. I proceeded with entering the name for my new application and the location at github. The first thing I noticed here is that it immediately tries to deploy the app. This is nice, but it doesn't display any kind of progress, so with a larger project, you could be looking and a spinning wheel for quite a while.

Deprecation warnings

After deploying my test app, it was time to take a look at the fruits of my labors. I immediately got a deprecation warning about 'Call-time pass-by-reference has been deprecated'. I indeed had passed a reference at call time in my code, so that wasn't the thing that shocked me. What shocked me was that Orchestra was using PHP 5.3.6, the latest and greatest! This is not something you often see in hosting environments.

I had read about how easy Orchestra made it to deploy new versions of your application: you don't have to do anything! Orchestra monitors the repository and automaticly updates after each commit. This works very well in theory, as it is effortless. In practice however, this has some minor downsides:
- There are no status updates. Orchestra doesn't let you know when it last updated or if it is currently updating.
- Your source code is also your final build. This means that it's not possible to have a build script which minifies javascript and css and replaces configs for you. You'll need an elaborate system if you want this.

Configuration

 Once I fixed the application, it was time to add a database. I selected the MySQL and PHP Error Log addons. This gave me the option to create a new database for the application. The creation was done instantly and Orchestra provides a PHPMyAdmin interface to administer the database.

There, another problem rose. I developed on my machine locally and had a database installed on it. I had my database configuration centralized, but since I was unable to 'build' my app before deployment, I had to come up with a system to automatically select the proper database. See this gist for the solution I choose. 

Conclusion

Orchestra is a great initiative and it is very usable in its current form, especially for a free service. Orchestra provides support for PHP applications without any fuss and without a requirement for an SDK (unlike Google and Microsoft for example). Unfortunately, it still has some sharp etches, like the deployment status and the fact that not all addons are enabled yet. Also, the PHP Error Log addon doesn't seem to work (perhaps just not on free apps).

All-in-all, I don't think Orchestra is enterprise-ready yet, but it is definitely a very promising platform and I'm going to check it again.

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1249322/91b5dcecd06020f835534512eee654c8.jpeg http://posterous.com/users/heNYfUipKFpzQ Pascal de Vink pascaldevink Pascal de Vink