SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
DevOps for TYPO3 
Teams and Projects 
TYPO3 Developer Days 2014
Hi. I’m Fedir. I make sites and apps. 
@FedirFr
This workshop 
● DevOps 
● Team 
● Project 
● Tools 
● Exchanging
What is DevOps ? 
Let's take a survey
Popular ideas about DevOps meaning
What is DevOps 
DevOps = Dev(elopment) + Op(eration)s
Software Development activities 
analysis 
coding 
documenting 
testing 
debugging 
code maintaining
Information Technology Operations activities 
management 
envisioning 
planning 
design 
implementation 
construction 
deployment 
distribution 
verification 
installation 
instantiation 
execution 
maintenance
Dev... 
DevPM 
DevArchitect 
DevDev 
DevInt 
DevSysAdmin 
IntAdmin 
DevQA 
IntQA
DevOps is not all about automation 
DevOps is the confluence of development and 
operations.
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.
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.
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).
Communication model
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
Communication & methodology 
We should communicate effectively 
We should work like a team
Different Development Workflows 
Models
Different Projects Development Workflows
Different Projects Development Workflows
Different Projects Development Workflows
What is the structure of Your team ? 
People
Communication = cooperation
Developing tools to help the project team 
● Runtime control and services management 
● Automated functional tests 
● Automated visual tests 
● Deployment hooks
Dedicated interfaces 
● QA / PM - Web control panel with tests summary 
and the access to statistics logs 
● SysAdmin - CLI (scriptable), automatically 
controllable
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
When we should look for DevOps ? 
Projects
Iterative agile development 
V.1 
V.2 
V.3 
When the concept of sprints is applied with granular 
delivery
Single shot project 
Simple task 
Do and forget 
Never meet customer again 
But what about code and procedures capitalisation ?
LTS Projects 
TYPO3 4.5 LTS 
TYPO3 6.2 LTS 
... 
=> 
MyProject LTS
Multiple servers infrastructure 
When Your app needs more the web server and web 
database 
● Search engines 
● Proxies 
● Caches 
● Services
DevOps and TYPO3 
Closer look
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
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
Testing 
If my TYPO3 site works well ?
FE testing tools 
● dalek.js 
● galen framework 
● casper.js 
● W3C CSS Validator (local service) 
● W3C Markup Validator (local service) 
● W3C Link checker (local service)
FE testing aspects 
● Multichannel projections 
● Using the full spectrum of FE roles 
● Checking functionalities by module 
● Automatic checking for HTML and CSS validity 
● Accessibility
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
TYPO3 requirements OK 
● Checking, if Your server is TYPO3 ready 
○ TYPO3 Probe
TYPO3 installation control 
● Controlling Your installation 
○ additional_reports
Performance tests 
● WebPageTest 
○ You could install it on Your server 
● JMeter 
● gor 
● gatling 
● Tsung
Extensions testing 
1 extension = 1 test package 
Easy syntax 
Automatic tests generation, based on content data 
and page structure 
Security
Install the system, keep it up to date, upgrade it 
Migrations Reality
Migrations is not only about the content
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
Application redeployment 
● Flush all if You can and redeploy (backups) 
or ... 
● Merge it 
○ Files content 
○ Databases 
○ Indexing 
○ Cache
Content components and projections 
● Resource-costly projections of the content also 
could be synchronised
Content merge 
● SearchEngine API 
● Using caching framework 
● EXT:t3xutils
Content automated merge 
● UUID 
● Database fixtures 
● EventSourcing implementation 
TYPO3 Neos goes right way !
Projections : should it be versioned ? 
● Physical limits of repositories 
● Time of synchronisation 
● Granularity 
● Ability to be merged 
● Relation to versioned content
Infrastructure updates 
● Update scenarios 
○ Security 
■ Critical update detection - Real-time application - 
Automatical tests scenarios - Verification ASAP 
○ Features added 
■ Notification - Update - Control 
● EXT:coreapi
Core Initiatives 
Let’s make TYPO3 better together
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)
Big architectural adjustments 
● UUID 
● Event Sourcing 
● Database fixtures
Thank You for Your attention 
Questions / Answers
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

Weitere ähnliche Inhalte

Was ist angesagt?

Confoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureConfoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureWill Stevens
 
LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015Jeffrey Habets
 
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw44CON
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web FrameworkDaniel Woods
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingGrid Dynamics
 
E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilersLibbySchulze
 
Building Web Apps in Ratpack
Building Web Apps in RatpackBuilding Web Apps in Ratpack
Building Web Apps in RatpackDaniel Woods
 
Let’s template
Let’s templateLet’s template
Let’s templateAllenKao7
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Deepu K Sasidharan
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFLars Rosenquist
 
Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Stfalcon Meetups
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the EnterpriseJames Williams
 
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and DockerWSO2
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Fwdays
 

Was ist angesagt? (20)

Confoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureConfoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile Infrastructure
 
Javantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej VidakovićJavantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej Vidaković
 
LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015LV Dev Efficiency NIDays 2015
LV Dev Efficiency NIDays 2015
 
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
44CON 2014 - Binary Protocol Analysis with CANAPE, James Forshaw
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
E bpf and profilers
E bpf and profilersE bpf and profilers
E bpf and profilers
 
Berlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWSBerlin AWS meetup: here.com on AWS
Berlin AWS meetup: here.com on AWS
 
Building Web Apps in Ratpack
Building Web Apps in RatpackBuilding Web Apps in Ratpack
Building Web Apps in Ratpack
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
 
Better java with design
Better java with designBetter java with design
Better java with design
 
Let’s template
Let’s templateLet’s template
Let’s template
 
Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018Front-end for Java developers Devoxx France 2018
Front-end for Java developers Devoxx France 2018
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
 
XP Days Ukraine 2019
XP Days Ukraine 2019XP Days Ukraine 2019
XP Days Ukraine 2019
 

Andere mochten auch

Unlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationUnlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationJon Dean
 
TYPO3 as Mobile Application Management System
TYPO3 as Mobile Application Management SystemTYPO3 as Mobile Application Management System
TYPO3 as Mobile Application Management SystemFedir RYKHTIK
 
Client Side MVC with Backbone and Rails
Client Side MVC with Backbone and RailsClient Side MVC with Backbone and Rails
Client Side MVC with Backbone and RailsTom Z Zeng
 
[aOS N°2] DevOps & SharePoint - Michel Hubert
[aOS N°2] DevOps & SharePoint - Michel Hubert[aOS N°2] DevOps & SharePoint - Michel Hubert
[aOS N°2] DevOps & SharePoint - Michel HubertCellenza
 
"8 Steps To Effectively Build A SharePoint Site" for SPS NYC
"8 Steps To Effectively Build A SharePoint Site" for SPS NYC"8 Steps To Effectively Build A SharePoint Site" for SPS NYC
"8 Steps To Effectively Build A SharePoint Site" for SPS NYCDux Raymond Sy
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of EverythingCharbel Zeaiter
 

Andere mochten auch (8)

Unlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance OptimizationUnlearning and Relearning jQuery - Client-side Performance Optimization
Unlearning and Relearning jQuery - Client-side Performance Optimization
 
TYPO3 as Mobile Application Management System
TYPO3 as Mobile Application Management SystemTYPO3 as Mobile Application Management System
TYPO3 as Mobile Application Management System
 
Chuong 3 mang
Chuong 3 mangChuong 3 mang
Chuong 3 mang
 
Client Side MVC with Backbone and Rails
Client Side MVC with Backbone and RailsClient Side MVC with Backbone and Rails
Client Side MVC with Backbone and Rails
 
[aOS N°2] DevOps & SharePoint - Michel Hubert
[aOS N°2] DevOps & SharePoint - Michel Hubert[aOS N°2] DevOps & SharePoint - Michel Hubert
[aOS N°2] DevOps & SharePoint - Michel Hubert
 
"8 Steps To Effectively Build A SharePoint Site" for SPS NYC
"8 Steps To Effectively Build A SharePoint Site" for SPS NYC"8 Steps To Effectively Build A SharePoint Site" for SPS NYC
"8 Steps To Effectively Build A SharePoint Site" for SPS NYC
 
WinAutomation Features
WinAutomation FeaturesWinAutomation Features
WinAutomation Features
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 

Ähnlich wie DevOps for TYPO3 Teams and Projects

NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containersaspyker
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionSteve Hogg
 
Fighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFabio Pellegrini
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...Alexandr Savchenko
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...Fwdays
 
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriDemi Ben-Ari
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
Modern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationModern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationAndrew Blades
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021William Caban
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro servicesSpyros Lambrinidis
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformDevOps Indonesia
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIsNirmal Fernando
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedis Labs
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Weaveworks
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
 

Ähnlich wie DevOps for TYPO3 Teams and Projects (20)

NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containers
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
Fighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless php
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Modern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationModern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for Innovation
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 

Mehr von Fedir RYKHTIK

DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...
 DDD17 - Web Applications Automated Security Testing in a Continuous Delivery... DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...
DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...Fedir RYKHTIK
 
Monolithic installs VS single responsibilities networks
Monolithic installs VS single responsibilities networksMonolithic installs VS single responsibilities networks
Monolithic installs VS single responsibilities networksFedir RYKHTIK
 
Building websites with TYPO3 Neos
Building websites with TYPO3 NeosBuilding websites with TYPO3 Neos
Building websites with TYPO3 NeosFedir RYKHTIK
 
Raspberry PI pour les agents secrets
Raspberry PI pour les agents secretsRaspberry PI pour les agents secrets
Raspberry PI pour les agents secretsFedir RYKHTIK
 
TYPO3 as Things Management System
TYPO3 as Things Management SystemTYPO3 as Things Management System
TYPO3 as Things Management SystemFedir RYKHTIK
 
Comparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionalityComparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionalityFedir RYKHTIK
 

Mehr von Fedir RYKHTIK (9)

DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...
 DDD17 - Web Applications Automated Security Testing in a Continuous Delivery... DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...
