DevOps for TYPO3 Teams and Projects

55
DevOps for TYPO3 Teams and Projects TYPO3 Developer Days 2014

description

 

Transcript of DevOps for TYPO3 Teams and Projects

Page 1: DevOps for TYPO3 Teams and Projects

DevOps for TYPO3 Teams and Projects

TYPO3 Developer Days 2014

Page 2: DevOps for TYPO3 Teams and Projects

Hi. I’m Fedir. I make sites and apps.

@FedirFr

Page 3: DevOps for TYPO3 Teams and Projects

● DevOps● Team ● Project ● Tools● Exchanging

This workshop

Page 4: DevOps for TYPO3 Teams and Projects

What is DevOps ?

Let's take a survey

Page 5: DevOps for TYPO3 Teams and Projects

Popular ideas about DevOps meaning

Page 6: DevOps for TYPO3 Teams and Projects

What is DevOps

DevOps = Dev(elopment) + Op(eration)s

Page 7: DevOps for TYPO3 Teams and Projects

Software Development activities

analysis

coding

documenting

testing

debugging

code maintaining

Page 8: DevOps for TYPO3 Teams and Projects

Information Technology Operations activities

management

envisioning

planning

design

implementation

construction

deployment

distribution

verification

installation

instantiation

execution

maintenance

Page 9: DevOps for TYPO3 Teams and Projects

Dev...

DevPM

DevArchitect

DevDev

DevInt

DevSysAdmin

IntAdmin

DevQA

IntQA

Page 10: DevOps for TYPO3 Teams and Projects

DevOps is not all about automation

DevOps is the confluence of development and operations.

Page 11: DevOps for TYPO3 Teams and Projects

Developers

Developers are living in an abstract world of Design Patterns and perfect IDE.

App Classes are well ranged into MVC containers.

Code is very structured.

Page 12: DevOps for TYPO3 Teams and Projects

SysAdmins

SysAdmins touches reality.

They need to think more about limits of current servers, about versions and compatibility of heterogeneous software.

They don’t knows how Your App is working.

For somebody it’s a cloud, for somebody it’s complex interconnected server infrastructure.

Page 13: DevOps for TYPO3 Teams and Projects

And ... Integrators !

DevOps terminology was created for companies with simple traditional structure.

TYPO3 has Integrators !

Guys, who installs and configures TYPO3 on real servers, who adapts the system and extensions to current infrastructure (often they communicates with Admins).

Page 14: DevOps for TYPO3 Teams and Projects

Communication model

Page 15: DevOps for TYPO3 Teams and Projects

DevOps stages during project life

In reality there is even more communication vectors

Infrastructure : admin, developer, integrator

CMS install : admin, integrator

CMS tuning : developer, integrator

Theming : integrator

Functional coding

Content : editor, integrator

Quality control : QA manager, editor, developer, integrator, admin

Deployment : admin, integrator

Iterative development : admin, developer, integrator

Support : admin, developer, integrator

Page 16: DevOps for TYPO3 Teams and Projects

Communication & methodology

We should communicate effectively

We should work like a team

Page 17: DevOps for TYPO3 Teams and Projects

Different Development Workflows

Models

Page 18: DevOps for TYPO3 Teams and Projects

Different Projects Development Workflows

Page 19: DevOps for TYPO3 Teams and Projects

Different Projects Development Workflows

Page 20: DevOps for TYPO3 Teams and Projects

Different Projects Development Workflows

Page 21: DevOps for TYPO3 Teams and Projects

What is the structure of Your team ?

People

Page 22: DevOps for TYPO3 Teams and Projects

Communication = cooperation

Page 23: DevOps for TYPO3 Teams and Projects

Developing tools to help the project team

● Runtime control and services management● Automated functional tests● Automated visual tests● Deployment hooks

Page 24: DevOps for TYPO3 Teams and Projects

Dedicated interfaces

● QA / PM - Web control panel with tests summary and the access to statistics logs

● SysAdmin - CLI (scriptable), automatically controllable

Page 25: DevOps for TYPO3 Teams and Projects

Self-tested & self-controllable systems

Delivered product (site, extension) delivers not only desired functionality, but QA and SA interfaces

● Tests○ Unit○ Visual○ Functional○ Performance

● Deployment hooks

Page 26: DevOps for TYPO3 Teams and Projects

When we should look for DevOps ?

Projects

Page 27: DevOps for TYPO3 Teams and Projects

Iterative agile development

V.1

V.2

V.3

When the concept of sprints is applied with granular delivery

Page 28: DevOps for TYPO3 Teams and Projects

Single shot project

Simple task

Do and forget

Never meet customer again

But what about code and procedures capitalisation ?

Page 29: DevOps for TYPO3 Teams and Projects

LTS Projects

TYPO3 4.5 LTS

TYPO3 6.2 LTS

...

=>

MyProject LTS

Page 30: DevOps for TYPO3 Teams and Projects

Multiple servers infrastructure

When Your app needs more the web server and web database

● Search engines● Proxies● Caches● Services

Page 31: DevOps for TYPO3 Teams and Projects

DevOps and TYPO3

Closer look

Page 32: DevOps for TYPO3 Teams and Projects

What is special in TYPO3

● TYPO3 CMS is used for large projects, usually developer centred

● TYPO3 has lot’s of data in the database● TYPO3 has multiple cache systems● TYPO3 uses external applications● TYPO3 supports automating testing

Page 33: DevOps for TYPO3 Teams and Projects

