SlideShare une entreprise Scribd logo
1  sur  96
Télécharger pour lire hors ligne
One Click Deployment with Jenkins


Florian Anderiasch / Thorsten Rinne
PHP Unconference 201 Hamburg
                      1,




                                      © 201 Mayflower GmbH
                                           1
DevOp
„I rant a lot“

@anderiasch      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 2
Team Lead / Scrum Master
Head of Open Source Labs

@ThorstenRinne             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 3
Who are you?




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 4
Developers?




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 5
Administrators?




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 6
DevOps?




     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 7
Continuous Integration?




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 8
How much time do you
 need for a release?


           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 9
More than a year?




          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 10
6 - 12 months?




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 11
1 - 6 months?




        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 12
2 - 4 weeks?




        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 13
1 - 14 days?




        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 14
1 - 24 hours?




        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 15
Less than 15 minutes?




            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 16
15 Minutes!




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 17
Why One Click
Deployment?


        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 18
Everything is getting faster.




                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 19
Faster feedback from
your customer / user




            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 20
Faster ROI
(return on invest)



           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 21
Faster response
if the market changes
                 Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 22
Developers are lazy.
            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 23
Basic requirements




           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 24
Agile software
 development


         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 25
Scrum or Kanban




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 26
Test Driven Development




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 27
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 28
Continuous Integration




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 29
Continuous Inspection




            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 30
Refactoring




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 31
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
Scrum
Kanban




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
Scrum   Continuous
Kanban   Integration




                 Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
Scrum   Continuous Continuous
Kanban   Integration Inspection




                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
Scrum   Continuous Continuous
Kanban   Integration Inspection




Continuous Deployment
                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
Things you don‘t want.




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 33
Having your SVN repo in
your webserver‘s docroot.


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 34
Using SSH and vi and your
 root account on the live
      server. Never.

              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 35
Who‘s still doing this? :-)




                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 36
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 37
What do we need?




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 38
First: a central build server




                 Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 39
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 40
Continous Testing with
      PHPUnit


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 41
Advantages




      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 42
Test results at one central
           page


               Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 43
Software metrics at one
     central page


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 44
Errors can be identified
  fast and then fixed
             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 45
Awareness




      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 46
Awareness!
      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 47
Continuous Integration in
      PHP projects


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 48
PHPUnit
DocBlox


     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 49
Continuous Inspection in
      PHP projects


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 50
PHPCS
PHP Depend
  PHPMD
  phpcpd
   jslint
      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 51
jslint?
 yes!


      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 52
Infrastructure




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 53
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 54
Developer VM
Ubuntu 11.04


       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 55
Testing VM + Jenkins VM:
      Ubuntu 11.04


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 56
Staging VMs:
  Frontend: Ubuntu 11.04
Backend: Ubuntu 10.04 LTS


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 57
amazon AWS live:
  Frontend: Ubuntu 11.04
Backend: Ubuntu 10.04 LTS

              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 58
Front Nodes
      Varnish
       nginx
 PHP 5.3 with APC
Zend Framework 1.1  1
   dojo toolkit 1.6
    Doctrine 2.1
            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 59
Backend Nodes
MySQL Master/Slave
   Apache Solr
 PHP 5.3 with APC
    RabbitMQ
     ejabberd
          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 60
Development workflow




           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 61
1. git workflow
$ git   add Foo.php
$ git   commit -m ″Bar″
$ ant   jslint
$ ant   phpunit
  ...
$ git   push

               Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 62
2. Post commit hook


Build triggered on Jenkins



                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 63
Jenkins build checks



            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 64
1. PHPUnit Build:
         Unittests
Controller Tests (Zend_Test)
  PHP Code Coverage

                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 65
2. Debian Package Build



             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 66
3. Deploy to staging
4. Deploy staging to live


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 67
What is a build process?



              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 68
ant sync
  ant clean
ant db-update
  parallelTasks:
 ant phpunit
  ant phpcb
   ant deb
         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 69
