Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Build & deploy PHP application (intro level)

2 118 vues

Publié le

There is a number of ways to build and deploy PHP application reviewed. In particular, Symfony2 apps using Capifony.

Publié dans : Logiciels
  • You can simply deploy php application (https://www.cloudways.com/blog/deploy-php-application-from-github/ ) through github. On Cloudways platform, deployment via github is pretty simple because of integrated github feature. Just connect your server with github using ssh key and then you can deploy PHP code from github in just a single click.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Build & deploy PHP application (intro level)

  1. 1. Build & deploy PHP applications* brief introduction
  2. 2. Who am I ? Anton Babenko @antonbabenko Tech lead at Zoozoo.com Symfony2/PHP/MySQL
  3. 3. Develop > Build > Test > Deploy
  4. 4. Develop > Build > Test > Deploy Develop locally, run some tests, commit and push code…
  5. 5. Develop > Build > Test > Deploy ?
  6. 6. Develop > Build > Test > Deploy Automate
  7. 7. Develop Build Test Deploy Automate and get: ● Faster development cycle ● Easier handover to new team members ● Improves quality ● Reduces errors ● Saves time ● Establish routine process which team can rely on
  8. 8. Develop Build Test Deploy What to automate: ● Dependency & configuration management ○ Using Puppet, Chef, Ansible, bash scripting ● Compilation, minification of your assets ● Running tests ● Creation of documentation and changelogs ● Packaging ● Deployment
  9. 9. Develop Build Test Deploy How to build?
  10. 10. Develop Build Test Deploy How to build? Why do you need a build tool? ● To prepare a project to act in a specific environment Should be no room for misconfiguration ● Staging should have environment similar to production
  11. 11. Develop Build Test Deploy Example flow: ● Get project files from VCS ● Configure ● DB Migration ● Run package managers and builders (npm, bower, grunt) ● Upload ● Cache warmup ● Clear opcache
  12. 12. Develop Build Test Deploy Popular build & deployment tools for PHP projects: ● Bash scripting (Still hit #1) ● Apache Ant ● Phing ● Capistrano ● Fabric ● http://en.wikipedia.org/wiki/List_of_build_automation_software or use PaaS
  13. 13. Develop Build Test Deploy PHP PaaS Providers: PagodaBox AppFog Heroku fortrabbit Engine Yard Cloud Red Hat OpenShift Platform dotCloud http://www.phptherightway.com/#servers_and_deployment AWS Elastic Beanstalk cloudControl Windows Azure Zend Developer Cloud Google App Engine Jelastic
  14. 14. Develop Build Test Deploy ● Bash scripting = be creative as you wish ● Jenkins CI + Apache Ant + jenkins-php.org = great starting point ● Phing = “Apache Ant written in PHP” ● Capistrano ● Fabric
  15. 15. Develop Build Test Deploy ● Bash scripting = be creative as you wish ● Jenkins CI + Apache Ant + jenkins-php.org = great starting point ● Phing = “Apache Ant written in PHP” ● Capistrano = for builds and deployments ● Fabric
  16. 16. Develop Build Test Deploy Capistrano is an open source tool for running scripts on multiple servers. It’s primary use is for easily deploying applications. capifony is a deployment recipes collection that works with both symfony and Symfony2 applications. Source: capifony.org
  17. 17. Develop Build Test Deploy # gem install hipchat newrelic_rpm if exists?(:config_hipchat_token) require 'hipchat/capistrano' set :hipchat_token, "#{config_hipchat_token}" set :hipchat_room_name, "Developers chat" end # Recipe: # github.com/ekino/EkinoNewRelicBundle/blob/master/Resources/recipes/newrelic.rb if exists?(:config_newrelic_license) require 'new_relic/recipes' set :newrelic_license_key, "#{config_newrelic_license}" set :newrelic_appname, "You name it" after "deploy", "newrelic:notice_deployment" end Capifony sugar (1/4):
  18. 18. Develop Build Test Deploy after "symfony:composer:install", "symfony:verify_console" namespace :symfony do task :verify_console do capifony_pretty_print "--> Run app/console to verify if parameters.yml has all required keys and application is runnable" if capture("#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} > /tmp/app_console_output 2>&1 ; echo $?'").to_s.strip != "0" run "cat /tmp/app_console_output && rm -rf /tmp/app_console_output" raise CommandError.new("There was an unrecoverable error.") end capifony_puts_ok end end Capifony sugar (2/4):
  19. 19. Develop Build Test Deploy # Update assets_version # Source: https://github.com/kachkaev/KachkaevAssetsVersionBundle namespace :assets_version do task :increment do capifony_pretty_print "--> Increment assets_version" run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} assets_version:increment --env=#{symfony_env_prod}'" capifony_puts_ok end end Capifony sugar (3/4):
  20. 20. Develop Build Test Deploy # Run migration on one DB server instead of all: role :web, "www1.mysite.com", "www2.mysite.com" role :app, "www1.mysite.com", "www2.mysite.com" role :db, "db1.mysite.com", :primary => true role :db, "db2.mysite.com" role :db, "db3.mysite.com" Capifony sugar (4/4):
  21. 21. Develop Build Test Deploy Capifony questions? http://stackoverflow.com/questions/tagged/capifony Want something with GUI? http://www.deployhq.com/
  22. 22. Develop Build Test Deploy Questions? Questions? Questions? Questions?
  23. 23. Thanks!

×