rock-solid typo3 development with continuous integration and deployment

73
rock-solid TYPO3 development with continuous integration and deployment TYPO3Camp PL - 2013.11 Sonntag, 20. Oktober 13

Upload: aoe

Post on 11-May-2015

515 views

Category:

Technology


1 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: rock-solid TYPO3 development with continuous integration and deployment

rock-solid TYPO3 developmentwith continuous integration

and deployment

TYPO3Camp PL - 2013.11

Sonntag, 20. Oktober 13

Page 2: rock-solid TYPO3 development with continuous integration and deployment

TolleivNietschSenior Developer at

@tolleiv

Sonntag, 20. Oktober 13

Page 3: rock-solid TYPO3 development with continuous integration and deployment

�������� � ���������

���������

�������������� �

Sonntag, 20. Oktober 13

Page 4: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 5: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 6: rock-solid TYPO3 development with continuous integration and deployment

agenda

Sonntag, 20. Oktober 13

Page 7: rock-solid TYPO3 development with continuous integration and deployment

disclaimer

Sonntag, 20. Oktober 13

Page 8: rock-solid TYPO3 development with continuous integration and deployment

disclaimertools

Sonntag, 20. Oktober 13

Page 9: rock-solid TYPO3 development with continuous integration and deployment

disclaimertools

priorities

Sonntag, 20. Oktober 13

Page 10: rock-solid TYPO3 development with continuous integration and deployment

disclaimertools

priorities

details

Sonntag, 20. Oktober 13

Page 11: rock-solid TYPO3 development with continuous integration and deployment

disclaimertools

priorities

detailsNIH

Sonntag, 20. Oktober 13

Page 12: rock-solid TYPO3 development with continuous integration and deployment

the big picture

Sonntag, 20. Oktober 13

Page 13: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 14: rock-solid TYPO3 development with continuous integration and deployment

Version Control

Sonntag, 20. Oktober 13

Page 15: rock-solid TYPO3 development with continuous integration and deployment

Version Control

Sonntag, 20. Oktober 13

Page 16: rock-solid TYPO3 development with continuous integration and deployment

Unit TestsVersion Control

Sonntag, 20. Oktober 13

Page 17: rock-solid TYPO3 development with continuous integration and deployment

Unit TestsVersion Control

Sonntag, 20. Oktober 13

Page 18: rock-solid TYPO3 development with continuous integration and deployment

Unit Tests Build

Sonntag, 20. Oktober 13

Page 19: rock-solid TYPO3 development with continuous integration and deployment

Unit Tests Build

Sonntag, 20. Oktober 13

Page 20: rock-solid TYPO3 development with continuous integration and deployment

Install on“Integration”Build

Sonntag, 20. Oktober 13

Page 21: rock-solid TYPO3 development with continuous integration and deployment

Install on“Integration”Build

Sonntag, 20. Oktober 13

Page 22: rock-solid TYPO3 development with continuous integration and deployment

Install on“Integration” Integration Tests

Sonntag, 20. Oktober 13

Page 23: rock-solid TYPO3 development with continuous integration and deployment

Install on“Integration” Integration Tests

Sonntag, 20. Oktober 13

Page 24: rock-solid TYPO3 development with continuous integration and deployment

Install on „Staging“Integration Tests

Sonntag, 20. Oktober 13

Page 25: rock-solid TYPO3 development with continuous integration and deployment

Install on „Staging“Integration Tests

Sonntag, 20. Oktober 13

Page 26: rock-solid TYPO3 development with continuous integration and deployment

Install on „Staging“Integration Tests

Sonntag, 20. Oktober 13

Page 27: rock-solid TYPO3 development with continuous integration and deployment

Install on „Staging“

Install on„Production“

Sonntag, 20. Oktober 13

Page 28: rock-solid TYPO3 development with continuous integration and deployment

too simple?

Sonntag, 20. Oktober 13

Page 29: rock-solid TYPO3 development with continuous integration and deployment

challenges

Sonntag, 20. Oktober 13

Page 30: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 31: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 32: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 33: rock-solid TYPO3 development with continuous integration and deployment

uniquedev environment

Sonntag, 20. Oktober 13

Page 34: rock-solid TYPO3 development with continuous integration and deployment

Sonntag, 20. Oktober 13

Page 35: rock-solid TYPO3 development with continuous integration and deployment

Version Control

Sonntag, 20. Oktober 13

Page 36: rock-solid TYPO3 development with continuous integration and deployment

Version Control

PHP lint

Sonntag, 20. Oktober 13

Page 37: rock-solid TYPO3 development with continuous integration and deployment

Version Control

Sonntag, 20. Oktober 13

Page 38: rock-solid TYPO3 development with continuous integration and deployment

Version Control

Sonntag, 20. Oktober 13

Page 39: rock-solid TYPO3 development with continuous integration and deployment

Code ReviewsVersion Control

Sonntag, 20. Oktober 13

Page 40: rock-solid TYPO3 development with continuous integration and deployment

Code Reviews

„ The Unexpected Outcomes Of Code Review“ [6]

Version Control

Sonntag, 20. Oktober 13

Page 41: rock-solid TYPO3 development with continuous integration and deployment

Unit Tests

standalone extension tests - see @helhum [2] / @tolleiv [3]

Code Reviews

Sonntag, 20. Oktober 13

Page 42: rock-solid TYPO3 development with continuous integration and deployment

Unit Tests Build

Files

DB

Installer

Settings

Sonntag, 20. Oktober 13

Page 43: rock-solid TYPO3 development with continuous integration and deployment

Unit Tests

