Today Zend Server 5.5 was released. This is actually a pretty good sized deal. The big addition to the Zend Server feature list is deployment. Now, you might be saying “come on, Kevin, there are many PHP deployment solutions already”. To which I would say “yes, there are. But there are NO solutions that work out of the box“. Ladies and gentlemen, welcome to the box. If you have Zend Server 5.5, you have deployment.
So what I’m going to do with this post is give you a quick run-through on getting a simple application up and running. There are a lot of features I am going to skip over (primarily deployment scripts) and show you a simple workflow so you can see how quickly and easily an application can be deployed.
Step 1: Install The Zend SDK
First of all, you need the Zend SDK (and, of course, Zend Server) and set up the tools directory to be in your path. Actually, you don’t need the SDK since there is a GUI interface. But I’m showing you a simple workflow that will get your application running very quickly. We’ll get into more details in a different blog post that demonstrates the full GUI interface.
Step 2: Create an API Key
In the Zend Server UI you need to name and create a new API key so that the SDK can communicate with your instance of Zend Server.
If you click on the “Show full key” link you will get a popup of the full key so you can copy it into your terminal. The name of the key is also important.
Step 3: Connect the SDK to Zend Server
Once you have your API key you can then associate it with your local SDK instance. You will need the API key that you generated earlier along with the name of that key. Provide the hostname and you’re good to go.
D:\workspace>zend add target -s 8a29cd9333ca366af986df69c32b44ed84aff6af0e741209a82cf4a444e64187 -k deployment -h http://192.168.0.248 Target http://192.168.0.248 was added successfully, with id 0
The ID number is important if you are going to have multiple Zend Server clusters to talk to, such as staging and production. Then you will need to add the -t argument with the target ID. However, if you have only one installation then the SDK will automatically use that target.
Step 4: Create a deployment scenario for your PHP project
Once your target is set up you need to provide a deployment descriptor file for your project. For my example project I’m just going to use a blank Hello World application with a /public application/document root.
D:\workspace>zend create project -t simple -n HelloWorld Project resources were created successfully for HelloWorld under D:\workspace\HelloWorld
The -t option is the template of the application. You have simple, quickstart and zend. Because my application already existed I specified that it was a simple application so no additional files would be created. If you are creating a new project from scratch you can quite easily use one of those templates. If you have an existing application, using the simple template will give you a good starting point.
The deployment.xml file for my application looks something like this (thanks WordPress for not allowing me to post XML, even the code formatters barf on it)
package ---> name: HelloWorld ---> version ---> release: 1.0.0 ---> appdir: public
Step 5: Deploy!
The next step is to deploy the application. You can, again use the SDK to do this from the command line.
D:\workspace\HelloWorld>zend deploy application -b / Application HelloWorld (id 9) is deployed to http://<default-server>/
The -b tells the SDK the base URL that we want to install the application at. If we wanted it at /test, it would be -b /test.
If we want to remove the application we simply tell the SDK to do it.
D:\workspace\HelloWorld>zend remove application -a 9 Application HelloWorld (id 9) was removed from http://<default-server>/
The -a tells the SDK the application ID of the application that we want to remove. We got the application ID from the return message when we originally deployed it.
Step 6 (optional): Rollback
Every once in a while you deploy an application that wasn’t quite as baked as you thought it was. With the new deployment feature you can log in to your Zend Server GUI and do a one-click rollback of your application (well, two clicks once you click the “are you sure button”).
That is how easy it is to deploy a (very) simple application using the new deployment techniques. This works both for Zend Server and Zend Server Cluster Manager installations, so you can deploy to a single machine or let ZSCM push your application to your entire cluster.
Later on I will go through using the Zend Server GUI to set up more complex applications requiring configuration parameters or deployment scripts and also go over the zdpack command which is the package builder that you use if you are not using command line based deployments.
Where to go from here?
It’s simple. Go to our download site, or set up your test machine to access our yum or deb repositories. In other words, try it out.