14 December 2011

PHPFog and Pagoda Box: A Look at PHP Platforms

Cloud platforms such as Heroku, AppEngine, PHPFog and Pagoda Box are ideal for companies who just want to focus on providing applications without the distractions of infrastructure management. Both Pagoda and PHPFog are particularly suited to PHP-based applications using the LAMP stack

Platform as a Service (PaaS) is a cloud computing delivery model which enables companies to focus on business and development, leaving infrastructure management, life cycle management, etc. to service providers. Customers need not worry about installation and configuration of their environment, or its management and monitoring. Working with PaaS is also inherently agile.

Platform services like Heroku and AppEngine have been well-known for the last few years and many companies have been using them successfully in their business. They are more attractive to startups, due to low initial cost and smaller headaches involved in setup. 2011 was a great year for platform services, with the emergence of many platform services and a new trend for supporting multiple languages instead of supporting a single language. In fact, having support of multiple (but specific) languages will become a necessity for any Platform service. Companies such as Xeround go a little beyond this, and provide explicit support of Databases (Database as a Service or DBaaS). Here, I will go through two of the PHP platform services I have experimented with: PHPFog and Pagoda Box.

PHPFog

PHPFog are one of the leading services in the PHP platform landscape. They were founded in August 2010 and went public in May 2011, the first player in the PHP PaaS market to do so. They have provided a decent service since they started, and offer a free six month plan with 100 MB storage and 15GB bandwidth. You can have up to three applications running under this free plan. Their paid-for plans start from $29 per month.  PHPFog have added support for many other languages, including Ruby, Java, Nodejs, and more, through the AppFog platform. As a key contributor to the CloudFoundry ecosystem, they are looking forward to becoming a key player in the Platform service sector with multiple language support.

One of the cool feature of PHPFog is the support for one-click installation for many applications, such as WordPress, SugarCRM, and frameworks such as Zend, and CodeIgniter. This lets us easily create and launch applications within minutes. Pointing to a domain is also made very easy – simply give the domain name in the app dashboard and point a CNAME to the app. PHPFog uses Varnish in the cache layer and Nginx as load-balancer, which ensures very low response time. PHPFog is also an excellent resource center, from which you can get information about almost anything.

Although they are providing great services and features, there are some limitations as well, in the areas listed below.

Deployment
PHPFog only give git access to the application. Although this is enough for deployment, you won’t be able to connect through SSH or FTP. Though this is OK in many cases, it restricts you from creating cronjob and many other server side features.

Scaling
Currently, PHPFog don’t support auto-scaling. Apparently they are working on it and say they’ll be adding it shortly.

Monitoring
PHPFog don’t provide monitoring tools by default, but they’re tightly integrated with New Relic who provide world-wide monitoring and alerting. PHPFog give a free bronze account on New Relic to all paying customers on paid-for plans.

Caching
For caching, PHPFog basically use Varnish Cache, which can be controlled by setting appropriate headers. If you need to have memcached, you need to set it up in AWS’ Eastern region. PHPFog recommends using Eastern region for minimizing the data transfer delay. If you set up Memcache in another region, it will increase the wait time substantially.

Database Management
PHPFog currently provide a shared database only, using popular web-based management tool PHPMyAdmin. If you need to have dedicated databases, you can set them up in RDS and use them for your application.

Pagoda Box

Pagoda Box is another player in PHP platform services, which went public very recently. Unlike most of the Platform services, they’re built on top of the SoftLayer cloud infrastructure.
Pagoda Box offer a free account with 200mb RAM for free. You need to pay only when you need additional resources. They also provide a free 10MB MySQL cloud database. When compared with PHPFog’s ‘Silver Cloud’, with 610 MB ram and 2 burst ECUs, this is a bit costly.

One of the most attractive looking features of Pagoda Box is the dashboard analytics. You can see the details of requests processed, average time taken for requests, etc., but the feature was not functioning when I wrote this article.

Deployment
Pagoda Box also use git for deployments. To deploy your latest changes, all you need to do is push the changes to Pagoda Box. You can switch between branches and deploy any commits from the dashboard – it’s a really cool and useful feature. Application configurations are stored in ‘Boxfiles’, located at the base of git repo. When you deploy an application it will read the Boxfiles and make necessary changes.

Scaling
For scaling a Pagoda Box app, you can add more resources from the dashboard. You can add more instances and workers, increase the RAM (which is not there in AWS), and so on. Pagoda Box provides writable storage shared among the instances to keep sessions and logs.

Database Management
You can create databases from the dashboard. As mentioned, you get a 10MB RAM database server free with an App, but this is absolutely insufficient. You’ll have to increase the RAM for running applications in production. Managing databases is done by creating a tunnel from your local machine then connecting to it using any MySQL client.

Caching
Pagoda Box currently supports memcached and will be adding redis soon. Since I haven’t been able to check this feature yet, I can’t say how effective it is.

Summary
There are many other services such as DotCloud, Red Hat OpenShift, Zend phpcloud, and Orchestra.io, that can be discussed here, but I feel that these two are particularly comparable and both are publicly available now. Comparing two services on the basis of some ‘Hello World’ experience (or a little beyond) isn’t really representative, though. Real comparison must be done against the reliability and cost-effectiveness of the service. PHPFog and Pagoda Box are providing good services, though they differ in the way they do it. Both have simple-to-use interfaces and can easily deploy and scale applications. So far my experience with both was pleasant and I got quick responses to any issues and queries. Pagoda Box’s choice to use SoftLayer cloud as the infrastructure was interesting for me – we shouldn’t put only AWS in the picture – though for some users it may raise interoperability issues when it comes to scaling options. Still, the question “which one is the best?” depends on your goals and requirements.

