SlideShare a Scribd company logo
1 of 27
LISBON 2018
DRUPAL DEVELOPER DAYS
Aiming for Automatic
Updates
Hernâni Borges de Freitas
Diamond Sponsor
Platinum Sponsors
Gold Sponsors
Who am I
• ~ 10 years of Drupal
• Technical Architect - Freelancer
• Hernani.pt – twitter.com/hernanibf
• DDD Organization
The life of a website
Specification Design/Architec
ture
Development Go-LiveUAT Maintenance /
Support
(Through the eyes of someone delivering it)
~ MonthsSometimes it looks like years….
The life of a website
Project
Phase
Maintenance /
Support
(Through the eyes of someone who actually pays for it)
~ Months ~ Years
Problem
• We cannot leave websites on autopilot
• Updates require time and resources
• Developers
• Different environments
• Testing
• Deployment processes working
• Low effort put on web site maintenance processes
Challenges
• Things can break when updating
• Drupal is used/installed in many configuration scenarios by totally different types of users
• One environment/many environments, one server / multiple web nodes, cheap hosting..
• Source code should be reviewed before deployments
• Security concerns
• Software should not overwrite itself automatically
• A central updater can introduce vulnerabilities (https://www.wordfence.com/blog/2016/11/hacking-27-
web-via-wordpress-auto-update/)
Drupal 8
Our brave new world:
• More dependencies, more components change over releases. Larger attack
vector regarding security.
• Core is evolving faster so there is a need for more frequent larger updates.
• Staying behind new releases means it is harder to update (there are more
updates / steps to go through).
Personas
• 1- Deploy and Ignore: Once the site has the functionality needed, there's little maintenance or updating.
Doesn't subscribe to PSAs.
• 2 - Site owner who care once a year: Deploy and ignore w/ an exception once a year
• 3 - Diligent but with Simple Needs: Typically applies updates within a week of release, possibly longer
for non-security updates. Follows up on PSAs by directly updating the live site.
• 4 - The Sophisticate: Needs to apply at least one build step (for CSS, Composer, etc.). Runs QA in a
pre-production environment. May deploy to a multi-head cluster.
Source: https://www.drupal.org/project/ideas/issues/2940731
WHO ARE YOU?
We are all sophisticate !
Or maybe not.
According to Driesnote in Vienna, September 2017
• 59% of all Drupal users update by downloading modules from drupal.org
• 24% of all Drupal 8 users update using drush
• 22% of all Drupal 8 users update using composer
Options
• Require smaller number of updates and smaller updates
• Make update process easier
• Not breaking functionality
• Not evolving human effort
• Integrated with normal development/deployment workflow
• Automatic Updates !
What’s typically involved in an
update?
• Build (Composer install / Composer update)
• Review the changes on the build
• Deploy to an environment
• Test (Ideally automatically)
• Deploy to production
• Communicate all the way through.. !
Or maybe not…
Things get easier when...
•A CI Pipeline exists
•Multiple environments are available and are up to date
•Automated tests exists and have good coverage
•Security updates are detected ASAP
•Developers can review changes before being applied
My personal experience
• I have been responsible for maintaining 4 D8 websites over the last 6 months as a hobby
• Two in Acquia Cloud
• Using github / Acquia pipelines
• Drupal.pt and lisbon2018.drupaldays.org (https://github.com/drupalportugal/drupal-dev-days-2018)
• Two in self-hosting
• Bitbucket / Bitbucket pipelines / Deployer (https://deployer.org/)
• Few minutes per site including build time to have production updated
Simple update process
• Assuming your code is versioned in a Git repository
• Change composer if required
• Run composer install/update
• Commit build artifact. Deploy to a testing environment.
• Test
• Merge the testing branch to master
• Deploy to live
Update strategy
Dev Branch
Composer.json
Custom code
CI Pipeline file
Build Branch
All code that will
be deployed
Commit
CI
Build
Staging
Environment
Deploys
Tested/Approved
Final
Build
Artifact
Production
Environment
Merge to Master or
Create a tag or
…
Commercial products
Detect updates, prepares update process in git repository and prepares deployment process from git repository.
Other options to solve the same
problem?
• How does Wordpress update core?
• Supports automatic updates since October 2013
• Runs on cron using api.wordpress.org
• Core/Plugins/Themes/Translations supported
• By default minor releases and translation files
• Webserver writes new PHP files
Similar option in Drupal?
• Overwrite code similar to what WP does
• Not great for many organizations
• Security implications
• Many hosting providers don’t support it
Would still cover a large percentage of Drupal websites and mostly the simpler ones which owners don’t
care too much.
If not using composer, easily done with the likes of a cronjob:
$ drush upc --security-only --y
Automatic Updates initiative
• Announced in Vienna by Dries
• Use cases and roadmap being discussed
• Several options on the table
• Evolved
• Improve Drupal Core's relationship with Composer
• The A/B vendor directory and bootloader concept
• Code signing and ensuring integrity
https://www.drupal.org/project/ideas/issues/2940731
https://events.drupal.org/nashville2018/sessions/drupal-core-auto-update-architecture
• One option proposed (bootloader concept):
• files/
• vendor-kjfksld/ - Composer-style layout of core and contrib.
• vendor-sduj84/ - Composer-style layout of core and contrib.
• index.php: Bootloader. Initializes autoload path which can vary after updates
Automatic Updates
https://github.com/php-rot
Questions?

More Related Content

What's hot

QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
Rodrigo Russo
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
dcjuengst
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
cherryhillco
 

What's hot (20)

Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Visual Studio Release Management - New weltanschauung or natural evolution? @...
Visual Studio Release Management - New weltanschauung or natural evolution? @...Visual Studio Release Management - New weltanschauung or natural evolution? @...
Visual Studio Release Management - New weltanschauung or natural evolution? @...
 
Software development in the modern age
Software development in the modern ageSoftware development in the modern age
Software development in the modern age
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Smarter deployments with octopus deploy
Smarter deployments with octopus deploySmarter deployments with octopus deploy
Smarter deployments with octopus deploy
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 
The Automated Monolith
The Automated MonolithThe Automated Monolith
The Automated Monolith
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Continuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for SalesforceContinuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for Salesforce
 
Jenkins
JenkinsJenkins
Jenkins
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Chicago alm user group tfs version control poster - tfvc and git
Chicago alm user group   tfs version control poster - tfvc and gitChicago alm user group   tfs version control poster - tfvc and git
Chicago alm user group tfs version control poster - tfvc and git
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
 

Similar to Aiming for automatic updates - Drupal Dev Days Lisbon 2018

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 

Similar to Aiming for automatic updates - Drupal Dev Days Lisbon 2018 (20)

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
automatic_updates.pptx
automatic_updates.pptxautomatic_updates.pptx
automatic_updates.pptx
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
DNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror StoriesDNN-Connect 2019: DNN Horror Stories
DNN-Connect 2019: DNN Horror Stories
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 
Dev ops in the cloud use case and best practices meetup
Dev ops in the cloud use case and best practices   meetupDev ops in the cloud use case and best practices   meetup
Dev ops in the cloud use case and best practices meetup
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
DNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made SimpleDNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made Simple
 
Development Processes and Tooling
Development Processes and ToolingDevelopment Processes and Tooling
Development Processes and Tooling
 
Branding office 365 with front end tooling
Branding office 365 with front end toolingBranding office 365 with front end tooling
Branding office 365 with front end tooling
 

More from hernanibf

Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelona
hernanibf
 
Drupal content editor flexibility
Drupal content editor flexibilityDrupal content editor flexibility
Drupal content editor flexibility
hernanibf
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
hernanibf
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
hernanibf
 
Fix me if you can - DrupalCon prague
Fix me if you can - DrupalCon pragueFix me if you can - DrupalCon prague
Fix me if you can - DrupalCon prague
hernanibf
 
My site is slow
My site is slowMy site is slow
My site is slow
hernanibf
 
Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your website
hernanibf
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
hernanibf
 
Drupal + selenium
Drupal + seleniumDrupal + selenium
Drupal + selenium
hernanibf
 

More from hernanibf (15)

Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupal
 
Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelona
 
Drupal content editor flexibility
Drupal content editor flexibilityDrupal content editor flexibility
Drupal content editor flexibility
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
Fix me if you can - DrupalCon prague
Fix me if you can - DrupalCon pragueFix me if you can - DrupalCon prague
Fix me if you can - DrupalCon prague
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013
 
My site is slow
My site is slowMy site is slow
My site is slow
 
Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your website
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
 
Acquia Commons
Acquia CommonsAcquia Commons
Acquia Commons
 
Drupal Performance - SerBenfiquista.com Case Study
Drupal Performance - SerBenfiquista.com Case StudyDrupal Performance - SerBenfiquista.com Case Study
Drupal Performance - SerBenfiquista.com Case Study
 
Drupal + selenium
Drupal + seleniumDrupal + selenium
Drupal + selenium
 
Drupal Recipe
Drupal RecipeDrupal Recipe
Drupal Recipe
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Aiming for automatic updates - Drupal Dev Days Lisbon 2018

  • 1. LISBON 2018 DRUPAL DEVELOPER DAYS Aiming for Automatic Updates Hernâni Borges de Freitas
  • 5. Who am I • ~ 10 years of Drupal • Technical Architect - Freelancer • Hernani.pt – twitter.com/hernanibf • DDD Organization
  • 6. The life of a website Specification Design/Architec ture Development Go-LiveUAT Maintenance / Support (Through the eyes of someone delivering it) ~ MonthsSometimes it looks like years….
  • 7. The life of a website Project Phase Maintenance / Support (Through the eyes of someone who actually pays for it) ~ Months ~ Years
  • 8. Problem • We cannot leave websites on autopilot • Updates require time and resources • Developers • Different environments • Testing • Deployment processes working • Low effort put on web site maintenance processes
  • 9.
  • 10. Challenges • Things can break when updating • Drupal is used/installed in many configuration scenarios by totally different types of users • One environment/many environments, one server / multiple web nodes, cheap hosting.. • Source code should be reviewed before deployments • Security concerns • Software should not overwrite itself automatically • A central updater can introduce vulnerabilities (https://www.wordfence.com/blog/2016/11/hacking-27- web-via-wordpress-auto-update/)
  • 11. Drupal 8 Our brave new world: • More dependencies, more components change over releases. Larger attack vector regarding security. • Core is evolving faster so there is a need for more frequent larger updates. • Staying behind new releases means it is harder to update (there are more updates / steps to go through).
  • 12. Personas • 1- Deploy and Ignore: Once the site has the functionality needed, there's little maintenance or updating. Doesn't subscribe to PSAs. • 2 - Site owner who care once a year: Deploy and ignore w/ an exception once a year • 3 - Diligent but with Simple Needs: Typically applies updates within a week of release, possibly longer for non-security updates. Follows up on PSAs by directly updating the live site. • 4 - The Sophisticate: Needs to apply at least one build step (for CSS, Composer, etc.). Runs QA in a pre-production environment. May deploy to a multi-head cluster. Source: https://www.drupal.org/project/ideas/issues/2940731
  • 14. We are all sophisticate !
  • 15. Or maybe not. According to Driesnote in Vienna, September 2017 • 59% of all Drupal users update by downloading modules from drupal.org • 24% of all Drupal 8 users update using drush • 22% of all Drupal 8 users update using composer
  • 16. Options • Require smaller number of updates and smaller updates • Make update process easier • Not breaking functionality • Not evolving human effort • Integrated with normal development/deployment workflow • Automatic Updates !
  • 17. What’s typically involved in an update? • Build (Composer install / Composer update) • Review the changes on the build • Deploy to an environment • Test (Ideally automatically) • Deploy to production • Communicate all the way through.. ! Or maybe not…
  • 18. Things get easier when... •A CI Pipeline exists •Multiple environments are available and are up to date •Automated tests exists and have good coverage •Security updates are detected ASAP •Developers can review changes before being applied
  • 19. My personal experience • I have been responsible for maintaining 4 D8 websites over the last 6 months as a hobby • Two in Acquia Cloud • Using github / Acquia pipelines • Drupal.pt and lisbon2018.drupaldays.org (https://github.com/drupalportugal/drupal-dev-days-2018) • Two in self-hosting • Bitbucket / Bitbucket pipelines / Deployer (https://deployer.org/) • Few minutes per site including build time to have production updated
  • 20. Simple update process • Assuming your code is versioned in a Git repository • Change composer if required • Run composer install/update • Commit build artifact. Deploy to a testing environment. • Test • Merge the testing branch to master • Deploy to live
  • 21. Update strategy Dev Branch Composer.json Custom code CI Pipeline file Build Branch All code that will be deployed Commit CI Build Staging Environment Deploys Tested/Approved Final Build Artifact Production Environment Merge to Master or Create a tag or …
  • 22. Commercial products Detect updates, prepares update process in git repository and prepares deployment process from git repository.
  • 23. Other options to solve the same problem? • How does Wordpress update core? • Supports automatic updates since October 2013 • Runs on cron using api.wordpress.org • Core/Plugins/Themes/Translations supported • By default minor releases and translation files • Webserver writes new PHP files
  • 24. Similar option in Drupal? • Overwrite code similar to what WP does • Not great for many organizations • Security implications • Many hosting providers don’t support it Would still cover a large percentage of Drupal websites and mostly the simpler ones which owners don’t care too much. If not using composer, easily done with the likes of a cronjob: $ drush upc --security-only --y
  • 25. Automatic Updates initiative • Announced in Vienna by Dries • Use cases and roadmap being discussed • Several options on the table • Evolved • Improve Drupal Core's relationship with Composer • The A/B vendor directory and bootloader concept • Code signing and ensuring integrity https://www.drupal.org/project/ideas/issues/2940731
  • 26. https://events.drupal.org/nashville2018/sessions/drupal-core-auto-update-architecture • One option proposed (bootloader concept): • files/ • vendor-kjfksld/ - Composer-style layout of core and contrib. • vendor-sduj84/ - Composer-style layout of core and contrib. • index.php: Bootloader. Initializes autoload path which can vary after updates Automatic Updates https://github.com/php-rot