ant phpunit
<target
  name="phpunit"
  depends="db-test"
  description="Run all tests">
  <exec executable="phpunit"
        failonerror="true">
    <arg line="--configuration $
{basedir}/tests/phpunit-verbose.xml $
{basedir}/tests/AllTests.php" />
  </exec>
</target>


                        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 70
parallelTasks:
php_depend
   phpmd
  phpunit
   phpcpd
   phpcs
   jslint
         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 71
Build Debian Package
ant autoloader
  ant phpunit
    ant clean
 ant compilejs
ant compilecss
            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 72
ant deb (I)
<target
   name="deb"
   depends="autoloader,phpunit-
coverage,clean,autoloader,compilejs,compi
lecss"
   description="Generate Debian package">
   <exec executable="gpg">
     <arg value="--armor" />
     <arg value="--import" />
     <arg value="scripts/build/deb/
mapolis.mayflower.de.pgp" />
   </exec>
   <buildnumber />

                        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 73
ant deb (II)
<exec executable="git"
      outputproperty="githash">
  <arg value="describe" />
  <arg value="--always" />
  <arg value="--match" />
  <arg value="" />
</exec>
<touch file="debian/changelog" />
<move file="debian/changelog"
      tofile="debian/changelog.old" />




                     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 74
ant deb (III)
   <exec executable="git"
         output="debian/changelog.new">
     <arg value="log" />
     <arg value="-n" />
     <arg value="1" />
     <arg value='--format=format:mapolis-
web (${build.number}-${githash})
unstable; urgency=low%n%n * %s%n%n --
%an &lt;%ae&gt; %aD%n%n' />
   </exec>




                        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 75
ant deb (IV)
<concat destfile="debian/changelog">
  <fileset
   file="debian/changelog.new" />
  <fileset
   file="debian/changelog.old" />
</concat>
<delete file="debian/changelog.new" />
<delete file="debian/changelog.old" />




                     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 76
ant deb (V)
   <exec executable="dpkg-buildpackage">
     <arg value="-b" />
     <arg value="-v${build.number}-$
{githash}" />
     <arg value="-Zlzma" />
     <arg value="-z9" />
     <arg value="-k78532445" />
     <arg value="-pgpg" />
     <arg value="-sgpg" />
     <arg value="-mMayflower Mapolis Team
&lt;mapolis@mayflower.de&gt;" />
   </exec>


                        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 77
ant deb (VI)
  <move todir="build/deb/">
   <fileset dir="${basedir}/../">
     <include name="mapolis*.deb" />
     <include name="mapolis*.changes" />
   </fileset>
  </move>
  <exec executable="dpkg-buildpackage">
     <arg value="-Tclean" />
  </exec>
</target>




                       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 78
Deploy Staging
     ant clean
   ant deb-sign
ant db-staging-up
scp to all hosts


          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 79
Deploy Staging to live
scp to all hosts




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 80
Disadvantages and
    problems


          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 81
Build time
15 min on harddisk
  massive disk i/o
4 min on ramdisk :-)

            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 82
Complexity beginning such
    a infrastructure


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 83
Jenkins:
Single point of failure!


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 84
Cool stuff
which is now possible


            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 85
Deploy by customer. :-)
              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 86
Jenkins Chuck Norris Plugin



                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 87
git bisect start
   $BAD $GOOD


         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 88
Minimum time from
bugreport to deploy:
    30 minutes


            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 89
