Arendus Drupal

Drupal konfiguratsiooni haldus — miks config sync on oluline

🎧 Kuula kõiki artikleid järjest

Drupal Configuration Management on üks olulisemaid muudatusi, mis Drupal 8-ga kaasa tuli. See võimaldab käsitleda konfiguratsiooni samamoodi nagu koodi — versioonihalduse, ülevaatuse ja kontrollitud juurutusega.

Mis probleem lahendati

Varasemates Drupal versioonides elas suurem osa konfiguratsioonist ainult andmebaasis.

Kui arendaja lõi:

  • uue sisutüübi;
  • vaate (View);
  • kasutajarolli;
  • pildistiili;
  • vormi seadistuse;

siis salvestus see andmebaasi.

Keskkondade vahel liikumine tähendas sageli käsitööd:

  • tee sama muudatus testkeskkonnas;
  • tee sama muudatus tootmises;
  • looda, et midagi ei ununenud.

Suuremate projektide puhul muutus see kiiresti vigade allikaks.

Mis on Drupal Configuration Management

Drupal võimaldab konfiguratsiooni eksportida YAML-failidena failisüsteemi.

Need failid saab panna Git versioonihaldusesse ning neid saab juurutada samamoodi nagu koodi.

Tüüpilised käsud:

bash
# Konfiguratsiooni eksport
drush config:export

# Konfiguratsiooni import
drush config:import

Lühivormid:

bash
drush cex
drush cim

Pärast eksporti tekivad konfiguratsioonifailid, mida saab:

  • võrrelda Gitis;
  • üle vaadata pull requestides;
  • taastada varasemast versioonist;
  • juurutada erinevatesse keskkondadesse.

Mida Configuration Management haldab

Tavaliselt kuuluvad konfiguratsiooni hulka:

  • sisutüübid;
  • väljad;
  • View'd;
  • kasutajarollid;
  • õigused;
  • menüüde struktuur;
  • pildistiilid;
  • tekstivormingud;
  • moodulite seaded;
  • keelekonfiguratsioon;
  • taksonoomia seadistused.

See tähendab, et kogu saidi struktuur muutub versioonihaldatavaks.

Mida Configuration Management ei halda

Oluline on mõista, et konfiguratsioon ei ole sama asi mis sisu.

Configuration Management ei sisalda:

  • artikleid;
  • lehti;
  • kasutajaid;
  • meediakirjeid;
  • faile;
  • pilte.

Need jäävad andmebaasi või failisüsteemi.

Seetõttu vajavad Drupal projektid jätkuvalt:

  • andmebaasi varukoopiaid;
  • failide varukoopiaid;
  • kontrollitud migratsiooniprotsesse.

Professionaalne töövoog

Tüüpiline Drupal töövoog näeb välja järgmine:

  1. Arendaja teeb muudatuse arenduskeskkonnas.
  2. Käivitab drush cex.
  3. Lisab YAML-failid Git commitisse.
  4. Muudatus läbib koodiülevaatuse.
  5. Muudatus juurutatakse testkeskkonda.
  6. Testkeskkonnas tehakse drush cim.
  7. Pärast kontrolli jõuab muudatus tootmiskeskkonda.

Tulemus on see, et kõik keskkonnad kasutavad sama konfiguratsiooni.

Miks see on oluline

Muudatused on jälgitavad

Git näitab täpselt:

  • mida muudeti;
  • millal muudeti;
  • kes muutis;
  • miks muudeti.

See lihtsustab veaotsingut ja auditit.

Muudatused on taastatavad

Kui konfiguratsioonimuudatus põhjustab probleemi, saab selle Gitist tagasi pöörata.

Ilma Configuration Managementita võib taastamine tähendada käsitsi seadistamist.

Meeskonnatöö muutub võimalikuks

Kui mitu arendajat töötavad sama projekti kallal, saavad nad muudatusi hallata samade protsessidega nagu koodi puhul.

See vähendab konflikte ja kadunud seadistusi.

Juurutused muutuvad korratavaks

Tootmiskeskkonda ei pea käsitsi seadistama.

Sama konfiguratsioon jõuab igasse keskkonda automaatselt.

Config Split ja keskkonnaspetsiifilised seaded

Kõik konfiguratsioon ei pea olema kõikides keskkondades identne.

Näiteks:

Arenduskeskkonnas:

  • Devel moodul on sisse lülitatud;
  • vahemälu on piiratud;
  • logimine on detailsem.

Tootmiskeskkonnas:

  • Google Analytics on aktiivne;
  • Devel moodul puudub;
  • vahemälu on täielikult kasutusel.

Selliste juhtumite jaoks kasutatakse sageli moodulit config_split.

See võimaldab hoida osa konfiguratsioonist keskkonnaspetsiifilisena ilma põhikonfiguratsiooni rikkumata.

Levinumad probleemid

Muudatus tehti otse tootmises

Kui keegi muudab tootmiskeskkonnas konfiguratsiooni käsitsi, tekib erinevus Gitis oleva konfiguratsiooniga.

See võib järgmise deploy käigus üle kirjutada tootmises tehtud muudatused.

Unustati käivitada drush cex

Arendaja muudab konfiguratsiooni, kuid ei ekspordi seda Gitisse.

Kood liigub edasi, konfiguratsioon mitte.

Tulemus on keskkondade erinevus.

Konfliktid importimisel

Kui kaks arendajat muudavad sama konfiguratsiooni korraga, võivad YAML-failid konflikti minna.

See on siiski oluliselt parem probleem kui nähtamatud andmebaasimuudatused.

Kokkuvõte

Drupal Configuration Management on kaasaegse Drupal arenduse üks alustalasid.

See võimaldab:

  • hoida konfiguratsiooni Gitis;
  • teha kontrollitud juurutusi;
  • taastada muudatusi;
  • vähendada käsitööd;
  • parandada meeskonnatööd.

Kui Drupal projektis kasutatakse Git versioonihaldust, Composerit ja automatiseeritud juurutust, peaks Configuration Management olema protsessi loomulik osa. Ilma selleta jääb oluline osa süsteemist andmebaasi peitu ning muudatuste jälgimine muutub keeruliseks.

Kui soovid hinnata oma Drupal projekti töövoogu või Configuration Managementi kasutust, aitab meie Drupal audit tuvastada peamised riskid ja parendusvõimalused.

Kaido Toomingas, WebPro tehniline juhtWebPro Company OÜ Tehniline juht: Kaido Toomingas

Vajad Drupal abi?

Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.