Michelangelo van Dam (@DragonBe)
Continuous
Wordpress
Or why wouldn’t you automate your
WordPress installations?
Slide 2
Slide 2 text
Michelangelo van Dam (@DragonBe)
Michelangelo van Dam
I'm a senior #php architect,
co-founder and #ceo of @in2itvof,
#community leader at
@phpbenelux, coach at
@CoderDojoBelgium,
#digitalnomad, likes #coffee.
2
Slide 3
Slide 3 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 4
Slide 4 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 5
Slide 5 text
Michelangelo van Dam (@DragonBe)
30%
Of the internet is WordPress
5
Slide 6
Slide 6 text
Michelangelo van Dam (@DragonBe)
Top 5 retail platforms in Belgium
1. Magento (28%)
2. WordPress/WooCommerce (16%)
3. Lightspeed (9%)
4. Drupal (8%)
5. PrestaShop (7%)
Source: Twinkle.be 100 2017 - 2018
Slide 7
Slide 7 text
Michelangelo van Dam (@DragonBe)
Why WordPress is so great
PRO Easy for end users
PRO Endless possibilities via plugins
PRO Supports many PHP versions
PRO Active updates
Slide 8
Slide 8 text
Michelangelo van Dam (@DragonBe)
Why WordPress is not so great
CON Auto updates for core only
CON Manual updates plugins & themes
CON Supports many PHP versions
CON Prime target for hackers
Slide 9
Slide 9 text
Michelangelo van Dam (@DragonBe)
Many known brands use WordPress
Slide 10
Slide 10 text
Michelangelo van Dam (@DragonBe)
Often you start of with one site
A personal or business site
Slide 11
Slide 11 text
Michelangelo van Dam (@DragonBe)
Then you start having some more
A website for family, hobby, sports club, …
Slide 12
Slide 12 text
Michelangelo van Dam (@DragonBe)
And before you know it…
You’re in charge of many more sites
Slide 13
Slide 13 text
Michelangelo van Dam (@DragonBe)
Slide 14
Slide 14 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 15
Slide 15 text
Michelangelo van Dam (@DragonBe)
Continuous Integration Tools
Run locally on-prem
Slide 16
Slide 16 text
Michelangelo van Dam (@DragonBe)
Continuous Integration Services
Or you can run it as a SaaS
Slide 17
Slide 17 text
Michelangelo van Dam (@DragonBe)
Slide 18
Slide 18 text
Michelangelo van Dam (@DragonBe)
Slide 19
Slide 19 text
Michelangelo van Dam (@DragonBe)
Slide 20
Slide 20 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 21
Slide 21 text
Michelangelo van Dam (@DragonBe)
Customization
Slide 22
Slide 22 text
Michelangelo van Dam (@DragonBe)
Platforms & Services
Slide 23
Slide 23 text
Michelangelo van Dam (@DragonBe)
Scary
Slide 24
Slide 24 text
Michelangelo van Dam (@DragonBe)
Let’s review how
WordPress is setup…
Slide 25
Slide 25 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 26
Slide 26 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 27
Slide 27 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 28
Slide 28 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 29
Slide 29 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 30
Slide 30 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 31
Slide 31 text
Michelangelo van Dam (@DragonBe)
WordPress stack
Server (cloud, VPS, bare metal)
ENV (DEV, TEST, ACC & PROD)
Operating System
Database & Filesystem
WordPress Core
WP Themes Custom Themes
WP Plugins Custom Plugins
Slide 32
Slide 32 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 33
Slide 33 text
Michelangelo van Dam (@DragonBe)
WordPress Core
Slide 34
Slide 34 text
Michelangelo van Dam (@DragonBe)
WordPress SVN Repositories
● WordPress Core:
https://core.svn.wordpress.org
● WordPress Plugins:
https://plugins.svn.wordpress.org
● WordPress Themes:
https://themes.svn.wordpress.org
Slide 35
Slide 35 text
Michelangelo van Dam (@DragonBe)
Custom SVN Repositories
● Custom Themes:
http://svn.company.com/themes
● Custom Plugins:
http://svn.company.com/plugins
Slide 36
Slide 36 text
Michelangelo van Dam (@DragonBe)
Using GIT-SVN with GitHub
● https://github.com/compa
ny/wp/themes/mytheme/
tags/1.1.4
● https://github.com/compa
ny/wp/plugins/myplugin/t
ags/3.2.6
Slide 37
Slide 37 text
Michelangelo van Dam (@DragonBe)
Staged environments
Development
DEV
Testing
TEST
Acceptance
ACC
Production
PROD
Slide 38
Slide 38 text
Michelangelo van Dam (@DragonBe)
Staged environments
Testing
TEST
Production
PROD
Slide 39
Slide 39 text
Michelangelo van Dam (@DragonBe)
Provisioning tools
Slide 40
Slide 40 text
Michelangelo van Dam (@DragonBe)
Phing, make or Apache Ant
Slide 41
Slide 41 text
Michelangelo van Dam (@DragonBe)
Manual process for updating WordPress (for clients)
Slide 42
Slide 42 text
Michelangelo van Dam (@DragonBe)
Continuous Monitor, Test and Update Your WordPress sites
Default target:
-------------------------------------------------------------------------------
build Run automated WordPress Updater
Main targets:
-------------------------------------------------------------------------------
build Run automated WordPress Updater
catalog Create a catalog of sites under control
dbupdate Update the WP database if there’s new version
inventory Make an inventory of site core, plugins and themes versions
plugin-check Check if WordPress Plugins require updates
prepare Get all configuration settings
theme-check Check if WordPress Themes require updates
wpbackup Make a backup of the WordPress site
wpcore-check Check if WordPress Core requires updates
wpplugins-check Check local WP Plugins version
wpthemes-check Check local WP Themes version
Converting manual steps into build steps
Slide 43
Slide 43 text
Michelangelo van Dam (@DragonBe)
A jenkins screen we have for automated updates of WordPress sites
Slide 44
Slide 44 text
Michelangelo van Dam (@DragonBe)
And if we go into details, we see it running all the steps we defined
Slide 45
Slide 45 text
Michelangelo van Dam (@DragonBe)
CI build run reporting, available in Jenkins but also send out by email
Slide 46
Slide 46 text
Michelangelo van Dam (@DragonBe)
Schedule
WordPress
Continuous Integration
Challenges
Sollutions
Recap
Slide 47
Slide 47 text
Michelangelo van Dam (@DragonBe)
Slide 48
Slide 48 text
Michelangelo van Dam (@DragonBe)
Slide 49
Slide 49 text
Michelangelo van Dam (@DragonBe)
Slide 50
Slide 50 text
Michelangelo van Dam (@DragonBe)
Thank you
Slides:
Feedback: @DragonBe