Your SlideShare is downloading. ×
0
rock-solid TYPO3 development
with continuous integration
and deployment
TYPO3Camp PL - 2013.11
Sonntag, 20. Oktober 13
@

eiv
oll
t

Tolleiv
Nietsch
Senior Developer at

Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
agenda
Sonntag, 20. Oktober 13
disclaimer
Sonntag, 20. Oktober 13
tools

disclaimer
Sonntag, 20. Oktober 13
tools

priorities

Sonntag, 20. Oktober 13

disclaimer
tools

disclaimer

priorities

details

Sonntag, 20. Oktober 13
tools

disclaimer

priorities

details

Sonntag, 20. Oktober 13

NIH
the big picture
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13

Unit Tests
Version Control

Sonntag, 20. Oktober 13

Unit Tests
Unit Tests

Sonntag, 20. Oktober 13

Build
Unit Tests

Sonntag, 20. Oktober 13

Build
Build

Sonntag, 20. Oktober 13

Install on
“Integration”
Build

Sonntag, 20. Oktober 13

Install on
“Integration”
Install on
“Integration”

Sonntag, 20. Oktober 13

Integration Tests
Install on
“Integration”

Sonntag, 20. Oktober 13

Integration Tests
Integration Tests

Sonntag, 20. Oktober 13

Install on
„Staging“
Integration Tests

Sonntag, 20. Oktober 13

Install on
„Staging“
Integration Tests

Sonntag, 20. Oktober 13

Install on
„Staging“
Install on
„Staging“

Sonntag, 20. Oktober 13

Install on
„Production“
too simple?
Sonntag, 20. Oktober 13
challenges
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
unique
dev environment
Sonntag, 20. Oktober 13
Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13
Version Control

PHP lint

Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13
Version Control

Sonntag, 20. Oktober 13

Code Reviews
Version Control

Code Reviews

„ The Unexpected Outcomes Of
Code Review“ [6]
Sonntag, 20. Oktober 13
Code Reviews

Unit Tests

standalone extension tests see @helhum [2] / @tolleiv [3]
Sonntag, 20. Oktober 13
Files
DB

Unit Tests

Build
Installer
Settings

Sonntag, 20. Oktober 13
.tar.gz
“virtual
package” (revision)

minify js/css
Jenkins
Unit Tests

Build

grunt
composer

Sonntag, 20. Oktober 13
Build

Analyse

TYPO3 Coding Standards Project [1]

Sonntag, 20. Oktober 13
fragile

Analyse

Install on
“Integration”

shared dev
server

Sonntag, 20. Oktober 13
Install on
“Integration”

Sonntag, 20. Oktober 13

Unittests
Unittests

Integration Tests

Cucumber /
Behat

Sonntag, 20. Oktober 13

*Spec
Selenium
Apache Jmeter

Install on
“Staging”

Integration Tests
✔
✔
✔

Sonntag, 20. Oktober 13
Green / blue
deployments

Install on
“Staging”

Sonntag, 20. Oktober 13

Install on
„Production“
Green / blue
deployments

Install on
“Staging”

Install on
„Production“

Zero Downtime

Sonntag, 20. Oktober 13
Green / blue
deployments

Install on
“Staging”

Install on
„Production“

Zero Downtime

Sonntag, 20. Oktober 13

Plan B:
r...
Green / blue
deployments

Install on
“Staging”

Plan B:
rollback

Install on
„Production“

Zero Downtime
Green/blue
big sc...
Install on
“Staging”

Sonntag, 20. Oktober 13

Install on
„Production“
....
Sonntag, 20. Oktober 13
pipeline visualization
for team dashboards
Build

#280

Sonntag, 20. Oktober 13

Static Code
Analysis

Install on
“Integra...
pipeline visualization
for team dashboards
Build

#281
#280

Sonntag, 20. Oktober 13

Static Code
Analysis

Install on
“In...
pipeline visualization
for team dashboards
Build

#282
#281
#280

Sonntag, 20. Oktober 13

Static Code
Analysis

Install o...
pipeline visualization
for team dashboards
Build

#283
#282
#281
#280

Sonntag, 20. Oktober 13

Static Code
Analysis

Inst...
pipeline visualization
for team dashboards
Build

#284
#283
#282
#281
#280

Sonntag, 20. Oktober 13

Static Code
Analysis
...
pipeline visualization
for team dashboards
Build
#285
#284
#283
#282
#281
#280

Sonntag, 20. Oktober 13

Static Code
Analy...
Integration

Staging

Sandbox

Production A

Sonntag, 20. Oktober 13

Devbox

Production B
EnvSettingTool

Sonntag, 20. Oktober 13
deployment

