Zend is one of many open source success stories. Following a model that's proved strong with MySQL and Subversion, it provides support and commercial software that sits alongside mainstream PHP use, targeting enterprise customers who need high-reliability, high-scalability web app servers.
The company has announced software called Zend Server, an all-in-one bundle for running PHP applications on between one and three servers. It includes a highspeed code cache, which makes nearly every PHP run faster – sometimes by a factor of 10. It also monitors all the PHP scripts running across your servers, providing feedback on where things are running slowly and where errors occur.
Now, for the first time, Zend is making a cut-down version of its enterprise software available for free – although that's freeware rather than free software. In Zend Server Community Edition (CE) you get the same high-performance code execution and administration front-end, but you don't get the support or the hot fixes when PHP updates are issued.
In short, you're on your own, but at least you get the power features, which can easily save expensive hardware upgrades.
We talked to Zeev Suraski about how Zend Server CE relates to its non-free counterpart and just what's taking the dev team so long in producing PHP 6…
Linux Format: How does Zend Server fit into your product range alongside the existing Zend Platform software, which is also for enterprise server use?
Zeev Suraski: Initially, we're going to have both products side-by-side, with Zend Server geared towards single-server solutions or up to two or three servers, and Zend Platform geared towards larger clusters. We decided to roll out the Zend Server strategy gradually, so in the future we do plan to have the clustering support added to Server and [… to add] things that exist in Zend Platform – as well as new features.
LXF: So your plan, then, is not to take features from Server and put them into Platform, but to take features from Platform and put them into Server?
ZS: Yes, but beyond the features we're taking from Platform we're also working on the UI and usability, so it's not that you're going to see exactly the same features […] dropped into a clustered version of Zend Server in the future. You're going to see revised versions of them; in some cases higher performance and in some cases just brand-new features.
LXF: One of the key features of Zend Server is that it's an all-in-one solution, with software coming configured to work in an optimised way. But it also comes with MySQL and Apache. Do people really need that?
ZS: That depends on what operating system you're installing it on. If you install it on a Linux machine that has Apache installed, which I think probably close to 100 per cent of [people] do, then it's going to use the operating system's native Apache without installing a new one. If you don't, then you have the option of installing Apache through Zend Server and it's going to work out of the box.
LXF: Can you use the distro's built-in PHP?
ZS: No. You have to use the Zend Server PHP. If a user asks us this question, then the answer is going to be "no". From a technical perspective, you should be able to – if you really wanted to hack around and get the various components that we ship together with Zend Server to work with a different PHP – as long as it's from the same family (in this case PHP 5.2) but it's not something that you're supposed to do and it's not something that we're going to support.
LXF: Zend Server's monitoring agent automatically tracks when things go wrong with a script, database connection or another PHP-related problem – it saves the app state so it can be retrieved and stepped through later. Is there much overhead for that?
ZS: If your application is really bad, then you're going to have a lot of events and saving them will take a lot of time. But typically, when you have an application that doesn't generate too many events, the overhead is pretty negligible – it's close to 1 or 2 per cent. But that depends on the number of events generated.
LXF: Would you say that Zend is edging into a space that's traditionally been dominated by Java application servers?
ZS: I think so, to some degree. And in some ways it's already happened. PHP can be found in a lot of business-critical applications and a lot of very large deployments – Wikipedia, YouTube and Flickr all come to mind, but there are tons of others. It's definitely a trend that's growing. We think it makes perfect sense and we do want to support it with Zend Server.
LXF: At the other end of the scale, as Zend Server takes PHP more towards the enterprise, would you say that PHP is perhaps losing touch with its original community?
ZS: I don't think it's losing touch, but I would say that PHP is between 12 and 13 years old, so it's not the cool new kid on the block. That said, I think the community that's been working on PHP is still developing it and is still very much in touch with the community that uses it. The PHP community is very healthy – it's strong and still growing rapidly.
The key strength of PHP is that it's a mature solution, it's been proven. There's a lot less knowledge about how to deploy websites using Ruby or Python – they're good solutions, and I have nothing bad to say about either of them, it's just that the communities are smaller. There's room in the web server industry for more than one player – I don't expect PHP to be used on 100% of websites at one time.
LXF: Would you say that the community's open source work is influencing what goes into the freeware version of Zend Server? For example, I believe PHP 6 is going to include an op-code cache as standard. So has your response to that been, "Well, we'll give away our version too"?
ZS: Well, definitely it's one of the things that went into the decision, but I don't think it's the only thing. We went into this business back in 2001, and we thought that in this day and age it makes sense for us to provide a free – both cost-free and hassle-free – solution for acceleration.
APC is going to become a standard part of the PHP distribution, but the inclusion of it isn't such a huge difference from the status quo. It's already in PECL and you can install it very easily, and if you look at PHP 6, the plan isn't to have it enabled by default. If people really like APC, they can disable the Zend Optimizer Plus and use APC, and it'll work the same except for a few small UI parts that are Zend-specific.
LXF: PHP 6 seems to be spending an awfully long time under construction. Is that some sort of Curse of the Number 6, as with Perl 6, or is it all part of the plan?
ZS: It could be, but I think we'll have PHP 6 before Python 6, though! PHP 6 is a much more difficult project than both PHP 4 and 5 were, for two main reasons. One is the amount of PHP code that's already out there... it's so huge. [The other is] every tiny compatibility breakage you introduce becomes a horrible headache for a lot of people. And combined with the main thing we want to do with PHP 6, which is the introduction of native Unicode support, actually it's pretty much impossible to obtain without introducing a significant amount of compatibility breakage into the language. I don't know how it's going to turn out – I'm being completely honest about that.
LXF: How easy will it be to move from PHP 5 to 6, as compared with moving from PHP 4 to 5?
ZS: The migration from 4 to 5 was fairly successful. It took a few years, but today PHP 5 is already more popular than 4 ever was. We've decided not to rush [the transition], so we're concentrating on PHP 5.3 at this point.
We made the decisions to add some of the features that originally were planned for PHP 6 – such as namespaces – into PHP 5.3, so that we don't have to rush PHP 6. It's probably going to take quite some time until PHP 6 is out.
First published in Linux Format Issue 119
Liked this? Then check out Moblin: The Intel-backed Linux platform for Atom
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register