• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
One click deployment with Jenkins - PHP Munich
 

One click deployment with Jenkins - PHP Munich

on

  • 5,894 views

 

Statistics

Views

Total Views
5,894
Views on SlideShare
5,894
Embed Views
0

Actions

Likes
4
Downloads
47
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    One click deployment with Jenkins - PHP Munich One click deployment with Jenkins - PHP Munich Presentation Transcript

    • One Click Deployment with JenkinsThorsten Rinne I 22. August 201 München 1, © 201 Mayflower GmbH 1
    • Team LeadScrum MasterHead 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 ClickDeployment? 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 fromyour 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 responseif 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
    • ScrumKanban Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
    • Scrum ContinuousKanban Integration Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
    • Scrum Continuous ContinuousKanban Integration Inspection Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
    • Scrum Continuous ContinuousKanban Integration InspectionContinuous 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 inyour 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
    • PHPUnitphpDocumentator 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
    • PHPCSPHP 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 VMUbuntu 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.04Backend: Ubuntu 10.04 LTS Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
    • amazon AWS live: Frontend: Ubuntu 11.04Backend: 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 APCZend Framework 1.11 dojo toolkit Doctrine 2.1 Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 56
    • Backend NodesMySQL 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 hookBuild 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: UnittestsController 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 stagingDeploy 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 cleanant 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 Packageant autoloader ant phpunit ant clean ant compilejsant compilecss Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 68
    • Deploy Staging ant clean ant deb-signant db-staging-upscp to all hosts Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 69
    • Deploy Staging to livescp 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 time15 min on harddisk massive disk i/o4 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 stuffwhich 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 frombugreport 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