The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
-
Upload
dennis-benkert -
Category
Technology
-
view
359 -
download
0
Transcript of The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013
![Page 1: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/1.jpg)
![Page 2: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/2.jpg)
The Last Mile
Problem
![Page 3: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/3.jpg)
![Page 4: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/4.jpg)
![Page 5: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/5.jpg)
![Page 6: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/6.jpg)
Development Live
![Page 7: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/7.jpg)
The Dog
Ate My Deployment
![Page 8: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/8.jpg)
Rule 1: Implement deployment at the
beginning of your project
![Page 9: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/9.jpg)
+ https://puphpet.com/
![Page 10: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/10.jpg)
Every configuration has to be
done by Puppet
![Page 11: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/11.jpg)
Developers and Operations
share the same configuration
![Page 12: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/12.jpg)
Rule 2: Automate everything
![Page 13: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/13.jpg)
![Page 14: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/14.jpg)
![Page 15: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/15.jpg)
Create Targets
For Everything
![Page 16: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/16.jpg)
Structure Your
Ant Files
![Page 17: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/17.jpg)
Use A Framework For This http://abc.tools.qafoo.com/
![Page 18: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/18.jpg)
$ ant build
![Page 19: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/19.jpg)
Rule 3: Test the quality of your
project
![Page 20: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/20.jpg)
![Page 21: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/21.jpg)
Jenkins PHP Template http://jenkins-php.org/
![Page 22: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/22.jpg)
PHP QA Tools
![Page 23: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/23.jpg)
Too many violations should
break your builds
![Page 24: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/24.jpg)
Test performance factors
of your application
![Page 25: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/25.jpg)
$this->assertLessThan( 10, $profile->getCollector('db') ->getQueryCount() );
![Page 26: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/26.jpg)
Rule 4: Create deployable artifacts
![Page 27: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/27.jpg)
Build them so that they only
need configuration to run
![Page 28: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/28.jpg)
Create them once reuse
them in all deployments
![Page 29: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/29.jpg)
Continous Integration
Testing Staging Live
![Page 30: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/30.jpg)
Rule 5: Run your deployment with
only one invocation
![Page 31: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/31.jpg)
![Page 32: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/32.jpg)
Choose Your
Deployment Tool
![Page 33: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/33.jpg)
Choose It
With Your Operations Team
![Page 34: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/34.jpg)
Shell Scripts
![Page 35: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/35.jpg)
![Page 36: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/36.jpg)
Choose A Tool
That Helps You
![Page 37: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/37.jpg)
Fabric
![Page 38: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/38.jpg)
Capistrano
![Page 39: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/39.jpg)
Rex
![Page 40: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/40.jpg)
group myserver => "server-a", "server-b"; task "deploy", group => "frontend", sub { deploy $tarball; needs "configure"; needs "test"; };
![Page 41: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/41.jpg)
Keep Your Deployment
Configuration With Your Code
![Page 42: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/42.jpg)
$ rex deploy –-tarball=version1.0.1.tar.gz
![Page 43: The Dog Ate My Deployment - Symfony Usergroup Cologne July 2013](https://reader035.fdocuments.in/reader035/viewer/2022062303/5562eb54d8b42ab47d8b4fdf/html5/thumbnails/43.jpg)