Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automating Deployment with Zend Server

Automating Deployment with Zend Server

With Zend Server you have integrated, off-the-shelf, deployment functionality available. In this talk we will go over the feature set of the new deployment feature and show how you can streamline your deployments starting with the manual tooling and then showing you how you can use the automation features to help ease the burden if deployment management.

Slavey Karadzhov

October 25, 2012
Tweet

More Decks by Slavey Karadzhov

Other Decks in Programming

Transcript

  1. © All rights reserved. Zend Technologies, Inc. About •Name: Slavey

    Karadzhov (Славей Караджов) •PHP programmer since 1999 •Master in Computer Science, Master in Software Technology •Working for Zend Technologies since 2008 •In Stuttgart, Germany •As a consultant, trainer and programmer 2 Automating Deployment with Zend Server
  2. © All rights reserved. Zend Technologies, Inc. Agenda •What is

    Deployment •How to perform a deployment •Deployment of the source code is easy •Meet Zend Server •Automating the deployment •Common use cases •Auto-Scaling Deployment •Questions 3 Automating Deployment with Zend Server
  3. © All rights reserved. Zend Technologies, Inc. What is Deployment

    … and the most important things about it
  4. © All rights reserved. Zend Technologies, Inc. What is Deployment

    "Software deployment is all of the activities that make a software system available for use.“[1] 5 Automating Deployment with Zend Server
  5. © All rights reserved. Zend Technologies, Inc. What is Deployment

    (2) •Activities Generate requirements • the targeted environment must have – PHP version, PHP modules, libraries, etc • external systems that are related to the application must have – Databases, Caching Solutions, etc Specify what should happen in the different stages of the deployment • Stage • Activate • UnStage • Rollback 6 Automating Deployment with Zend Server
  6. © All rights reserved. Zend Technologies, Inc. What is Deployment

    (3) •Activities(2) Specify what is the source code to be used Specify external system configurations • Apache vhosts 7 Automating Deployment with Zend Server
  7. © All rights reserved. Zend Technologies, Inc. How to perform

    a deployment … different approaches and their advantages and disadvantages
  8. © All rights reserved. Zend Technologies, Inc. How to perform

    a deployment •Manual Time consuming Error Prone •Automatic Faster Less error prone Improves consistency Eliminates communication problems Requires flexible tools 9 Automating Deployment with Zend Server
  9. © All rights reserved. Zend Technologies, Inc. Modern Deployment 11

    Automating Deployment with Zend Server •Get the source code from the versioning system •Add the "deployment action" scripts •Create a package •Deploy to testing •Deploy from testing to production
  10. © All rights reserved. Zend Technologies, Inc. Meet Zend Server

    … and see how it can help you automate your deployment
  11. © All rights reserved. Zend Technologies, Inc. Meet Zend Server

    • Zend Server [2] Application Server for running and managing business-critical PHP applications in production. Optimize application performance Monitor for problems and diagnose them quicker •Deployment Deploy applications faster and more consistently • Source code deployment can be automated with a click of a button. •Java Bridge Use existing Java classes in your PHP 13 Automating Deployment with Zend Server
  12. © All rights reserved. Zend Technologies, Inc. Meet Zend Server

    •Useful environment variable •User parameters •Triggers Scripts that allow better control and automation Pre-defined Environmental Variables for better flexibility Automating Deployment with Zend Server 14
  13. © All rights reserved. Zend Technologies, Inc. Meet Zend Server

    •Scripts can control Creating log directories and setting permissions Adding/Modifying apache virtual host Database Deployment Pre-generating caches Resetting caches 15 Automating Deployment with Zend Server
  14. © All rights reserved. Zend Technologies, Inc. Automating the deployment

    •To save time •To integrate the deployment system with other existing systems •To eliminate the weak link – the human 19 Automating Deployment with Zend Server
  15. © All rights reserved. Zend Technologies, Inc. Automating the deployment

    (2) •Zend Server Web API •Zend SDK http://code.google.com/p/zend-sdk/ •Deployment phases Stage, Activate, Un-stage, Rollback •Deployment scripts •Zend Server as part of a cluster The deployed applications are automatically deployed across the servers Even newly added server do the cluster will get the deployed applications 20 Automating Deployment with Zend Server
  16. © All rights reserved. Zend Technologies, Inc. Automation Scenario (Release

    is coming) •In a continuous integration system (hudson) Get source code from version control system(git) Make all unit tests Build a package Deploy the package to the staging/testing system •Ask thousand of non-technical users to test •Deploy this same package to the production environment 22 Automating Deployment with Zend Server
  17. © All rights reserved. Zend Technologies, Inc. Auto-Scaling Deployment …extra

    work needed for adding a new machine to the deployment
  18. © All rights reserved. Zend Technologies, Inc. Auto-Scaling Deployment •Extra

    work that needs to be done == 0 Zend Server will automatically deploy all application to the newly added Zend Server 24 Automating Deployment with Zend Server
  19. © All rights reserved. Zend Technologies, Inc. Thank you very

    much … questions anyone? Ask now or write your feedback at [email protected].
  20. © All rights reserved. Zend Technologies, Inc. References 1. http://en.wikipedia.org/wiki/Software_deployment

    2. http://www.zend.com/en/products/server/downloads 27 Automating Deployment with Zend Server