DDD17 - Web Applications Automated Security Testing in a Continuous Delivery...
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Monolithic installs VS single responsibilities networks
Monolithic installs VS single responsibilities networksMonolithic installs VS single responsibilities networks
Monolithic installs VS single responsibilities networks
 
Building websites with TYPO3 Neos
Building websites with TYPO3 NeosBuilding websites with TYPO3 Neos
Building websites with TYPO3 Neos
 
StealMyData App
StealMyData AppStealMyData App
StealMyData App
 
Raspberry PI pour les agents secrets
Raspberry PI pour les agents secretsRaspberry PI pour les agents secrets
Raspberry PI pour les agents secrets
 
Vagrant
VagrantVagrant
Vagrant
 
TYPO3 as Things Management System
TYPO3 as Things Management SystemTYPO3 as Things Management System
TYPO3 as Things Management System
 
Comparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionalityComparision of CMS : Improving TYPO3 functionality
Comparision of CMS : Improving TYPO3 functionality
 

DevOps for TYPO3 Teams and Projects

  • 1. DevOps for TYPO3 Teams and Projects TYPO3 Developer Days 2014
  • 2. Hi. I’m Fedir. I make sites and apps. @FedirFr
  • 3. This workshop ● DevOps ● Team ● Project ● Tools ● Exchanging
  • 4. What is DevOps ? Let's take a survey
  • 5. Popular ideas about DevOps meaning
  • 6. What is DevOps DevOps = Dev(elopment) + Op(eration)s
  • 7. Software Development activities analysis coding documenting testing debugging code maintaining
  • 8. Information Technology Operations activities management envisioning planning design implementation construction deployment distribution verification installation instantiation execution maintenance
  • 9. Dev... DevPM DevArchitect DevDev DevInt DevSysAdmin IntAdmin DevQA IntQA
  • 10. DevOps is not all about automation DevOps is the confluence of development and operations.
  • 11. 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.
  • 12. 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.
  • 13. 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).
  • 15. 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
  • 16. Communication & methodology We should communicate effectively We should work like a team
  • 21. What is the structure of Your team ? People
  • 23. Developing tools to help the project team ● Runtime control and services management ● Automated functional tests ● Automated visual tests ● Deployment hooks
  • 24. Dedicated interfaces ● QA / PM - Web control panel with tests summary and the access to statistics logs ● SysAdmin - CLI (scriptable), automatically controllable
  • 25. 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
  • 26. When we should look for DevOps ? Projects
  • 27. Iterative agile development V.1 V.2 V.3 When the concept of sprints is applied with granular delivery
  • 28. Single shot project Simple task Do and forget Never meet customer again But what about code and procedures capitalisation ?
  • 29. LTS Projects TYPO3 4.5 LTS TYPO3 6.2 LTS ... => MyProject LTS
  • 30. Multiple servers infrastructure When Your app needs more the web server and web database ● Search engines ● Proxies ● Caches ● Services
  • 31. DevOps and TYPO3 Closer look
  • 32. 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
  • 33. 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
  • 34. Testing If my TYPO3 site works well ?
  • 35. FE testing tools ● dalek.js ● galen framework ● casper.js ● W3C CSS Validator (local service) ● W3C Markup Validator (local service) ● W3C Link checker (local service)
  • 36. FE testing aspects ● Multichannel projections ● Using the full spectrum of FE roles ● Checking functionalities by module ● Automatic checking for HTML and CSS validity ● Accessibility
  • 37. 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
  • 38. TYPO3 requirements OK ● Checking, if Your server is TYPO3 ready ○ TYPO3 Probe
  • 39. TYPO3 installation control ● Controlling Your installation ○ additional_reports
  • 40. Performance tests ● WebPageTest ○ You could install it on Your server ● JMeter ● gor ● gatling ● Tsung
  • 41. Extensions testing 1 extension = 1 test package Easy syntax Automatic tests generation, based on content data and page structure Security
  • 42. Install the system, keep it up to date, upgrade it Migrations Reality
  • 43. Migrations is not only about the content
  • 44. 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
  • 45. Application redeployment ● Flush all if You can and redeploy (backups) or ... ● Merge it ○ Files content ○ Databases ○ Indexing ○ Cache
  • 46. Content components and projections ● Resource-costly projections of the content also could be synchronised
  • 47. Content merge ● SearchEngine API ● Using caching framework ● EXT:t3xutils
  • 48. Content automated merge ● UUID ● Database fixtures ● EventSourcing implementation TYPO3 Neos goes right way !
  • 49. Projections : should it be versioned ? ● Physical limits of repositories ● Time of synchronisation ● Granularity ● Ability to be merged ● Relation to versioned content
  • 50. Infrastructure updates ● Update scenarios ○ Security ■ Critical update detection - Real-time application - Automatical tests scenarios - Verification ASAP ○ Features added ■ Notification - Update - Control ● EXT:coreapi
  • 51. Core Initiatives Let’s make TYPO3 better together
  • 52. 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)
  • 53. Big architectural adjustments ● UUID ● Event Sourcing ● Database fixtures
  • 54. Thank You for Your attention Questions / Answers
  • 55. 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