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


Thorsten Rinne I 12th October 201 Mainz, Germany
                                 1,




                                                   © 201 Mayflower GmbH
                                                        1
Team Lead / Scrum Master
Head of Open Source Labs

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




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




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




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




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




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


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




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




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




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




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




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




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




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




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


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




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




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



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




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


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




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




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




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




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




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




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




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




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




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




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


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 33
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 34
Who‘s still doing this? :-)




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




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




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


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




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


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


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




      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
Continuous Integration in
      PHP projects


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


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


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


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




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 52
http://www.flickr.com/photos/nirak/644337888/




Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 53
                                                           1th         1
One Ubuntu package to
    rule them all.
            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 54
Development VMs
Jenkins CI Server
 Selenium Server
Monitoring Server
  Testing Server
          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 55
http://www.flickr.com/photos/nirak/644337888/




   Only on production:
  Frontend Nodes 11.04
Backend Nodes 10.04 LTS

             Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 56
                                                                        1th         1
http://www.flickr.com/photos/nirak/644337888/




Mayflower DMZ



                                                             amazon AWS




Eucalyptus Cloud




                   Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 57
                                                                              1th         1
http://www.flickr.com/photos/nirak/644337888/




 Mayflower DMZ


 Developer Laptopamazon AWS
  with Ubuntu VM
(Git repo + complete
 Eucalyptus Cloud
   software stack)
                Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 58
                                                                           1th         1
http://www.flickr.com/photos/nirak/644337888/




Mayflower DMZ




            Gitorious Server                             amazon AWS


           Jenkins CI Server
             Puppet Master
Eucalyptus Cloud

            Selenium Server
               Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 59
                                                                          1th         1
http://www.flickr.com/photos/nirak/644337888/




           2 Frontnodes
         3 Backendnodes
Mayflower DMZ
    Development Monitor
         Staging Monitor
                    amazon AWS




Eucalyptus Cloud




                   Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 60
                                                                              1th         1
http://www.flickr.com/photos/nirak/644337888/




       Mayflower DMZ




  2 Frontnodes                                                  amazon AWS


2 Backendnodes
     Drupal Cloud
       Eucalyptus

  Live Monitor
                      Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 61
                                                                                 1th         1
http://www.flickr.com/photos/nirak/644337888/




   Configuration
Management done with



           Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 62
                                                                      1th         1
http://www.flickr.com/photos/nirak/644337888/




Configuration changes are
on every VM in 5 Minutes.
         #WIN

              Building a Cloud-based social network I   Mayflower GmbH I 1 October 201 I 63
                                                                         1th         1
Frontnode 1         Frontnode 2
            Varnish             Varnish
             nginx               nginx
            PHP 5.3             PHP 5.3



Backendnode 1      Backendnode 2
                                                          Backendnode 3
MySQL Master        MySQL Slave
                                                            RabbitMQ
  MogileFS           MogileFS
                                                           Apache Solr
 Memcached          Memcached
                                                             PHP 5.3
   PHP 5.3            PHP 5.3


                             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 64
Development workflow




           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 65
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 66
2. Post commit hook


Build triggered on Jenkins



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



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


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



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


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 71
At midnight:
      DocBlox
Static code analysis

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



              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 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 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 75
parallelTasks:
php_depend
   phpmd
  phpunit
   phpcpd
   phpcs
   jslint
         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 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 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 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 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 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 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 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 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 84
Deploy Staging to live
scp to all hosts




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


          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 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 87
Complexity beginning such
    a infrastructure


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


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


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



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


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


            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 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 95
Live
Demo
Questions?




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




Please rate me @ http://joind.in/talk/view/3904

Contact   Thorsten Rinne
          thorsten.rinne@mayflower.de
          +49 89 242054-31

          Mayflower GmbH
          Mannhardtstr. 6
          80538 München
          Germany



                                                  © 201 Mayflower GmbH
                                                       1

Contenu connexe

Tendances

Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenPascal Rapicault
 
A Git MVP Workflow
A Git MVP WorkflowA Git MVP Workflow
A Git MVP WorkflowBurt Lum
 
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...Turing Fest
 
PHP on Google App Engine
PHP on Google App EnginePHP on Google App Engine
PHP on Google App Enginetim4h0blyn
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013jsievers
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterBert Jan Schrijver
 
Html5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentationHtml5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentationMatthew Fabb
 

Tendances (8)

Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with Maven
 
HTML5: o que vem aí...
HTML5: o que vem aí...HTML5: o que vem aí...
HTML5: o que vem aí...
 