TYPO3 project team specific roles

● Extension Developer● Site integrator● Content manager● Server Administrator● QA Tester

As TYPO3 model uses roles separation,

between developer and integrator, an additional level of exchange should

be provided

Page 34: DevOps for TYPO3 Teams and Projects

TestingIf my TYPO3 site works well ?

Page 35: DevOps for TYPO3 Teams and Projects

FE testing tools

● dalek.js● galen framework● casper.js● W3C CSS Validator (local service)● W3C Markup Validator (local service)● W3C Link checker (local service)

Page 36: DevOps for TYPO3 Teams and Projects

FE testing aspects

● Multichannel projections● Using the full spectrum of FE roles● Checking functionalities by module● Automatic checking for HTML and CSS validity● Accessibility

Page 37: DevOps for TYPO3 Teams and Projects

The next step : BE Users & Groups test

Does Your user could make all available operations

Does Your user could make forbidden operations

Errors control

Activity statistics

Page 38: DevOps for TYPO3 Teams and Projects

TYPO3 requirements OK

● Checking, if Your server is TYPO3 ready○ TYPO3 Probe

Page 39: DevOps for TYPO3 Teams and Projects

TYPO3 installation control

● Controlling Your installation○ additional_reports

Page 40: DevOps for TYPO3 Teams and Projects

Performance tests

● WebPageTest○ You could install it on Your server

● JMeter● gor● gatling● Tsung

Page 41: DevOps for TYPO3 Teams and Projects

Extensions testing

1 extension = 1 test package

Easy syntax

Automatic tests generation, based on content data and page structure

Security

Page 42: DevOps for TYPO3 Teams and Projects

Install the system, keep it up to date, upgrade it

Migrations Reality

Page 43: DevOps for TYPO3 Teams and Projects

Migrations is not only about the content

Page 44: DevOps for TYPO3 Teams and Projects

How to ship the site and transfer

● Scriptable environment to automate instances○ Ansible○ Puppet○ Chef

● TYPO3 Flow base + extending by Your app● git + hooks

○ files○ dB○ content projections

Page 45: DevOps for TYPO3 Teams and Projects

Application redeployment

● Flush all if You can and redeploy (backups)

or ...

● Merge it○ Files content○ Databases○ Indexing○ Cache

Page 46: DevOps for TYPO3 Teams and Projects

Content components and projections

● Resource-costly projections of the content also could be synchronised

Page 47: DevOps for TYPO3 Teams and Projects

Content merge

● SearchEngine API● Using caching framework● EXT:t3xutils

Page 48: DevOps for TYPO3 Teams and Projects

Content automated merge

● UUID● Database fixtures● EventSourcing implementation

TYPO3 Neos goes right way !

Page 49: DevOps for TYPO3 Teams and Projects

Projections : should it be versioned ?

● Physical limits of repositories● Time of synchronisation● Granularity● Ability to be merged● Relation to versioned content

Page 50: DevOps for TYPO3 Teams and Projects

● Update scenarios○ Security

■ Critical update detection - Real-time application - Automatical tests scenarios - Verification ASAP

○ Features added■ Notification - Update - Control

● EXT:coreapi

Infrastructure updates

Page 51: DevOps for TYPO3 Teams and Projects

Core InitiativesLet’s make TYPO3 better together

Page 52: DevOps for TYPO3 Teams and Projects

Default TYPO3 CMS package testing

● Core functionality tests● Default template tests

○ Visual tests inclusion○ Functional tests inclusion

● Performance tests○ Single page load○ Multiple page

● Platform configuration tests (pre-deploy)

Page 53: DevOps for TYPO3 Teams and Projects

Big architectural adjustments

● UUID● Event Sourcing● Database fixtures

Page 54: DevOps for TYPO3 Teams and Projects

Thank You for Your attention

Questions / Answers

Page 55: DevOps for TYPO3 Teams and Projects

Ressourceshttp://en.wikipedia.org/wiki/DevOpshttp://en.wikipedia.org/wiki/Software_developmenthttp://en.wikipedia.org/wiki/Computer_programminghttp://en.wikipedia.org/wiki/Information_technology_operationshttps://devcentral.f5.com/articles/devops-is-not-all-about-automationhttp://www.slideshare.net/kfish/deploying-typo3-neos-websites-using-surfhttp://www.slideshare.net/ufried/devops-for-developers-28043923http://www.servermanaged.it/devops/sysadmin-is-changing-cloud-devops/http://www.webpagetest.orghttps://github.com/WPO-Foundation/webpagetest/https://github.com/excilys/gatlinghttp://dalekjs.com/http://galenframework.com/http://typo3.org/extensions/repository/view/additional_reportshttps://github.com/7elix/TYPO3-Probehttp://fr.slideshare.net/etobide/20130704-t3dd13-deploymenthttps://github.com/TYPO3-coreapi/ext-coreapihttp://etobi.de/blog/2013/07/deployment-workshop-on-typo3-devdays-t3dd13-part-110/https://github.com/etobi/Typo3ExtensionUtils

http://jigsaw.w3.org/css-validator/DOWNLOAD.htmlhttp://validator.w3.org/source/#debhttp://tsung.erlang-projects.org/http://search.cpan.org/dist/W3C-LinkChecker/http://java-source.net/open-source/web-testing-toolshttp://phpsec.org/library/http://wapiti.sourceforge.net/http://wiki.typo3.org/Caching_framework