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