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:
# Konfiguratsiooni eksport
drush config:export
# Konfiguratsiooni import
drush config:importLühivormid:
drush cex
drush cimPä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:
- Arendaja teeb muudatuse arenduskeskkonnas.
- Käivitab
drush cex. - Lisab YAML-failid Git commitisse.
- Muudatus läbib koodiülevaatuse.
- Muudatus juurutatakse testkeskkonda.
- Testkeskkonnas tehakse
drush cim. - 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.

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.