Agiledrop.com Blog: AGILEDROP: Day zero at DrupalCon Nashville

Planet Drupal - 10. April 2018 - 2:22
It was a long trip from Slovenia to Nashville, but after a good night sleep, I headed towards Music City Center for the first day of DrupalCon. Mondays at DrupalCon are reserved for sub-events called summits. There were Decoupled Summit, Higher Education Summit, Government Summit, Media and Publishing Summit, Nonprofit Summit, Community Summit and Business Summit. The last is the one I picked to attend.    Business Summit The event was organized by Elia Albarran, Four Kitchens and Aimee Degnan, Hook 42. The idea of the event is to facilitate open discussions between Drupal agency owners… READ MORE

Nuvole: Config Distro

Planet Drupal - 9. April 2018 - 18:06
A new workflow for distribution configuration management.Drupal core workflow limitations

It is not a secret that the configuration management in Drupal 8 core was made for only one specific use case: move configuration from one environment to another for the same site. Everything else was left for contrib to find solutions for. Config Installer is necessary to set up a site starting from existing configuration and Config Split is needed to have environment specific configuration that go beyond simple configuration overrides, like development modules enabled only locally. But the whole workflow still assumes that developers - most often in the same team - have control over the environments and deployment of the site.

Distributions are not covered

Distributions are very different. When maintaining a distribution one doesn't develop a specific site but rather the template to build different sites with. Deploying configuration as we do it for a single site does not have any meaning because there is no one production site to deploy to. Each site based off a distribution is its own site with its own site uuid and its own possible customisations and possibly its own development and production environments. At the same time as a consumer of a distribution - a site owner of a site based off a distribution - one wants to update the distributions features while keeping the customisations.

Update hooks?

Different distributions handle this in different ways. A first approach to solve this issue is treating it the same way you would a schema update and change the configuration on a site with an update hook. The problem with this is that update hooks are meant to fix the database to be able to run with the version of code that is in use on the site. The first thing one needs to do after updating the code base is to run the update hooks to realign the database. Configuration management has different needs and when updating the configuration in an update hooks means that one has to be careful to check that the configuration is in the expected state. And the only recourse is to log and make sure the user is informed what manual actions he needs to do to update the configuration himself. As there is no place to involve the user with a choice while update hooks are run.

Config Distro

We propose a new kind of workflow, in essence it allows developers of a distribution to say how the "distributions configuration" is supposed to be updated and it allows site owners of a site based on a distribution to treat the distribution maintainers as a developer on their team. At the same time this does not interfere with the configuration management workflow for staging and deploying configuration to the production site.

The primary function of Config Distro is to allow updating a distributions configuration in a new workflow and give the site owners more control and insight on how the configuration of their site changes. It is a new way to imagine the configuration management system in a way that lets sites own their configuration but allowing distributions to provide updated configuration for existing sites.

A new dimension

In a blog post one year ago I talked about different dimensions of configuration management;

  • vertical: moving configuration between environments but for the same site
  • horizontal: moving configuration between different sites. for example for distribution updates.

Config Distro is a UI and a drush command for that workflow. It is intended to be used by site builders who base their site on a distribution and want to import configuration updates from the updated distribution. The UI is essentially a parallel to configuration import screen for the workflow supported by core. But instead of importing the configuration from the files used to move/deploy configuration between environments you import from a special configuration storage which starts out with the sites active configuration and has the distributions updates applied to it. This means you do not have problems with mismatched site uuids or things being removed that you added and were not part of the distribution. And updates can apply (or not) to translations even if the distribution did not have languages.

Where do updates come from

If you only install Config Distro, the import screen eternally shows that there is nothing to import. This is because the module only provides the framework for this to work, ie the UI and the drush command. The module is not opinionated on how or what should be updated. All the complexity can be addressed by a distribution maintainer with the help of a ConfigFilter plugin (the same way Config Split and Config Ignore work). One such module is Config Sync. All the complexity of finding out what what configuration a module has originally shipped with, what it does now and whether a user has changed the originally installed configuration is left to Config Sync and its dependencies.

Choice

Just like Config Ignore allows you to opt out of some of the configuration management workflows, Config Distro has a Config Distro Ignore module that lets you retain certain configuration from being changed when you hit the "import" button. The "Retain configuration" button is available right next to the "View differences" button.

