SlideShare a Scribd company logo
1 of 86
Download to read offline
One Click Deployment with Jenkins


Thorsten Rinne I 22. August 201 München
                               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
Basic requirements




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


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




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




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




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




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




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




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




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




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




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




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


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




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




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




                 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
Continous Testing with
      PHPUnit


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




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


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


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


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 42
Awareness




      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 43
Awareness!
      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 44
Continuous Integration in
      PHP projects


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 45
PHPUnit
phpDocumentator
    PHPDox

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


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


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




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 50
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 51
Developer VM
Ubuntu 11.04


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


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


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

              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 55
Front Nodes
      Varnish
       nginx
 PHP 5.3 with APC
Zend Framework 1.11
    dojo toolkit
    Doctrine 2.1
           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 56
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 57
Development workflow




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


Build triggered on Jenkins



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



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

                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 62
Debian Package Build



            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 63
Deploy to staging
Deploy staging to live


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



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




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


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


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


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


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



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


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


            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 79
$ 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 80
Questions?




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




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

          Mayflower GmbH
          Mannhardtstr. 6
          80538 München
          Germany



                                          © 201 Mayflower GmbH
                                               1

More Related Content

What's hot

Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentShahar Evron
 
Drupal Performance
Drupal Performance Drupal Performance
Drupal Performance Pantheon
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous DeliveryGianni Bombelli
 
Red5 Open Source Flash Server
Red5 Open Source Flash ServerRed5 Open Source Flash Server
Red5 Open Source Flash ServerSunil Swain
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumBen Ramsey
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 
Deploying PHP applications with Phing
Deploying PHP applications with PhingDeploying PHP applications with Phing
Deploying PHP applications with PhingMichiel Rook
 
Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy applicationColdFusionConference
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniquesMike McGarr
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Step away from that knife!
Step away from that knife!Step away from that knife!
Step away from that knife!Michael Goetz
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composernuppla
 
Phing: Building with PHP
Phing: Building with PHPPhing: Building with PHP
Phing: Building with PHPhozn
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?nuppla
 
Putting Phing to Work for You
Putting Phing to Work for YouPutting Phing to Work for You
Putting Phing to Work for Youhozn
 
FuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.comFuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.comChristopher Cubos
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFotis Alexandrou
 
PHPUnit with CakePHP and Yii
PHPUnit with CakePHP and YiiPHPUnit with CakePHP and Yii
PHPUnit with CakePHP and Yiimadhavi Ghadge
 
Tooling for the productive front end developer
Tooling for the productive front end developerTooling for the productive front end developer
Tooling for the productive front end developerMaurice De Beijer [MVP]
 

What's hot (20)

Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application Deployment
 
Drupal Performance
Drupal Performance Drupal Performance
Drupal Performance
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous Delivery
 
Red5 Open Source Flash Server
Red5 Open Source Flash ServerRed5 Open Source Flash Server
Red5 Open Source Flash Server
 
Desktop Apps with PHP and Titanium
Desktop Apps with PHP and TitaniumDesktop Apps with PHP and Titanium
Desktop Apps with PHP and Titanium
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Deploying PHP applications with Phing
Deploying PHP applications with PhingDeploying PHP applications with Phing
Deploying PHP applications with Phing
 
Continuous delivery of your legacy application
Continuous delivery of your legacy applicationContinuous delivery of your legacy application
Continuous delivery of your legacy application
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Step away from that knife!
Step away from that knife!Step away from that knife!
Step away from that knife!
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
Phing: Building with PHP
Phing: Building with PHPPhing: Building with PHP
Phing: Building with PHP
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?
 
Putting Phing to Work for You
Putting Phing to Work for YouPutting Phing to Work for You
Putting Phing to Work for You
 
FuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.comFuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.com
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
 
FuelPHP
FuelPHPFuelPHP
FuelPHP
 
PHPUnit with CakePHP and Yii
PHPUnit with CakePHP and YiiPHPUnit with CakePHP and Yii
PHPUnit with CakePHP and Yii
 
Tooling for the productive front end developer
Tooling for the productive front end developerTooling for the productive front end developer
Tooling for the productive front end developer
 

Similar to One click deployment with Jenkins - PHP Munich

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 - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Mayflower GmbH
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projectsMayflower GmbH
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with JenkinsMayflower 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
 
One-Click Deployment with Jenkins
One-Click Deployment with JenkinsOne-Click Deployment with Jenkins
One-Click Deployment with JenkinsMayflower GmbH
 
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
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHPArno Schneider
 
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
 
PHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBeneluxPHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBeneluxNick Belhomme
 