$ git branch hotfix-2011-08-22
$ git checkout hotfix-2011-08-22
$ git reset --hard "last stable sha-1"
$ git cherry-pick "hotfix sha-1"
$ echo build.number=23 > build.number
$ ant deb
$ scp build/deb/*.deb xyz.amazonaws.com:/
opt/repository/
$ git checkout master
$ git push origin hotfix-2011-08-10




                         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 90
Questions?




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 91
Thank you very much for your attention!




Contact   Florian Anderiasch              Thorsten Rinne
          florian.anderiasch@mayflower.de   thorsten.rinne@mayflower.de
          +49 89 242054-1   134           +49 89 242054-31

          Mayflower GmbH                   Mayflower GmbH
          Mannhardtstr. 6                 Mannhardtstr. 6
          80538 München                   80538 München
          Germany                         Germany



                                                                       © 201 Mayflower GmbH
                                                                            1

Contenu connexe

Tendances

Introduction to Laravel 4, Developer Conference - Digital World 2014
Introduction to Laravel 4, Developer Conference - Digital World 2014Introduction to Laravel 4, Developer Conference - Digital World 2014
Introduction to Laravel 4, Developer Conference - Digital World 2014
Mozammel Haque
 

Tendances (20)

Develop and Deploy Outside the Repo
Develop and Deploy Outside the RepoDevelop and Deploy Outside the Repo
Develop and Deploy Outside the Repo
 
Feedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeFeedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCode
 
Git with t for teams
Git with t for teamsGit with t for teams
Git with t for teams
 
5 steps for successful automation with Hiptest
5 steps for  successful automation with Hiptest5 steps for  successful automation with Hiptest
5 steps for successful automation with Hiptest
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps Disaster
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disaster
 
TuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in TuleapTuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in Tuleap
 
Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton
Gear up for Continuous Integration with Salesforce DX, Circle CI and ClaytonGear up for Continuous Integration with Salesforce DX, Circle CI and Clayton
Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
 
WordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version ControlWordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version Control
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
Your Workflow, Your Way with WP Engine
Your Workflow, Your Way with WP EngineYour Workflow, Your Way with WP Engine
Your Workflow, Your Way with WP Engine
 
TuleapCon 2019. Tuleap explained by the users
TuleapCon 2019. Tuleap explained by the usersTuleapCon 2019. Tuleap explained by the users
TuleapCon 2019. Tuleap explained by the users
 
Introduction to Laravel 4, Developer Conference - Digital World 2014
Introduction to Laravel 4, Developer Conference - Digital World 2014Introduction to Laravel 4, Developer Conference - Digital World 2014
Introduction to Laravel 4, Developer Conference - Digital World 2014
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFS
 
APIdays Paris 2018 - Client Library Automation, Inside Out, Avital Tzubeli, D...
APIdays Paris 2018 - Client Library Automation, Inside Out, Avital Tzubeli, D...APIdays Paris 2018 - Client Library Automation, Inside Out, Avital Tzubeli, D...
APIdays Paris 2018 - Client Library Automation, Inside Out, Avital Tzubeli, D...
 

En vedette

Torino e provincia One territory, infinite emotions
Torino e provincia One territory, infinite emotionsTorino e provincia One territory, infinite emotions
Torino e provincia One territory, infinite emotions
Quotidiano Piemontese
 
Health Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene HayesHealth Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene Hayes
Health Data Consortium
 
Opio en-las-nubes-rafael-chaparro-madiedo
Opio en-las-nubes-rafael-chaparro-madiedoOpio en-las-nubes-rafael-chaparro-madiedo
Opio en-las-nubes-rafael-chaparro-madiedo
Axl Razvan
 

En vedette (20)

Object assessment for Objects & Places Unit (MMHS, Sydney Uni)
Object assessment for Objects & Places Unit (MMHS, Sydney Uni)Object assessment for Objects & Places Unit (MMHS, Sydney Uni)
Object assessment for Objects & Places Unit (MMHS, Sydney Uni)
 
Tus usuarios y clientes son móviles. ¿Lo es tu negocio?
Tus usuarios y clientes son móviles. ¿Lo es tu negocio?Tus usuarios y clientes son móviles. ¿Lo es tu negocio?
Tus usuarios y clientes son móviles. ¿Lo es tu negocio?
 
Praktika6
Praktika6Praktika6
Praktika6
 
Chiapas-mexico
Chiapas-mexicoChiapas-mexico
Chiapas-mexico
 
Frauen und ihre Refugien: Ein Buch über 21 besondere Frauen
Frauen und ihre Refugien: Ein Buch über 21 besondere FrauenFrauen und ihre Refugien: Ein Buch über 21 besondere Frauen
Frauen und ihre Refugien: Ein Buch über 21 besondere Frauen
 
Torino e provincia One territory, infinite emotions
Torino e provincia One territory, infinite emotionsTorino e provincia One territory, infinite emotions
Torino e provincia One territory, infinite emotions
 
Pensar de San Jacinto Febrero 2016
Pensar de San Jacinto Febrero 2016Pensar de San Jacinto Febrero 2016
Pensar de San Jacinto Febrero 2016
 
Kaspiysk
KaspiyskKaspiysk
Kaspiysk
 
Health Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene HayesHealth Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene Hayes
 
Clipping cnc 24052016 versão de impressão
Clipping cnc 24052016   versão de impressãoClipping cnc 24052016   versão de impressão
Clipping cnc 24052016 versão de impressão
 
G12.2012 magic quadrant for enterprise information archiving
G12.2012 magic quadrant for enterprise information archivingG12.2012 magic quadrant for enterprise information archiving
G12.2012 magic quadrant for enterprise information archiving
 
YouLab Global - Ageless Living on Purpose!
YouLab Global - Ageless Living on Purpose!YouLab Global - Ageless Living on Purpose!
YouLab Global - Ageless Living on Purpose!
 
S4 tarea4 zupel
S4 tarea4 zupel S4 tarea4 zupel
S4 tarea4 zupel
 
Folleto 2015
Folleto 2015Folleto 2015
Folleto 2015
 
Opio en-las-nubes-rafael-chaparro-madiedo
Opio en-las-nubes-rafael-chaparro-madiedoOpio en-las-nubes-rafael-chaparro-madiedo
Opio en-las-nubes-rafael-chaparro-madiedo
 
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
 
Utel Systems - Stinga Monitoring System
Utel Systems - Stinga Monitoring SystemUtel Systems - Stinga Monitoring System
Utel Systems - Stinga Monitoring System
 
Abrelatas
AbrelatasAbrelatas
Abrelatas
 
KNOWHOW OPENER WB
KNOWHOW OPENER WBKNOWHOW OPENER WB
KNOWHOW OPENER WB
 
About The institution of Engineers (India)
About The institution of Engineers (India)About The institution of Engineers (India)
About The institution of Engineers (India)
 

Similaire à One Click Deployment with Jenkins - PHP Unconference 2011

Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Mayflower GmbH
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projects
Mayflower GmbH
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11
Mayflower GmbH
 
Kontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projektenKontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projekten
Johann-Peter Hartmann
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
Mayflower GmbH
 
Hire cake php developer
Hire cake php developerHire cake php developer
Hire cake php developer
PHPDeveloper
 

Similaire à One Click Deployment with Jenkins - PHP Unconference 2011 (20)

Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projects
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11
 
Kontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projektenKontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projekten
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 
HTML5 Workshop
HTML5 WorkshopHTML5 Workshop
HTML5 Workshop
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
Enterprise E-Commerce Webinar #3: Bringing Your API to MarketEnterprise E-Commerce Webinar #3: Bringing Your API to Market
Enterprise E-Commerce Webinar #3: Bringing Your API to Market
 
Improving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with toolsImproving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with tools
 
Hhvm vs php
Hhvm vs phpHhvm vs php
Hhvm vs php
 
continuousphp
continuousphpcontinuousphp
continuousphp
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
 
Php live project training
Php live project trainingPhp live project training
Php live project training
 
Why step
Why stepWhy step
Why step
 
Online php training course is effective for web developers
Online php training course is effective for web developersOnline php training course is effective for web developers
Online php training course is effective for web developers
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)
 
Php7
Php7Php7
Php7
 
Hire cake php developer
Hire cake php developerHire cake php developer
Hire cake php developer
 
Some Very Useful PHP Tools
Some Very Useful PHP ToolsSome Very Useful PHP Tools
Some Very Useful PHP Tools
 

Plus de Mayflower GmbH

Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 

Plus de Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 

Dernier

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

One Click Deployment with Jenkins - PHP Unconference 2011

  • 1. One Click Deployment with Jenkins Florian Anderiasch / Thorsten Rinne PHP Unconference 201 Hamburg 1, © 201 Mayflower GmbH 1
  • 2. DevOp „I rant a lot“ @anderiasch Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 2
  • 3. Team Lead / Scrum Master Head of Open Source Labs @ThorstenRinne Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 3
  • 4. Who are you? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 4
  • 5. Developers? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 5
  • 6. Administrators? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 6
  • 7. DevOps? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 7
  • 8. Continuous Integration? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 8
  • 9. How much time do you need for a release? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 9
  • 10. More than a year? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 10
  • 11. 6 - 12 months? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 11
  • 12. 1 - 6 months? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 12
  • 13. 2 - 4 weeks? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 13
  • 14. 1 - 14 days? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 14
  • 15. 1 - 24 hours? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 15
  • 16. Less than 15 minutes? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 16
  • 17. 15 Minutes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 17
  • 18. Why One Click Deployment? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 18
  • 19. Everything is getting faster. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 19
  • 20. Faster feedback from your customer / user Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 20
  • 21. Faster ROI (return on invest) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 21
  • 22. Faster response if the market changes Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 23. Developers are lazy. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 24. Basic requirements Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 24
  • 25. Agile software development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 25
  • 26. Scrum or Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 26
  • 27. Test Driven Development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 27
  • 28. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 28
  • 29. Continuous Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 30. Continuous Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 31. Refactoring Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 32. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 33. Scrum Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 34. Scrum Continuous Kanban Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 35. Scrum Continuous Continuous Kanban Integration Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 36. Scrum Continuous Continuous Kanban Integration Inspection Continuous Deployment Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 37. Things you don‘t want. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 33
  • 38. Having your SVN repo in your webserver‘s docroot. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 34
  • 39. Using SSH and vi and your root account on the live server. Never. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 35
  • 40. Who‘s still doing this? :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 36
  • 41. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 37
  • 42. What do we need? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 38
  • 43. First: a central build server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 39
  • 44. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 40
  • 45. Continous Testing with PHPUnit Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 41
  • 46. Advantages Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 42
  • 47. Test results at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 48. Software metrics at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 44
  • 49. Errors can be identified fast and then fixed Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 45
  • 50. Awareness Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 46
  • 51. Awareness! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 47
  • 52. Continuous Integration in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 48
  • 53. PHPUnit DocBlox Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 54. Continuous Inspection in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 50
  • 55. PHPCS PHP Depend PHPMD phpcpd jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 51
  • 56. jslint? yes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 52
  • 57. Infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 53
  • 58. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
  • 59. Developer VM Ubuntu 11.04 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 55
  • 60. Testing VM + Jenkins VM: Ubuntu 11.04 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 56
  • 61. Staging VMs: Frontend: Ubuntu 11.04 Backend: Ubuntu 10.04 LTS Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 57
  • 62. amazon AWS live: Frontend: Ubuntu 11.04 Backend: Ubuntu 10.04 LTS Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 58
  • 63. Front Nodes Varnish nginx PHP 5.3 with APC Zend Framework 1.1 1 dojo toolkit 1.6 Doctrine 2.1 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 59
  • 64. Backend Nodes MySQL Master/Slave Apache Solr PHP 5.3 with APC RabbitMQ ejabberd Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 60
  • 65. Development workflow Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 61
  • 66. 1. git workflow $ git add Foo.php $ git commit -m ″Bar″ $ ant jslint $ ant phpunit ... $ git push Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 62
  • 67. 2. Post commit hook Build triggered on Jenkins Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 63
  • 68. Jenkins build checks Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 64
  • 69. 1. PHPUnit Build: Unittests Controller Tests (Zend_Test) PHP Code Coverage Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 65
  • 70. 2. Debian Package Build Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 66
  • 71. 3. Deploy to staging 4. Deploy staging to live Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 67
  • 72. What is a build process? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 68
  • 73. ant sync ant clean ant db-update parallelTasks: ant phpunit ant phpcb ant deb Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 69
  • 74. ant phpunit <target name="phpunit" depends="db-test" description="Run all tests"> <exec executable="phpunit" failonerror="true"> <arg line="--configuration $ {basedir}/tests/phpunit-verbose.xml $ {basedir}/tests/AllTests.php" /> </exec> </target> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 70
  • 75. parallelTasks: php_depend phpmd phpunit phpcpd phpcs jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 71
  • 76. Build Debian Package ant autoloader ant phpunit ant clean ant compilejs ant compilecss Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 72
  • 77. ant deb (I) <target name="deb" depends="autoloader,phpunit- coverage,clean,autoloader,compilejs,compi lecss" description="Generate Debian package"> <exec executable="gpg"> <arg value="--armor" /> <arg value="--import" /> <arg value="scripts/build/deb/ mapolis.mayflower.de.pgp" /> </exec> <buildnumber /> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 73
  • 78. ant deb (II) <exec executable="git" outputproperty="githash"> <arg value="describe" /> <arg value="--always" /> <arg value="--match" /> <arg value="" /> </exec> <touch file="debian/changelog" /> <move file="debian/changelog" tofile="debian/changelog.old" /> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 74
  • 79. ant deb (III) <exec executable="git" output="debian/changelog.new"> <arg value="log" /> <arg value="-n" /> <arg value="1" /> <arg value='--format=format:mapolis- web (${build.number}-${githash}) unstable; urgency=low%n%n * %s%n%n -- %an &lt;%ae&gt; %aD%n%n' /> </exec> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 75
  • 80. ant deb (IV) <concat destfile="debian/changelog"> <fileset file="debian/changelog.new" /> <fileset file="debian/changelog.old" /> </concat> <delete file="debian/changelog.new" /> <delete file="debian/changelog.old" /> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 76
  • 81. ant deb (V) <exec executable="dpkg-buildpackage"> <arg value="-b" /> <arg value="-v${build.number}-$ {githash}" /> <arg value="-Zlzma" /> <arg value="-z9" /> <arg value="-k78532445" /> <arg value="-pgpg" /> <arg value="-sgpg" /> <arg value="-mMayflower Mapolis Team &lt;mapolis@mayflower.de&gt;" /> </exec> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 77
  • 82. ant deb (VI) <move todir="build/deb/"> <fileset dir="${basedir}/../"> <include name="mapolis*.deb" /> <include name="mapolis*.changes" /> </fileset> </move> <exec executable="dpkg-buildpackage"> <arg value="-Tclean" /> </exec> </target> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 78
  • 83. Deploy Staging ant clean ant deb-sign ant db-staging-up scp to all hosts Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 79
  • 84. Deploy Staging to live scp to all hosts Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 80
  • 85. Disadvantages and problems Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 81
  • 86. Build time 15 min on harddisk massive disk i/o 4 min on ramdisk :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 82
  • 87. Complexity beginning such a infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 83
  • 88. Jenkins: Single point of failure! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 84
  • 89. Cool stuff which is now possible Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 85
  • 90. Deploy by customer. :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 86
  • 91. Jenkins Chuck Norris Plugin Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 87
  • 92. git bisect start $BAD $GOOD Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 88
  • 93. Minimum time from bugreport to deploy: 30 minutes Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 89
  • 94. $ git branch hotfix-2011-08-22 $ git checkout hotfix-2011-08-22 $ git reset --hard "last stable sha-1" $ git cherry-pick "hotfix sha-1" $ echo build.number=23 > build.number $ ant deb $ scp build/deb/*.deb xyz.amazonaws.com:/ opt/repository/ $ git checkout master $ git push origin hotfix-2011-08-10 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 90
  • 95. Questions? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 91
  • 96. Thank you very much for your attention! Contact Florian Anderiasch Thorsten Rinne florian.anderiasch@mayflower.de thorsten.rinne@mayflower.de +49 89 242054-1 134 +49 89 242054-31 Mayflower GmbH Mayflower GmbH Mannhardtstr. 6 Mannhardtstr. 6 80538 München 80538 München Germany Germany © 201 Mayflower GmbH 1