Clicking it leads to a form that lets you choose to retain the configuration permanently or only for this specific update. It also allows you to ignore a update for a specific language.

Example

In our team we set up a site based on a distribution. We added our own login module for our single sign on and added a few webforms. Now there is a new version of the distribution with some new features and I would like upgrade the site to using the new features. I am tasked with updating the site, here is what I do:

  • I update the code of the distribution by specifying the new version in composer.json and do a composer update to get the updated code*
  • I run the database updates drush updb to align the database with the code*
  • I go to the distro update screen provided by Config Distro
    • This screen looks very familar, it looks the same way as when I import configuration changes my team mates made after I get their code with git pull.
    • I see a new module is going to be installed and a few views and settings from the distribution are updated.
    • Our webforms are not going to be removed and our custom modules not uninstalled.
  • I click "import all"
  • Now my site has the updated code and configuration so I export the configuration for deployment: drush cex and commit*
  • My colleges get the update the same way they get normal changes that happen during development*:
    • git pull get the code
    • composer install get the external code (vendor, contrib, etc)
    • drush updb align the database with the new code base.
    • drush cim import the sync configuration.

* This is the same procedure as for any module update on any site.
Distributions may add a "Auto upgrade" setting and then import the Config Distro in a post_update_hook to bypass the manual step required of site administrators upgrading the distribution.

Conclusion

Config Distro provides a new workflow for updating distributions with a familiar feel. It recognizes that update hooks are not an adequate solution for updating a sites configuration when a site owns the configuration and site administrators may have changed the initially provided configuration.
It allows developers of distributions to alter the sites configuration through ConfigFilter plugins and it gives site administrators a choice of what to import.
Config Distro is just the framework for extending cores configuration management to allow managing configuration changes to get into the site from a third party such as the distribution maintainers. It does not interfere with the traditional workflow and importing the configuration updates from a distribution should be seen as any other configuration change such as adding a new view or changing permissions: You go to an admin page and you click some things in a form, then you export the configuration and deploy it.

Future - CMI 2.0

While it already works, Config Distro is still in an alpha state. Config Distro is part of a larger effort to improve the configuration management in Drupal. You can find further information and participate in the discussion on drupal.org

Tags: Drupal 8Code Driven DevelopmentConfiguration ManagementDrupal Planet

#TGIQF – das Quiz: Was wissen Sie über den C64?

heise online Newsticker - 9. April 2018 - 18:00
Kein Heimcomputer hat sich so gut verkauft wie der Commodore 64. Für die einen war er die ultimative Daddelkiste, für andere Inspiration zur späteren Berufswahl. Was wissen Sie (noch) über den C64?

ThinkDrop Consulting: Announcing Provision 4: Leaving the Aegir Nest

Planet Drupal - 9. April 2018 - 17:27
Announcing Provision 4: Leaving the Aegir Nest Jon Pugh Mon, 04/09/2018 - 11:27

As we head into DrupalCon week I've got something big to announce. With the blessing of the Aegir core maintainers, I am taking the 4.x branch of Provision I have been working on and I am separating it from the Aegir Project.

Provision 4 will still power Aegir. We are working on a patch to Hostmaster that will allow us to run a different command other than Drush, allowing Provision4 to become the primary back-end to Aegir 4. This means it will also be able to power the current generation DevShop.

Ariane 5 bringt zwei Kommunikationssatelliten erfolgreich ins All

heise online Newsticker - 9. April 2018 - 16:00
Nach der Panne bei der letzten Ariane-5-Mission ist jetzt das Aussetzen eines japanischen und eines britischen Kommunikationssatelliten wieder geglückt.

Final Cut Pro X 10.4.1 im Anmarsch

heise online Newsticker - 9. April 2018 - 15:30
Apples professionelle Videoschnittsoftware erhält am kommenden Montag ein größeres Update. Neu ist unter anderem das ProRes-RAW-Format.

Herbstcampus 2018: Call for Proposals verlängert

heise online Newsticker - 9. April 2018 - 15:00
Für die elfte Auflage des Herbstcampus' in Nürnberg haben Sprecher noch bis zum 10. April Gelegenheit, ihre Vortrags- und Workshop-Ideen einzureichen.

Virtuelle Welten helfen bei "Rücken"

heise online Newsticker - 9. April 2018 - 15:00
Chronische Schmerzen könnten künftig mit VR-Brille therapiert werden, glauben Forscher aus Bergen.

