First look: Zend's PHP developer cloud
Zend Developer Cloud woos PHP developers with enterprise-grade development features, snapshots for easy recovery and project sharing, and the promise of single-click cloud deployment
Zend Server is a Web application server augmented to support both the development and deployed execution of PHP applications. It is available in community and nonfree editions, both of which provide useful add-ons that include a general-purpose data cache, an execution optimizer that caches precompiled PHP byte code, a debugger, and more.
The enterprise edition adds to these an event monitoring system that lets you log the details of out-and-out errors (such as database errors), as well as potentially dangerous conditions (such as unusually high memory usage, slow query execution, and more) -- exceedingly useful in postmortem analysis. The enterprise edition also provides code tracing that can produce a profile of code execution paths. You can configure profiling to be triggered by specific events (for homing in on a particularly suspicious method) or enable profiling for the whole application. Developing your application in Zend Developer Cloud gives you all the advantages of a full-blown Zend Server installation.
These components are bonded together by what is referred to as the Zend Application Fabric. The Fabric is a PHP-friendly runtime environment that includes -- in addition to the services already described -- the Zend Framework (via Zend Server), as well as failover, load balancing, and scaling capabilities that provide cloud-friendly elasticity with minimal management overhead. Here, however, you find there are differences between the Zend Application Fabric of the ZDC environment and the Zend Application Fabric in a deployment environment.
The Zend Application Fabric is already available through cloud providers that have partnered with Zend. These include RightScale, Amazon, IBM, and Rackspace. In those deployment environments, the Fabric provides load balancing and scaling as described above. For example, you can configure your cloud application so that when your application's CPU or memory usage reaches 80 percent of a prescribed ceiling, another runtime instance is launched to shoulder some of the load. Zend has defined a set of default parameters to control scaling behavior; if your application's execution profile fits the default, you are relieved of having to tune any runtime controls. Nevertheless, if you know that your application's load may ramp up quickly and you want to launch new instances well before maximum capacity is approached, you have the option of adjusting the parameters away from their default values.
These capabilities are available now, but only in the deployed form of the Zend Application Fabric. Keep in mind: When working with the Zend Application Fabric of the ZDC, you're working with a runtime environment that -- from your application's perspective -- is functionally identical to the deployed version but behaviorally different. Your application will not be aware of any difference between the Fabric running in ZDC and the Fabric running on a deployed system, but the ZDC's Fabric does no scaling. The Zend Developer Cloud is strictly for development and testing.
Zend Developer Cloud: Container management
You control your container via three management consoles, all available from an administrative home page associated with the container. For administering your MySQL database tables, you can launch the browser-based phpMyAdmin application. Anyone who's done any work with PHP should be familiar with phpMyAdmin, so I'll say no more of it here other than it's as straightforward and serviceable a tool for managing a SQL database as you'll find.
Also on your admin home page is a link that launches the Zend Server management console, where you can set the events that your container's Zend Server instance will log, configure code tracing, view already-captured event logs and code trace files, view a history of applications that have executed on the server, turn server features on or off (such as optimizer, debugger, or caching), and much, much more. Management of a Zend Server is a complicated enough subject to warrant an article to itself. (Interested readers can find more at the Zend Product Documentation page.)
To code your PHP application, you can use Zend Studio, Eclipse PDT, or any IDE you want, though life is easier with Zend Studio. For instance, Zend Studio allows you to set up a development project with phpcloud.com as the deployment target.