$30 off During Our Annual Pro Sale. View Details »

Continuous WordPress

DragonBe
February 27, 2020

Continuous WordPress

WordPress is probably the most-used blogging framework on the internet, with millions of people publishing multiple articles daily and a very active community building extra functionality through plugins and themes, making WordPress the best tool for small businesses to get started with their online identity. But this popularity comes with a price: it becomes target to spammers and even worse: hackers.

In this session I will explain how you can harness your WordPress setup and use automated tools to keep your WordPress site (or sites) protected and up-to-date, especially when you can not use the automated update features WordPress has build-in. Stop worrying about failing plugins and keep your WordPress application up-to-date in a continuous, automated, secure way.

DragonBe

February 27, 2020
Tweet

More Decks by DragonBe

Other Decks in Technology

Transcript

  1. Michelangelo van Dam (@DragonBe)
    Continuous
    Wordpress
    Or why wouldn’t you automate your
    WordPress installations?

    View Slide

  2. 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

    View Slide

  3. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  4. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  5. Michelangelo van Dam (@DragonBe)
    30%
    Of the internet is WordPress
    5

    View Slide

  6. 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

    View Slide

  7. 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

    View Slide

  8. 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

    View Slide

  9. Michelangelo van Dam (@DragonBe)
    Many known brands use WordPress

    View Slide

  10. Michelangelo van Dam (@DragonBe)
    Often you start of with one site
    A personal or business site

    View Slide

  11. Michelangelo van Dam (@DragonBe)
    Then you start having some more
    A website for family, hobby, sports club, …

    View Slide

  12. Michelangelo van Dam (@DragonBe)
    And before you know it…
    You’re in charge of many more sites

    View Slide

  13. Michelangelo van Dam (@DragonBe)

    View Slide

  14. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  15. Michelangelo van Dam (@DragonBe)
    Continuous Integration Tools
    Run locally on-prem

    View Slide

  16. Michelangelo van Dam (@DragonBe)
    Continuous Integration Services
    Or you can run it as a SaaS

    View Slide

  17. Michelangelo van Dam (@DragonBe)

    View Slide

  18. Michelangelo van Dam (@DragonBe)

    View Slide

  19. Michelangelo van Dam (@DragonBe)

    View Slide

  20. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  21. Michelangelo van Dam (@DragonBe)
    Customization

    View Slide

  22. Michelangelo van Dam (@DragonBe)
    Platforms & Services

    View Slide

  23. Michelangelo van Dam (@DragonBe)
    Scary

    View Slide

  24. Michelangelo van Dam (@DragonBe)
    Let’s review how
    WordPress is setup…

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

  32. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  33. Michelangelo van Dam (@DragonBe)
    WordPress Core

    View Slide

  34. 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

    View Slide

  35. Michelangelo van Dam (@DragonBe)
    Custom SVN Repositories
    ● Custom Themes:
    http://svn.company.com/themes
    ● Custom Plugins:
    http://svn.company.com/plugins

    View Slide

  36. 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

    View Slide

  37. Michelangelo van Dam (@DragonBe)
    Staged environments
    Development
    DEV
    Testing
    TEST
    Acceptance
    ACC
    Production
    PROD

    View Slide

  38. Michelangelo van Dam (@DragonBe)
    Staged environments
    Testing
    TEST
    Production
    PROD

    View Slide

  39. Michelangelo van Dam (@DragonBe)
    Provisioning tools

    View Slide

  40. Michelangelo van Dam (@DragonBe)
    Phing, make or Apache Ant

    View Slide

  41. Michelangelo van Dam (@DragonBe)
    Manual process for updating WordPress (for clients)

    View Slide

  42. 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

    View Slide

  43. Michelangelo van Dam (@DragonBe)
    A jenkins screen we have for automated updates of WordPress sites

    View Slide

  44. Michelangelo van Dam (@DragonBe)
    And if we go into details, we see it running all the steps we defined

    View Slide

  45. Michelangelo van Dam (@DragonBe)
    CI build run reporting, available in Jenkins but also send out by email

    View Slide

  46. Michelangelo van Dam (@DragonBe)
    Schedule
    WordPress
    Continuous Integration
    Challenges
    Sollutions
    Recap

    View Slide

  47. Michelangelo van Dam (@DragonBe)

    View Slide

  48. Michelangelo van Dam (@DragonBe)

    View Slide

  49. Michelangelo van Dam (@DragonBe)

    View Slide

  50. Michelangelo van Dam (@DragonBe)
    Thank you
    Slides:
    Feedback: @DragonBe

    View Slide