Neuer Mac Pro nicht vor 2019

heise online Newsticker - 9. April 2018 - 14:30
Apple lässt sich für seinen im vorigen Jahr angekündigten modularen Profi-Rechner viel Zeit. 2018 werde es nichts mehr, teilten Manager des Konzerns nun mit. Dafür wollen sie genau auf die Nutzer hören.

Hook 42: February Accessibility (A11Y) Talks

Planet Drupal - 9. April 2018 - 13:47

In February, we welcomed Scott Vinkle as our guest speaker. Scott is an accessibility expert and front-end developer for Shopify who spoke to our meetup group about creating accessible React JS apps. Scott has been active in the accessibility community since 2011. He has worked with many groups including the accessibility project, the a11y tour, CodePen Ottawa, and many, many others.

Tarifstreit: Erste Tarifrunde bei T-Systems endet ergebnislos, Verdi fordert besseres Angebot

heise online Newsticker - 9. April 2018 - 13:00
Die Gewerkschaft Verdi fordert für Mitarbeiter der T-Systems 5,5 Prozent mehr Gehalt und orientiert sich damit an den Forderungen in den laufenden Tarifverhandlungen mit der Muttergesellschaft Deutsche Telekom.

Facebook weiß nicht, welche Daten Cambridge Analytica besitzt

heise online Newsticker - 9. April 2018 - 12:00
Welche Daten Cambridge Analytica abgegriffen hat, weiß Facebook selbst nicht genau. Die deutschen Internetnutzer vertrauen dem sozialen Netzwerk einer Umfrage zufolge überwiegend nicht. Der Präsident des Bundeskartellamts meldet sich zu Wort.

Roman Agabekov: How we applied SA-CORE-2018-002 for several dozen Drupal-powered sites

Planet Drupal - 9. April 2018 - 11:41
How we applied SA-CORE-2018-002 for several dozen Drupal-powered sites Submitted by admin on Mon, 04/09/2018 - 09:41

Here is a brief account of how we applied the most critical Drupal security update in the past couple of years to web projects we support and monitor.

Tags

Virgin Galactic: Erster Testflug seit vier Jahren

heise online Newsticker - 9. April 2018 - 11:30
Erstmals nach dem tödlichen Absturz des Space Ship Two Enterprise im Jahr 2014 hat Virgin Galactic wieder einen Testflug mit Raketenschub durchgeführt. Das neue Vehikel heißt Unity und erreichte fast doppelte Schallgeschwindigkeit.

Samsung erwartet neuen Rekord beim operativen Gewinn

heise online Newsticker - 9. April 2018 - 11:30
Der südkoreanische Konzern rechnet damit, dass der Quartalsgewinn aus den Kerngeschäften im Jahresvergleich um 58 Prozent steigen wird.

Lucius Digital: 26 Cool Drupal modules for site builders | April 2018

Planet Drupal - 9. April 2018 - 10:52
The biggest ‘module’ being updated was the Drupal core of course: Drupal 8.5.0 was released about a month ago, read more. Also, everything else what stood out to the module updates of last month, enjoy:

Test: Rasend schneller Quadrokopter DJI Mavic Air mit 4K-Kamera

heise online Newsticker - 9. April 2018 - 10:30
Die Videodrohne DJI Mavic Air ist kompakt, zeichnet in 4K-Auflösung auf und vereint die meisten Stärken ihrer Schwestermodelle Mavic Pro und Spark.

Auf der Suche nach einer Schwester der Erde

heise online Newsticker - 9. April 2018 - 10:30
Auf der European Week of Astronomy and Space Science (EWASS) in Liverpool haben Wissenschaftler Forschungen zur Physik und Chemie der Atmosphären extrasolarer Planeten vorgestellt.

Microsoft investiert auf dem Weg ins Internet der Dinge 5 Milliarden US-Dollar

heise online Newsticker - 9. April 2018 - 10:30
Ergänzend zu den IoT-Entwicklertools rund um die Azure-Plattform will der Konzern Unternehmen auch leichter konsumierbare IoT-Dienste offerieren, die Schlüsseltechnik wie Künstliche Intelligenz oder Machine Learning nutzen.

Jaguar Land Rover führt sichereres Keyless-System ein

heise online Newsticker - 9. April 2018 - 10:00
Das neue Keyless-Schließsystems des britischen Autoherstellers soll die Signalverlängerung unwirksam machen.