composer

Jenkins

minify js/css

.tar.gz“virtual

package” (revision)

gruntBuild

Sonntag, 20. Oktober 13

Page 44: rock-solid TYPO3 development with continuous integration and deployment

Analyse

TYPO3 Coding Standards Project [1]

Build

Sonntag, 20. Oktober 13

Page 45: rock-solid TYPO3 development with continuous integration and deployment

Install on“Integration”

fragile

shared dev server

Analyse

Sonntag, 20. Oktober 13

Page 46: rock-solid TYPO3 development with continuous integration and deployment

Unittests

Install on“Integration”

Sonntag, 20. Oktober 13

Page 47: rock-solid TYPO3 development with continuous integration and deployment

Integration Tests

SeleniumCucumber /

Behat

*SpecUnittests

Sonntag, 20. Oktober 13

Page 48: rock-solid TYPO3 development with continuous integration and deployment

✔✔✔

Apache Jmeter

Integration Tests

Install on“Staging”

Sonntag, 20. Oktober 13

Page 49: rock-solid TYPO3 development with continuous integration and deployment

Install on„Production“

Green / blue deployments

Install on“Staging”

Sonntag, 20. Oktober 13

Page 50: rock-solid TYPO3 development with continuous integration and deployment

Install on„Production“

Green / blue deployments

Zero Downtime

Install on“Staging”

Sonntag, 20. Oktober 13

Page 51: rock-solid TYPO3 development with continuous integration and deployment

Install on„Production“

Green / blue deployments

Plan B: rollback

Zero Downtime

Install on“Staging”

Sonntag, 20. Oktober 13

Page 52: rock-solid TYPO3 development with continuous integration and deployment

Install on„Production“

Green / blue deployments

Plan B: rollback

Zero Downtime

Green/bluebig scale

Install on“Staging”

Sonntag, 20. Oktober 13

Page 53: rock-solid TYPO3 development with continuous integration and deployment

Install on„Production“

Install on“Staging”

Sonntag, 20. Oktober 13

Page 54: rock-solid TYPO3 development with continuous integration and deployment

....

Sonntag, 20. Oktober 13

Page 55: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

Page 56: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

Page 57: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#282

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

Page 58: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#283

#282

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

Page 59: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#284

#283

#282

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

Page 60: rock-solid TYPO3 development with continuous integration and deployment

pipeline visualization

#284

#283

#282

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

#285

for team dashboards

Sonntag, 20. Oktober 13

Page 61: rock-solid TYPO3 development with continuous integration and deployment

DevboxIntegration

SandboxStaging

Production BProduction A

Sonntag, 20. Oktober 13

Page 62: rock-solid TYPO3 development with continuous integration and deployment

EnvSettingTool

Sonntag, 20. Oktober 13

Page 63: rock-solid TYPO3 development with continuous integration and deployment

deploymentfeature release

Sonntag, 20. Oktober 13

Page 64: rock-solid TYPO3 development with continuous integration and deployment

TestPyramid

Martin Fowler:Test Pyramid [9]

Sonntag, 20. Oktober 13

Page 65: rock-solid TYPO3 development with continuous integration and deployment

TestPyramid

Martin Fowler:Test Pyramid [9]

Sonntag, 20. Oktober 13

Page 66: rock-solid TYPO3 development with continuous integration and deployment

test plans

Sonntag, 20. Oktober 13

Page 67: rock-solid TYPO3 development with continuous integration and deployment

full stack knowledge

Sonntag, 20. Oktober 13

Page 68: rock-solid TYPO3 development with continuous integration and deployment

full stack debugging

Sonntag, 20. Oktober 13

Page 69: rock-solid TYPO3 development with continuous integration and deployment

DevOps, yeah!

Sonntag, 20. Oktober 13

Page 70: rock-solid TYPO3 development with continuous integration and deployment

startup time

Sonntag, 20. Oktober 13

Page 71: rock-solid TYPO3 development with continuous integration and deployment

developers meetings

hackathons

job chicken

knowledge sharing

mentoring

Sonntag, 20. Oktober 13

Page 72: rock-solid TYPO3 development with continuous integration and deployment

[1] TYPO3 Coding Standards Project [2] @helhum - standalone extension tests

[3] @tolleiv - standalone unit tests[4] Capistrano on Github

[6] The Unexpected Outcomes Of Code Review[7] EnvSettingTool on Github

[8] Performance Measurement and Tuning[9] Martin Fowler: Test Pyramid

[10] EasyDeployWorkflows[11] EXT:coreapi on Github

read on

https://github.com/etobi/ext-coreapi

https://github.com/AOEmedia/EasyDeployWorkflows

http://martinfowler.com/bliki/TestPyramid.html

http://www.slideshare.net/aoemedia/performance-measurement-and-tuning

https://github.com/AOEmedia/EnvSettingsTool

http://blog.codeclimate.com/blog/2013/10/09/unexpected-outcomes-of-code-reviews/

https://github.com/capistrano/capistrano

http://www.slideshare.net/aoemedia/

https://github.com/tolleiv/typo3-ext-ci

http://typo3.helmut-hummel.de/post/63972451370/executing-typo3-cms-unit-test-tests-in-phpstorm

http://forge.typo3.org/projects/team-php_codesniffer/wiki/Using_the_TYPO3_Coding_Standard

Sonntag, 20. Oktober 13

Page 73: rock-solid TYPO3 development with continuous integration and deployment

Thank you!Any questions?

www.aoemedia.com@aoepeople

www.tolleiv.de @tolleiv

Sonntag, 20. Oktober 13