rock-solid TYPO3 development with continuous integration and deployment

Post on 11-May-2015

515 views 1 download

Tags:

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

TolleivNietschSenior Developer at

@tolleiv

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

disclaimertools

Sonntag, 20. Oktober 13

disclaimertools

priorities

Sonntag, 20. Oktober 13

disclaimertools

priorities

details

Sonntag, 20. Oktober 13

disclaimertools

priorities

detailsNIH

Sonntag, 20. Oktober 13

the big picture

Sonntag, 20. Oktober 13

Sonntag, 20. Oktober 13

Version Control

Sonntag, 20. Oktober 13

Version Control

Sonntag, 20. Oktober 13

Unit TestsVersion Control

Sonntag, 20. Oktober 13

Unit TestsVersion Control

Sonntag, 20. Oktober 13

Unit Tests Build

Sonntag, 20. Oktober 13

Unit Tests Build

Sonntag, 20. Oktober 13

Install on“Integration”Build

Sonntag, 20. Oktober 13

Install on“Integration”Build

Sonntag, 20. Oktober 13

Install on“Integration” Integration Tests

Sonntag, 20. Oktober 13

Install on“Integration” 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“Integration Tests

Sonntag, 20. Oktober 13

Install on „Staging“

Install on„Production“

Sonntag, 20. Oktober 13

too simple?

Sonntag, 20. Oktober 13

challenges

Sonntag, 20. Oktober 13

Sonntag, 20. Oktober 13

Sonntag, 20. Oktober 13

Sonntag, 20. Oktober 13

uniquedev 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

Code ReviewsVersion Control

Sonntag, 20. Oktober 13

Code Reviews

„ The Unexpected Outcomes Of Code Review“ [6]

Version Control

Sonntag, 20. Oktober 13

Unit Tests

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

Code Reviews

Sonntag, 20. Oktober 13

Unit Tests Build

Files

DB

Installer

Settings

Sonntag, 20. Oktober 13

Unit Tests

composer

Jenkins

minify js/css

.tar.gz“virtual

package” (revision)

gruntBuild

Sonntag, 20. Oktober 13

Analyse

TYPO3 Coding Standards Project [1]

Build

Sonntag, 20. Oktober 13

Install on“Integration”

fragile

shared dev server

Analyse

Sonntag, 20. Oktober 13

Unittests

Install on“Integration”

Sonntag, 20. Oktober 13

Integration Tests

SeleniumCucumber /

Behat

*SpecUnittests

Sonntag, 20. Oktober 13

✔✔✔

Apache Jmeter

Integration Tests

Install on“Staging”

Sonntag, 20. Oktober 13

Install on„Production“

Green / blue deployments

Install on“Staging”

Sonntag, 20. Oktober 13

Install on„Production“

Green / blue deployments

Zero Downtime

Install on“Staging”

Sonntag, 20. Oktober 13

Install on„Production“

Green / blue deployments

Plan B: rollback

Zero Downtime

Install on“Staging”

Sonntag, 20. Oktober 13

Install on„Production“

Green / blue deployments

Plan B: rollback

Zero Downtime

Green/bluebig scale

Install on“Staging”

Sonntag, 20. Oktober 13

Install on„Production“

Install on“Staging”

Sonntag, 20. Oktober 13

....

Sonntag, 20. Oktober 13

pipeline visualization

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

pipeline visualization

#281

#280

Build Static Code Analysis

Unit Tests

Install on “Integration”

Integration Tests

Acceptance Tests

for team dashboards

Sonntag, 20. Oktober 13

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

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

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

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

DevboxIntegration

SandboxStaging

Production BProduction A

Sonntag, 20. Oktober 13

EnvSettingTool

Sonntag, 20. Oktober 13

deploymentfeature 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

developers meetings

hackathons

job chicken

knowledge sharing

mentoring

Sonntag, 20. Oktober 13

[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

Thank you!Any questions?

www.aoemedia.com@aoepeople

www.tolleiv.de @tolleiv

Sonntag, 20. Oktober 13