feature release
Sonntag, 20. Oktober 13
TestPyramid
Martin Fowler:
Test Pyramid [9]

Sonntag, 20. Oktober 13
TestPyramid
Martin Fowler:
Test Pyramid [9]

Sonntag, 20. Oktober 13
test plans
✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

✔

Sonntag, 20. Oktober 13

✔
✔

✔

✔
full stack
knowledge

Sonntag, 20. Oktober 13
full stack
debugging

Sonntag, 20. Oktober 13
DevOps, yeah!

Sonntag, 20. Oktober 13
startup time

Sonntag, 20. Oktober 13
knowledge sharing
hackathons

mentoring
developers
meetings

Sonntag, 20. Oktober 13

job chicken
read on

[1] TYPO3 Coding Standards Project

http://forge.typo3.org/projects/team-php_codesniffer/wiki/Using_the_TYPO3_Cod...
Thank you!
Any questions?
www.aoemedia.com
@aoepeople
www.tolleiv.de
@tolleiv
Sonntag, 20. Oktober 13
Upcoming SlideShare
Loading in...5
×

rock-solid TYPO3 development with continuous integration and deployment

2,574

Published on

Shows our best practices of TYPO3 deployment and how these should be integrated in your development workflow. Highlights some of the most recent technologies and how AOE GmbH integrates them towards a smooth and quick rollout of web applications.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,574
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
26
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "rock-solid TYPO3 development with continuous integration and deployment"

  1. 1. rock-solid TYPO3 development with continuous integration and deployment TYPO3Camp PL - 2013.11 Sonntag, 20. Oktober 13
  2. 2. @ eiv oll t Tolleiv Nietsch Senior Developer at Sonntag, 20. Oktober 13
  3. 3. Sonntag, 20. Oktober 13
  4. 4. Sonntag, 20. Oktober 13
  5. 5. Sonntag, 20. Oktober 13
  6. 6. agenda Sonntag, 20. Oktober 13
  7. 7. disclaimer Sonntag, 20. Oktober 13
  8. 8. tools disclaimer Sonntag, 20. Oktober 13
  9. 9. tools priorities Sonntag, 20. Oktober 13 disclaimer
  10. 10. tools disclaimer priorities details Sonntag, 20. Oktober 13
  11. 11. tools disclaimer priorities details Sonntag, 20. Oktober 13 NIH
  12. 12. the big picture Sonntag, 20. Oktober 13
  13. 13. Sonntag, 20. Oktober 13
  14. 14. Version Control Sonntag, 20. Oktober 13
  15. 15. Version Control Sonntag, 20. Oktober 13
  16. 16. Version Control Sonntag, 20. Oktober 13 Unit Tests
  17. 17. Version Control Sonntag, 20. Oktober 13 Unit Tests
  18. 18. Unit Tests Sonntag, 20. Oktober 13 Build
  19. 19. Unit Tests Sonntag, 20. Oktober 13 Build
  20. 20. Build Sonntag, 20. Oktober 13 Install on “Integration”
  21. 21. Build Sonntag, 20. Oktober 13 Install on “Integration”
  22. 22. Install on “Integration” Sonntag, 20. Oktober 13 Integration Tests
  23. 23. Install on “Integration” Sonntag, 20. Oktober 13 Integration Tests
  24. 24. Integration Tests Sonntag, 20. Oktober 13 Install on „Staging“
  25. 25. Integration Tests Sonntag, 20. Oktober 13 Install on „Staging“
  26. 26. Integration Tests Sonntag, 20. Oktober 13 Install on „Staging“
  27. 27. Install on „Staging“ Sonntag, 20. Oktober 13 Install on „Production“
  28. 28. too simple? Sonntag, 20. Oktober 13
  29. 29. challenges Sonntag, 20. Oktober 13
  30. 30. Sonntag, 20. Oktober 13
  31. 31. Sonntag, 20. Oktober 13
  32. 32. Sonntag, 20. Oktober 13
  33. 33. unique dev environment Sonntag, 20. Oktober 13
  34. 34. Sonntag, 20. Oktober 13
  35. 35. Version Control Sonntag, 20. Oktober 13
  36. 36. Version Control PHP lint Sonntag, 20. Oktober 13
  37. 37. Version Control Sonntag, 20. Oktober 13
  38. 38. Version Control Sonntag, 20. Oktober 13
  39. 39. Version Control Sonntag, 20. Oktober 13 Code Reviews
  40. 40. Version Control Code Reviews „ The Unexpected Outcomes Of Code Review“ [6] Sonntag, 20. Oktober 13
  41. 41. Code Reviews Unit Tests standalone extension tests see @helhum [2] / @tolleiv [3] Sonntag, 20. Oktober 13
  42. 42. Files DB Unit Tests Build Installer Settings Sonntag, 20. Oktober 13
  43. 43. .tar.gz “virtual package” (revision) minify js/css Jenkins Unit Tests Build grunt composer Sonntag, 20. Oktober 13
  44. 44. Build Analyse TYPO3 Coding Standards Project [1] Sonntag, 20. Oktober 13
  45. 45. fragile Analyse Install on “Integration” shared dev server Sonntag, 20. Oktober 13
  46. 46. Install on “Integration” Sonntag, 20. Oktober 13 Unittests
  47. 47. Unittests Integration Tests Cucumber / Behat Sonntag, 20. Oktober 13 *Spec Selenium
  48. 48. Apache Jmeter Install on “Staging” Integration Tests ✔ ✔ ✔ Sonntag, 20. Oktober 13
  49. 49. Green / blue deployments Install on “Staging” Sonntag, 20. Oktober 13 Install on „Production“
  50. 50. Green / blue deployments Install on “Staging” Install on „Production“ Zero Downtime Sonntag, 20. Oktober 13
  51. 51. Green / blue deployments Install on “Staging” Install on „Production“ Zero Downtime Sonntag, 20. Oktober 13 Plan B: rollback
  52. 52. Green / blue deployments Install on “Staging” Plan B: rollback Install on „Production“ Zero Downtime Green/blue big scale Sonntag, 20. Oktober 13
  53. 53. Install on “Staging” Sonntag, 20. Oktober 13 Install on „Production“
  54. 54. .... Sonntag, 20. Oktober 13
  55. 55. pipeline visualization for team dashboards Build #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  56. 56. pipeline visualization for team dashboards Build #281 #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  57. 57. pipeline visualization for team dashboards Build #282 #281 #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  58. 58. pipeline visualization for team dashboards Build #283 #282 #281 #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  59. 59. pipeline visualization for team dashboards Build #284 #283 #282 #281 #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  60. 60. pipeline visualization for team dashboards Build #285 #284 #283 #282 #281 #280 Sonntag, 20. Oktober 13 Static Code Analysis Install on “Integration” Unit Tests Integration Tests Acceptance Tests
  61. 61. Integration Staging Sandbox Production A Sonntag, 20. Oktober 13 Devbox Production B
  62. 62. EnvSettingTool Sonntag, 20. Oktober 13
  63. 63. deployment feature release Sonntag, 20. Oktober 13
  64. 64. TestPyramid Martin Fowler: Test Pyramid [9] Sonntag, 20. Oktober 13
  65. 65. TestPyramid Martin Fowler: Test Pyramid [9] Sonntag, 20. Oktober 13
  66. 66. test plans ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Sonntag, 20. Oktober 13 ✔ ✔ ✔ ✔
  67. 67. full stack knowledge Sonntag, 20. Oktober 13
  68. 68. full stack debugging Sonntag, 20. Oktober 13
  69. 69. DevOps, yeah! Sonntag, 20. Oktober 13
  70. 70. startup time Sonntag, 20. Oktober 13
  71. 71. knowledge sharing hackathons mentoring developers meetings Sonntag, 20. Oktober 13 job chicken
  72. 72. read on [1] TYPO3 Coding Standards Project http://forge.typo3.org/projects/team-php_codesniffer/wiki/Using_the_TYPO3_Coding_Standard [2] @helhum - standalone extension tests http://typo3.helmut-hummel.de/post/63972451370/executing-typo3-cms-unit-test-tests-in-phpstorm [3] @tolleiv - standalone unit tests https://github.com/tolleiv/typo3-ext-ci [4] Capistrano on Github https://github.com/capistrano/capistrano [6] The Unexpected Outcomes Of Code Review http://blog.codeclimate.com/blog/2013/10/09/unexpected-outcomes-of-code-reviews/ [7] EnvSettingTool on Github https://github.com/AOEmedia/EnvSettingsTool [8] Performance Measurement and Tuning http://www.slideshare.net/aoemedia/performance-measurement-and-tuning [9] Martin Fowler: Test Pyramid http://martinfowler.com/bliki/TestPyramid.html http://www.slideshare.net/aoemedia/ [10] EasyDeployWorkflows https://github.com/AOEmedia/EasyDeployWorkflows [11] EXT:coreapi on Github https://github.com/etobi/ext-coreapi Sonntag, 20. Oktober 13
  73. 73. Thank you! Any questions? www.aoemedia.com @aoepeople www.tolleiv.de @tolleiv Sonntag, 20. Oktober 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×