Bedrock WordPress
Viete povedať, ktorá verzia pluginu beží na vašom webe a kto ju tam nahral?
Stavím WordPress na Roots Bedrock: pluginy a jadro spravuje Composer, konfigurácia je oddelená podľa prostredia, webroot je izolovaný a nasadenie prebieha z gitu. Žiadne prepisovanie súborov cez FTP.
Klasická WordPress inštalácia je od začiatku postavená na tom, že sa do nej nahrávajú súbory. Plugin sa nainštaluje kliknutím, tému niekto upraví priamo na serveri, prístupové údaje k databáze ležia v súbore v koreňovom adresári webu a všetko je verzované len tým, že to tam niekto raz nahral. Po roku nikto nevie, ktorá zmena je zámerná a ktorá je pozostatok po predchádzajúcom dodávateľovi. Lokálna kópia sa nedá spoľahlivo vyrobiť, testovanie prebieha na živom webe a každé nasadenie je manuálna operácia s otvoreným FTP klientom.
Bedrock z projektu Roots berie WordPress a usporiada ho tak, ako sa dnes usporadúva každá iná PHP aplikácia. Jadro, pluginy aj témy sú závislosti v Composeri so zapísanými verziami, konfigurácia sa načíta z premenných prostredia, a to, čo je verejne dostupné, je oddelené od toho, čo nemá byť. Projekt sa tým stane repozitárom, ktorý sa dá naklonovať, zostaviť a nasadiť rovnako na notebooku, na stagingu aj v produkcii. Pre klienta to znamená web, ktorý je prenositeľný a ktorý vie prevziať ktokoľvek, kto vie pracovať s gitom.
01
Pluginy a jadro spravované Composerom
V Bedrocku sa pluginy neinštalujú v administrácii, ale zapíšu sa do súboru so závislosťami spolu s verziou. Vďaka registru WPackagist to platí aj pre bežné pluginy z oficiálneho adresára, pri platených licenciách sa doplní vlastný repozitár. Zámok závislostí potom presne určuje, čo beží v produkcii, takže aktualizácia je zmena v repozitári, nie klik, ktorý sa nikde nezapíše. Ak nová verzia niečo pokazí, návrat je jeden príkaz a jedno nasadenie, nie hľadanie zálohy zo správnej noci.
- Verzie pluginov a jadra zapísané v repozitári
- Oficiálny adresár pluginov cez WPackagist
- Platené pluginy s licenciou z vlastného repozitára
- Aktualizácia je revidovateľná zmena, nie neviditeľný klik
- Návrat na predchádzajúcu verziu jedným nasadením
02
Mu-pluginy pre veci, ktoré sa nesmú vypnúť
Časť funkčnosti webu nemá byť v administrácii vypínateľná. Registrácia vlastných typov obsahu, integrácia na fakturačný systém, bezpečnostné obmedzenia alebo napojenie na e-mailovú bránu sú súčasťou projektu, nie voliteľným doplnkom. Takéto veci píšem ako mu-pluginy, ktoré sa načítajú vždy a nedajú sa deaktivovať jedným klikom v zozname pluginov. Zároveň sa tým oddelí kód, ktorý je špecifický pre klienta, od témy, takže sa téma dá vymeniť bez toho, aby s ňou zmizla polovica logiky webu.
- Kritická funkčnosť sa nedá omylom deaktivovať
- Vlastné typy obsahu a integrácie mimo témy
- Téma sa dá vymeniť bez straty logiky
- Jasná hranica medzi vzhľadom a funkciou
- Menej pluginov tretích strán v projekte
03
Konfigurácia podľa prostredia a izolovaný webroot
Bedrock rozdeľuje konfiguráciu na spoločnú časť a na časť pre konkrétne prostredie, pričom prístupové údaje sa načítavajú z premenných prostredia mimo repozitára. Vývojové prostredie tak môže mať zapnuté ladenie a vypnuté indexovanie, produkcia opak, a nikto to nemusí prepínať ručne pred nasadením. Verejne dostupný je iba priečinok webroot, zatiaľ čo závislosti a konfigurácia ležia nad ním a nedajú sa stiahnuť cez prehliadač. Toto usporiadanie samo o sebe odstráni celú skupinu bežných zraniteľností, ktoré vznikajú tým, že v koreňovom adresári leží niečo, čo tam nemá byť.
- Oddelená konfigurácia pre lokál, staging a produkciu
- Prístupové údaje v premenných prostredia, nie v repozitári
- Verejný je len webroot, zvyšok je mimo dosahu
- Ladenie a indexovanie sa neprepínajú ručne
- Menej priestoru na typické zraniteľnosti
04
Nasadenie z gitu namiesto FTP klienta
Keď je projekt repozitár, nasadenie prestane byť rituál. Zmena sa zostaví, nahrá sa celý pripravený stav a prepne sa naň, takže na webe nikdy neexistuje polovične nahraný priečinok. Rovnaký postup beží na staging aj na produkciu, čím sa strácajú prekvapenia typu funguje to u mňa. Zálohy databázy a nahratých súborov riešim mimo repozitára, pretože obsah nepatrí do kódu. Výsledkom je web, kde sa dá povedať presne, čo bolo nasadené, kedy a čo sa v tej zmene menilo.
- Nasadenie je jeden krok, nie hodina v FTP klientovi
- Web nikdy nebeží v polovične nahratom stave
- Rovnaký postup na staging aj produkciu
- História zmien s možnosťou návratu
- Obsah a nahraté súbory oddelené od kódu
05
Prechod z existujúcej inštalácie a cena
Prechod na Bedrock nie je prepis webu. Existujúcu tému a obsah preberám, pluginy prevediem na závislosti so zapísanými verziami, vlastné úpravy prenesiem do mu-pluginov a prostredia nastavím tak, aby sa staging dal kedykoľvek naklonovať z produkcie. Prácu robím na kópii a produkcia sa prepne až vtedy, keď je nová verzia overená. Pracujem za 40 € za hodinu vrátane DPH. Prevod bežného firemného webu na Bedrock býva 8 až 20 hodín, nový projekt postavený na Bedrocku od začiatku nestojí viac než klasická inštalácia.
- Obsah aj téma zostávajú, mení sa usporiadanie
- Vlastné úpravy sa presunú do mu-pluginov
- Prepnutie až po overení na kópii
- Prevod webu orientačne 8 až 20 hodín
- 40 € za hodinu vrátane DPH, nový projekt bez príplatku
?
Časté otázky o Bedrock WordPresse
Zmení sa niečo pre redaktora v administrácii?
Nezmení. Administrácia WordPressu vyzerá a funguje rovnako, obsah sa spravuje bez rozdielu. Bedrock mení iba to, ako je projekt usporiadaný na serveri a ako sa doň dostávajú zmeny v kóde.
Dá sa na Bedrocku inštalovať plugin cez administráciu?
Technicky áno, ale zámerne to obmedzujem, pretože takto pridaný plugin by nebol zapísaný v repozitári a pri ďalšom nasadení by zmizol. Pluginy pridávam cez Composer, čo trvá minútu a zostane po tom stopa.
Funguje Bedrock na bežnom zdieľanom hostingu?
Na časti hostingov áno, na časti nie, pretože Bedrock potrebuje nastaviť koreňový adresár webu na podpriečinok. Pred prechodom vždy overím konkrétny hosting a ak to nejde, odporučím buď zmenu nastavenia, alebo iného poskytovateľa.
Nezvýši Bedrock cenu bežnej údržby?
V praxi ju znižuje. Aktualizácie sa robia hromadne a dajú sa najprv otestovať na stagingu, chyba sa vráti späť jedným krokom a nikto nestrávi hodinu hľadaním, čo sa na serveri zmenilo. Úspora je najviditeľnejšia pri weboch, ktoré sa menia pravidelne.
Koľko stojí prevod existujúceho webu na Bedrock?
Bežný firemný web odhadujem na 8 až 20 hodín, teda 320 až 800 € vrátane DPH pri sadzbe 40 € za hodinu. Rozsah mení počet pluginov s licenciami, množstvo úprav priamo v jadre a stav témy.
Chcete WordPress, ktorý sa dá nasadiť jedným krokom?
Napíšte mi, kde web beží, koľko má pluginov a kto k nemu má prístup. Poviem, či sa prechod na Bedrock oplatí a koľko hodín zaberie.
Prebrať Bedrock