Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps for TYPO3 Teams and Projects

DevOps for TYPO3 Teams and Projects

Slides from my talk at TYPO3 Developer Days 2014 (21/06/2014, Eindhoven, Netherlands)

Fedir RYKHTIK

June 21, 2014
Tweet

More Decks by Fedir RYKHTIK

Other Decks in Technology

Transcript

  1. Information Technology Operations activities management envisioning planning design implementation construction

    deployment distribution verification installation instantiation execution maintenance
  2. 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.
  3. 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.
  4. 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).
  5. 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
  6. Developing tools to help the project team • Runtime control

    and services management • Automated functional tests • Automated visual tests • Deployment hooks
  7. Dedicated interfaces • QA / PM - Web control panel

    with tests summary and the access to statistics logs • SysAdmin - CLI (scriptable), automatically controllable
  8. 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
  9. Iterative agile development V.1 V.2 V.3 When the concept of

    sprints is applied with granular delivery
  10. Single shot project Simple task Do and forget Never meet

    customer again But what about code and procedures capitalisation ?
  11. Multiple servers infrastructure When Your app needs more the web

    server and web database • Search engines • Proxies • Caches • Services
  12. 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
  13. 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
  14. FE testing tools • dalek.js • galen framework • casper.js

    • W3C CSS Validator (local service) • W3C Markup Validator (local service) • W3C Link checker (local service)
  15. FE testing aspects • Multichannel projections • Using the full

    spectrum of FE roles • Checking functionalities by module • Automatic checking for HTML and CSS validity • Accessibility
  16. 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
  17. Performance tests • WebPageTest ◦ You could install it on

    Your server • JMeter • gor • gatling • Tsung
  18. Extensions testing 1 extension = 1 test package Easy syntax

    Automatic tests generation, based on content data and page structure Security
  19. 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
  20. Application redeployment • Flush all if You can and redeploy

    (backups) or ... • Merge it ◦ Files content ◦ Databases ◦ Indexing ◦ Cache
  21. Projections : should it be versioned ? • Physical limits

    of repositories • Time of synchronisation • Granularity • Ability to be merged • Relation to versioned content
  22. • Update scenarios ◦ Security ▪ Critical update detection -

    Real-time application - Automatical tests scenarios - Verification ASAP ◦ Features added ▪ Notification - Update - Control • EXT:coreapi Infrastructure updates
  23. 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)
  24. Ressources http://en.wikipedia.org/wiki/DevOps http://en.wikipedia.org/wiki/Software_development http://en.wikipedia.org/wiki/Computer_programming http://en.wikipedia.org/wiki/Information_technology_operations https://devcentral.f5.com/articles/devops-is-not-all-about-automation http://www.slideshare.net/kfish/deploying-typo3-neos-websites-using- surf http://www.slideshare.net/ufried/devops-for-developers-28043923 http://www.servermanaged.it/devops/sysadmin-is-changing-cloud-

    devops/ http://www.webpagetest.org https://github.com/WPO-Foundation/webpagetest/ https://github.com/excilys/gatling http://dalekjs.com/ http://galenframework.com/ http://typo3.org/extensions/repository/view/additional_reports https://github.com/7elix/TYPO3-Probe http://fr.slideshare.net/etobide/20130704-t3dd13-deployment https://github.com/TYPO3-coreapi/ext-coreapi http://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.html http://validator.w3.org/source/#deb http://tsung.erlang-projects.org/ http://search.cpan.org/dist/W3C-LinkChecker/ http://java-source.net/open-source/web-testing-tools http://phpsec.org/library/ http://wapiti.sourceforge.net/ http://wiki.typo3.org/Caching_framework