Slide 1

Slide 1 text

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