The Zend Blueprint for Continuous Delivery provides practical best practices to help companies implement each step of the continuous delivery cycle. Based on the Zend Server platform, the blueprint provides an easy way to implement these best practices through a series of patterns and plug-ins.
Jenkins is an open source application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Jenkins provides an easy-to-use continuous integration system, building and testing software projects continuously to make it easier for developers to integrate changes to the project. By integrating code and building upon every commit, bugs are caught faster and software projects stay in sync better across development teams.
Zend Server equips development and operations teams with the infrastructure and insight to support rapid application releases, and provides PHP applications with capabilities that ensure high levels of reliability, performance and security, both on-premise and in the cloud.
Jenkins has always been an essential tool for Novadex, but deployment is not one of its native components. This means that before using Zend Server, we had to resort to creating our own scripting and packaging mechanisms for the deployment of our code. Leveraging Zend Server’s capabilities and SDK allowed this scripting to be simplified and to effortlessly support server clusters, enabling non-expert users to initiate deployments, while providing extra control and the flexibility essential for Novadex to stay at the forefront of cloud-based business communication management.
Andreas Rossbach, Chief Technology Officer at Novadex
This pattern provides a template for adding packaging and deployment to a Continuous Integration build system using Jenkins. It supports code style checks using phpcs, code violation checks using phpcpd and phpmd, and supports unit testing integration via phpunit. The last step packages the application in a *.zpk deployment package and deploys the archive onto Zend Server. Note that Phing is required on the build server for this pattern.
Continuous delivery requires that code must be deployable at all times, in addition to ensuring that it builds successfully and passes all unit tests. When used with Jenkins, Zend Server's deployment automation validates that, after every integration, applications and code libraries can be rapidly and consistently deployed onto QA, staging, or production servers.
Jenkins implementation guide