Keep up to date with Simple-Talk

For more articles like this delivered fortnightly, sign up to the Simple-Talk newsletter

This post has been viewed 22166 times – thanks for reading.

  • Rate
    [Total: 0    Average: 0/5]
  • Share

Shameer

View all articles by Shameer

Related articles

Also in Cloud

In Search of the Cortana Analytics Suite

Cortana Analytics Suite is important and significant, but it is difficult to work out why or how from the existing 'information'. After more setbacks than Dr Livingstone, Bob Sheldon emerged from the jungle of marketing hyperbole triumphantly with a small diagram which explained it. Here he reveals the individual components, and finds them, in combination, to be a curiously interesting attempt to bring Big Data under contro… Read more

Also in Platform as a Service

Using Azure KeyVault with Node.js

Some of the most intractable problems of application design are concerned with how to store credentials for accessing sensitive application data, keys and, configuration settings in code. With Azure Key Vault you don't have to. You can, instead just authorise an application to access and use a Key Vault and perform operations that require authentication against a KeyVault. Christos Matskas shows how an application can interact with the service, using a node.JS application as an example.… Read more

Also in Platform as a Service

Azure SQL Database - How to choose the right service tier

So you've decided to use Azure SQL Database. You head for the portal and are suddenly faced with a number of questions. Sure, the choices you make have a number of repercussions, but what are they? You need a simple guide to get started… Read more
  • Satheesh

    Hi All,

    I just come across another cloud service http://www.gungoos.com/. It provides good stack of features.

    Cheeers!

  • Avery

    PHPFog’s paid plans have dedicated app servers, but sneaks in a “shared” database server, while Pagoda’s DB server, while expensive, is dedicated. Makes a big difference in scalability and reliability.

  • Scott

    Hey Shameer,

    Pagoda Box has rolled out a lot of new functionality since your article was first posted. Here’s a rundown of the releases with links to the announcements:

    Dedicated MySQL Databases: http://bit.ly/uSLJR1
    Deploy Hooks: http://bit.ly/yDqkf0
    Cron Jobs: http://bit.ly/xuHFYA
    SFTP Deployment aka Vintage Mode: http://bit.ly/y93IK3
    Redis: http://bit.ly/zDetoJ

    And there’s a lot more coming over the next few weeks. I’ll keep you posted.

  • Shameer

    Thanks for the comment. Though I’ve taken a look into phpCloud a while back it was too young to comment on it. I felt phpCloud is really promising and I will look into that once again soon.

  • brdesign

    Hey Shameer. Thanks for the art. Nice job. What do You think about phpCloud from Zend? Maybe You could add it to Your comparison? Cheeers!

  • Chad Keck

    Welcome. Shoot me an email with the address you used to register and I’ll get your account approved.

    chad (at) appfog.com

  • Shameer

    Hey Chad,
    Thanks for much detailed comment. Things are more clear now. BTW, though I’ve registered for AppFog quite a while ago, I didn’t receive the invitation yet. I’m really excited to have a look into the service 🙂

  • Chad Keck

    Great article Shameer, thanks for taking the time to share your thoughts. We are glad you enjoy the PHP Fog platform.

    Some quick notes for clarification and that you and your readers might find useful:

    SFTP/SSH: We are looking at implementing one or more of these options for file-system access sometime in Q2.

    Auto-Scaling: While we do not support any ‘auto-scaling’ logic you can easily scale up (move to a higher plan) or scale out (adding more cloud servers) with just a single click in the admin console.

    Caching: In addition to varnish caching we also have opcode caching enabled for PHP apps using APC. As you mentioned memcache services can be used from AWS in the same region and integrated with a customers app tier and we also plan to have some add-on partners in this space soon as well.

    Database: Similar to caching a customer can use RDS or any custom MySQL/other DB deployment in Amazon’s US-East region and we are working on direct ‘add-on’ integration with several partners as well. Direct external connections to DBs is something else we are looking at as well.

    https://phpfog.com/addons

    Don’t forget, if PHP is not your thing you can get on the early access beta list for AppFog at http://www.appfog.com

    Thanks again!

  • Shameer

    Hey Scott,
    I am sorry, I just missed to specify that here. Thanks for the mention.

  • Scott

    Hey Shameer,

    Thanks for the write-up and thanks for trying out Pagoda Box.

    There is an important clarification about Pagoda Box’s pricing that should be made. The 200MB of free RAM is not per account, it’s per application. The 10MB of DB RAM is also per DB. This means you can launch as many free applications and DBs as you want. You’re only required to pay when you scale beyond the free resources allocated to each application.

Join Simple Talk

Join over 200,000 Microsoft professionals, and get full, free access to technical articles, our twice-monthly Simple Talk newsletter, and free SQL tools.

Sign up

See what's happening behind the scenes

Take a peek at the bowels of the ship – the lower decks – the actual servers of SQL Server Central itself.

See what's happening