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.
    Automating Deployment
    with Zend Server
    By Slavey Karadzhov

    View Slide

  2. © 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

    View Slide

  3. © 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

    View Slide

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

    View Slide

  5. © 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

    View Slide

  6. © 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

    View Slide

  7. © 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

    View Slide

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

    View Slide

  9. © 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

    View Slide

  10. © All rights reserved. Zend Technologies, Inc.
    Modern Deployment

    View Slide

  11. © 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

    View Slide

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

    View Slide

  13. © 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

    View Slide

  14. © 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

    View Slide

  15. © 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

    View Slide

  16. © All rights reserved. Zend Technologies, Inc.
    Demonstration

    View Slide

  17. © All rights reserved. Zend Technologies, Inc.
    > Fast Forward >>

    View Slide

  18. © All rights reserved. Zend Technologies, Inc.
    Automating the deployment
    With a click of button

    View Slide

  19. © 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

    View Slide

  20. © 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

    View Slide

  21. © All rights reserved. Zend Technologies, Inc.
    Automation Scenarios

    View Slide

  22. © 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

    View Slide

  23. © All rights reserved. Zend Technologies, Inc.
    Auto-Scaling Deployment
    …extra work needed for adding a new machine to the deployment

    View Slide

  24. © 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

    View Slide

  25. © All rights reserved. Zend Technologies, Inc.
    Thank you very much
    … questions anyone?
    Ask now or write your feedback at [email protected]

    View Slide

  26. © 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

    View Slide