SlideShare uma empresa Scribd logo
1 de 96
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Develop and Deploy Outside the Repo
Develop and Deploy Outside the RepoDevelop and Deploy Outside the Repo
Develop and Deploy Outside the Repoafragen
 
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 AsCodeHaja R
 
Git with t for teams
Git with t for teamsGit with t for teams
Git with t for teamsSven Peters
 
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 HiptestCommunity Manager @Hiptest
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams Atlassian
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterBert Jan Schrijver
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterBert Jan Schrijver
 
TuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in TuleapTuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in TuleapTuleap
 
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 ClaytonDaniel Stange
 
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...César Hernández
 
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 TestingKatie Chin
 
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 DevelopmentLemi Orhan Ergin
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow WorkshopSyed Imam
 
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 ControlSterling Hamilton
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityChristian Trabold
 
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 EngineWP Engine UK
 
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 usersTuleap
 
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 2014Mozammel Haque
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFSMohamed Samy
 
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...apidays
 

Mais procurados (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...
 

Destaque

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)Antony Skinner
 
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?QDQ media
 
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 FrauenCallwey Verlag
 
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 emotionsQuotidiano Piemontese
 
Pensar de San Jacinto Febrero 2016
Pensar de San Jacinto Febrero 2016Pensar de San Jacinto Febrero 2016
Pensar de San Jacinto Febrero 2016Pensar San Jacinto
 
Kaspiysk
KaspiyskKaspiysk
KaspiyskSchool
 
Health Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene HayesHealth Datapalooza 2013: Datalab - Eugene Hayes
Health Datapalooza 2013: Datalab - Eugene HayesHealth Data Consortium
 
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 archivingSatya Harish
 
YouLab Global - Ageless Living on Purpose!
YouLab Global - Ageless Living on Purpose!YouLab Global - Ageless Living on Purpose!
YouLab Global - Ageless Living on Purpose!SuperNovae17
 
S4 tarea4 zupel
S4 tarea4 zupel S4 tarea4 zupel
S4 tarea4 zupel luzyfer44
 
Folleto 2015
Folleto 2015Folleto 2015
Folleto 2015facanticx
 
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-madiedoAxl Razvan
 
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 #1Mickaël Rémond
 
Utel Systems - Stinga Monitoring System
Utel Systems - Stinga Monitoring SystemUtel Systems - Stinga Monitoring System
Utel Systems - Stinga Monitoring Systemfgorseth
 
About The institution of Engineers (India)
About The institution of Engineers (India)About The institution of Engineers (India)
About The institution of Engineers (India)IEI GSC
 

Destaque (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)
 

Semelhante a One Click Deployment with Jenkins

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 2011Mayflower GmbH
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projectsMayflower GmbH
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11Mayflower GmbH
 
Kontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projektenKontinuierliche verbesserung in php projekten
Kontinuierliche verbesserung in php projektenJohann-Peter Hartmann
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHPArno Schneider
 
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 MarketNikita Sharma
 
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 toolsMayflower GmbH
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangalorePeter Muessig
 
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-74Ivy Rueb
 
Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Enterprise PHP (php|works 2008)
Enterprise PHP (php|works 2008)Ivo Jansch
 
Hire cake php developer
Hire cake php developerHire cake php developer
Hire cake php developerPHPDeveloper
 
Some Very Useful PHP Tools
Some Very Useful PHP ToolsSome Very Useful PHP Tools
Some Very Useful PHP ToolsSem Jacobs
 

Semelhante a One Click Deployment with Jenkins (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
 

Mais de Mayflower GmbH

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...Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftMayflower GmbH
 
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 ClientMayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingMayflower GmbH
 
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...Mayflower GmbH
 
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 AlloyMayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming MythbustersMayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im GlückMayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefernMayflower GmbH
 
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 SprintsMayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalierenMayflower GmbH
 
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 BreakfastMayflower GmbH
 

Mais 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
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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 MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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 RobisonAnna Loughnan Colquhoun
 
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...Enterprise Knowledge
 
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.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
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 interpreternaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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...Miguel Araújo
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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...
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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

  • 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