A Git MVP Workflow
A Git MVP WorkflowA Git MVP Workflow
A Git MVP Workflow
 
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...
Paul Campbell — A Modern Approach to Third-Party Embedded Widgets (Turing Fes...
 
PHP on Google App Engine
PHP on Google App EnginePHP on Google App Engine
PHP on Google App Engine
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps Disaster
 
Html5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentationHtml5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentation
 

Similaire à One Click Deployment with Jenkins

One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichMayflower GmbH
 
One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011Mayflower GmbH
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11Mayflower GmbH
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projectsMayflower GmbH
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...Flink Forward
 
Run Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**tRun Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**tMichael Schmidt
 
Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Mayflower GmbH
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 
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
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesAmazon Web Services
 
State-of-the-art real-time web applications
State-of-the-art real-time web applicationsState-of-the-art real-time web applications
State-of-the-art real-time web applicationsPaul Seiffert
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentifour_bhavesh
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
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
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 
5 Secrets to Successfully Publishing in Appcelerator's Marketplace
5 Secrets to Successfully Publishing in Appcelerator's Marketplace5 Secrets to Successfully Publishing in Appcelerator's Marketplace
5 Secrets to Successfully Publishing in Appcelerator's MarketplaceAxway Appcelerator
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangalorePeter Muessig
 

Similaire à One Click Deployment with Jenkins (20)

One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
 
One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011
 
HTML5 Workshop
HTML5 WorkshopHTML5 Workshop
HTML5 Workshop
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projects
 
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...Flink Forward San Francisco 2018: Andrew Gao &  Jeff Sharpe - "Finding Bad Ac...
Flink Forward San Francisco 2018: Andrew Gao & Jeff Sharpe - "Finding Bad Ac...
 
Run Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**tRun Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**t
 
Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 
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
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
State-of-the-art real-time web applications
State-of-the-art real-time web applicationsState-of-the-art real-time web applications
State-of-the-art real-time web applications
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
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
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 
5 Secrets to Successfully Publishing in Appcelerator's Marketplace
5 Secrets to Successfully Publishing in Appcelerator's Marketplace5 Secrets to Successfully Publishing in Appcelerator's Marketplace
5 Secrets to Successfully Publishing in Appcelerator's Marketplace
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Top 5 advanced php framework in 2018
Top 5 advanced php framework in 2018Top 5 advanced php framework in 2018
Top 5 advanced php framework in 2018
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
 

Plus 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
 

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

Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...DianaGray10
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 

Dernier (20)

Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...Explore the UiPath Community and ways you can benefit on your journey to auto...
Explore the UiPath Community and ways you can benefit on your journey to auto...
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 

One Click Deployment with Jenkins

  • 1. One Click Deployment with Jenkins Thorsten Rinne I 12th October 201 Mainz, Germany 1, © 201 Mayflower GmbH 1
  • 2. Team Lead / Scrum Master Head of Open Source Labs @ThorstenRinne Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 2
  • 3. Who are you? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 3
  • 4. Developers? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 4
  • 5. Administrators? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 5
  • 6. DevOps? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 6
  • 7. Continuous Integration? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 7
  • 8. How much time do you need for a release? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 8
  • 9. More than a year? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 9
  • 10. 6 - 12 months? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 10
  • 11. 1 - 6 months? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 11
  • 12. 2 - 4 weeks? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 12
  • 13. 1 - 14 days? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 13
  • 14. 1 - 24 hours? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 14
  • 15. Less than 15 minutes? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 15
  • 16. 15 Minutes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 16
  • 17. Why One Click Deployment? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 17
  • 18. Everything is getting faster. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 18
  • 19. Faster feedback from your customer / user Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 19
  • 20. Faster ROI (return on invest) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 20
  • 21. Faster response if the market changes Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 21
  • 22. Developers are lazy. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 23. Basic requirements Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 24. Agile software development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 24
  • 25. Scrum or Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 25
  • 26. Test Driven Development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 26
  • 27. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 27
  • 28. Continuous Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 28
  • 29. Continuous Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 30. Refactoring Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 31. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 32. Scrum Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 33. Scrum Continuous Kanban Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 34. Scrum Continuous Continuous Kanban Integration Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 35. Scrum Continuous Continuous Kanban Integration Inspection Continuous Deployment Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 36. Things you don‘t want. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 37. Having your SVN repo in your webserver‘s docroot. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 33
  • 38. 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 34
  • 39. Who‘s still doing this? :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 35
  • 40. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 36
  • 41. What do we need? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 37
  • 42. First: a central build server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 38
  • 43. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 39
  • 44. Continous Testing with PHPUnit Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 40
  • 45. Advantages Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 41
  • 46. Test results at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 42
  • 47. Software metrics at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 48. Errors can be identified fast and then fixed Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 44
  • 49. Awareness 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. Continuous Integration in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 47
  • 52. PHPUnit DocBlox Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 48
  • 53. Continuous Inspection in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 54. PHPCS PHP Depend PHPMD phpcpd jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 50
  • 55. jslint? yes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 51
  • 56. Infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 52
  • 57. http://www.flickr.com/photos/nirak/644337888/ Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 53 1th 1
  • 58. One Ubuntu package to rule them all. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
  • 59. Development VMs Jenkins CI Server Selenium Server Monitoring Server Testing Server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 55
  • 60. http://www.flickr.com/photos/nirak/644337888/ Only on production: Frontend Nodes 11.04 Backend Nodes 10.04 LTS Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 56 1th 1
  • 61. http://www.flickr.com/photos/nirak/644337888/ Mayflower DMZ amazon AWS Eucalyptus Cloud Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 57 1th 1
  • 62. http://www.flickr.com/photos/nirak/644337888/ Mayflower DMZ Developer Laptopamazon AWS with Ubuntu VM (Git repo + complete Eucalyptus Cloud software stack) Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 58 1th 1
  • 63. http://www.flickr.com/photos/nirak/644337888/ Mayflower DMZ Gitorious Server amazon AWS Jenkins CI Server Puppet Master Eucalyptus Cloud Selenium Server Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 59 1th 1
  • 64. http://www.flickr.com/photos/nirak/644337888/ 2 Frontnodes 3 Backendnodes Mayflower DMZ Development Monitor Staging Monitor amazon AWS Eucalyptus Cloud Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 60 1th 1
  • 65. http://www.flickr.com/photos/nirak/644337888/ Mayflower DMZ 2 Frontnodes amazon AWS 2 Backendnodes Drupal Cloud Eucalyptus Live Monitor Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 61 1th 1
  • 66. http://www.flickr.com/photos/nirak/644337888/ Configuration Management done with Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 62 1th 1
  • 67. http://www.flickr.com/photos/nirak/644337888/ Configuration changes are on every VM in 5 Minutes. #WIN Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 63 1th 1
  • 68. Frontnode 1 Frontnode 2 Varnish Varnish nginx nginx PHP 5.3 PHP 5.3 Backendnode 1 Backendnode 2 Backendnode 3 MySQL Master MySQL Slave RabbitMQ MogileFS MogileFS Apache Solr Memcached Memcached PHP 5.3 PHP 5.3 PHP 5.3 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 64
  • 69. Development workflow Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 65
  • 70. 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 66
  • 71. 2. Post commit hook Build triggered on Jenkins Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 67
  • 72. Jenkins build checks Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 68
  • 73. 1. PHPUnit Build: Unittests Controller Tests (Zend_Test) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 69
  • 74. 2. Debian Package Build Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 70
  • 75. 3. Deploy to staging 4. Deploy staging to live Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 71
  • 76. At midnight: DocBlox Static code analysis Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 72
  • 77. What is a build process? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 73
  • 78. 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 74
  • 79. 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 75
  • 80. parallelTasks: php_depend phpmd phpunit phpcpd phpcs jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 76
  • 81. 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 77
  • 82. 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 78
  • 83. 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 79
  • 84. 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 80
  • 85. 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 81
  • 86. 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 82
  • 87. 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 83
  • 88. 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 84
  • 89. Deploy Staging to live scp to all hosts Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 85
  • 90. Disadvantages and problems Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 86
  • 91. 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 87
  • 92. Complexity beginning such a infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 88
  • 93. Jenkins: Single point of failure! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 89
  • 94. Cool stuff which is now possible Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 90
  • 95. Deploy by customer. :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 91
  • 96. Jenkins Chuck Norris Plugin Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 92
  • 97. git bisect start $BAD $GOOD Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 93
  • 98. Minimum time from bugreport to deploy: 30 minutes Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 94
  • 99. $ 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 95
  • 101. Questions? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 97
  • 102. Thank you very much for your attention! Please rate me @ http://joind.in/talk/view/3904 Contact Thorsten Rinne thorsten.rinne@mayflower.de +49 89 242054-31 Mayflower GmbH Mannhardtstr. 6 80538 München Germany © 201 Mayflower GmbH 1