Agile php software development
Agile php software developmentAgile php software development
Agile php software developmentMayflower GmbH
 
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
 

Similar to One click deployment with Jenkins - PHP Munich (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 - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10
 
Continuous Improvement in PHP projects
Continuous Improvement in PHP projectsContinuous Improvement in PHP projects
Continuous Improvement in PHP projects
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with Jenkins
 
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
 
One-Click Deployment with Jenkins
One-Click Deployment with JenkinsOne-Click Deployment with Jenkins
One-Click Deployment with Jenkins
 
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
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
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
 
UI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for BangaloreUI5con 2019 - Keynote for Bangalore
UI5con 2019 - Keynote for Bangalore
 
PHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBeneluxPHP Quality Assurance Workshop PHPBenelux
PHP Quality Assurance Workshop PHPBenelux
 
Agile php software development
Agile php software developmentAgile php software development
Agile php software development
 
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
 
continuousphp
continuousphpcontinuousphp
continuousphp
 
CakePHP Development
CakePHP DevelopmentCakePHP Development
CakePHP Development
 
AWT.pptx
AWT.pptxAWT.pptx
AWT.pptx
 

More from 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
 

More from 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
 

Recently uploaded

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 

Recently uploaded (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

One click deployment with Jenkins - PHP Munich

  • 1. One Click Deployment with Jenkins Thorsten Rinne I 22. August 201 München 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. Basic requirements Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 23. Agile software development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 24. Scrum or Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 24
  • 25. Test Driven Development Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 25
  • 26. Continuous Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 26
  • 27. Continuous Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 27
  • 28. Refactoring Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 28
  • 29. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 30. Scrum Kanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 31. Scrum Continuous Kanban Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 32. Scrum Continuous Continuous Kanban Integration Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 33. Scrum Continuous Continuous Kanban Integration Inspection Continuous Deployment Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 34. Things you don‘t want. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 35. Having your SVN repo in your webserver‘s docroot. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 36. 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 32
  • 37. Who‘s still doing this? :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 33
  • 38. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 34
  • 39. What do we need? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 35
  • 40. First: a central build server 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. Continous Testing with PHPUnit Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 38
  • 43. Advantages Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 39
  • 44. Test results at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 40
  • 45. Software metrics at one central page Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 41
  • 46. Errors can be identified fast and then fixed Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 42
  • 47. Awareness Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 48. Awareness! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 44
  • 49. Continuous Integration in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 45
  • 50. PHPUnit phpDocumentator PHPDox Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 46
  • 51. Continuous Inspection in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 47
  • 52. PHPCS PHP Depend PHPMD phpcpd jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 48
  • 53. jslint? yes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 54. Infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 50
  • 55. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 51
  • 56. Developer VM Ubuntu 11.04 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 52
  • 57. Testing VM + Jenkins VM: Ubuntu 11.04 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 53
  • 58. Staging VMs: Frontend: Ubuntu 11.04 Backend: Ubuntu 10.04 LTS Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
  • 59. amazon AWS live: Frontend: Ubuntu 11.04 Backend: Ubuntu 10.04 LTS Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 55
  • 60. Front Nodes Varnish nginx PHP 5.3 with APC Zend Framework 1.11 dojo toolkit Doctrine 2.1 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 56
  • 61. 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 57
  • 62. Development workflow Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 58
  • 63. 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 59
  • 64. 2. Post commit hook Build triggered on Jenkins Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 60
  • 65. Jenkins build checks Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 61
  • 66. PHPUnit Build: Unittests Controller Tests (Zend_Test) PHP Code Coverage Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 62
  • 67. Debian Package Build Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 63
  • 68. Deploy to staging Deploy staging to live Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 64
  • 69. What is a build process? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 65
  • 70. 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 66
  • 71. parallelTasks: php_depend phpmd phpunit phpcpd phpcs jslint Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 67
  • 72. 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 68
  • 73. 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 69
  • 74. Deploy Staging to live scp to all hosts Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 70
  • 75. Disadvantages and problems Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 71
  • 76. 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 72
  • 77. Complexity beginning such a infrastructure Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 73
  • 78. Jenkins: Single point of failure! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 74
  • 79. Cool stuff which is now possible Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 75
  • 80. Deploy by customer. :-) Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 76
  • 81. Jenkins Chuck Norris Plugin Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 77
  • 82. git bisect start $BAD $GOOD Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 78
  • 83. Minimum time from bugreport to deploy: 30 minutes Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 79
  • 84. $ 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 80
  • 85. Questions? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 81
  • 86. Thank you very much for your attention! Contact Thorsten Rinne thorsten.rinne@mayflower.de +49 89 242054-31 Mayflower GmbH Mannhardtstr. 6 80538 München Germany © 201 Mayflower GmbH 1