Honza Malý11.12.2013Zpět

Proč nepoužívat Drupal nebo Wordpress pro firemní web

 

Nebaví vás číst technické články, ale chcete vědět, jak správně postavit nový firemní web? Přečtěte si vše o správném postupu při tvorbě webu v sekci Služby , kde na paradigmatech webdesignu nezůstane nit suchá.

Disclaimer: Autor článku Honza Malý se věnuje návrhu a vývoji webů, zejména komerčních firemních prezentací, už téměř 8 let. Sám je autorem vlastního proprietárního řešení pro online správu obsahu na webu, které v současnosti používá společnost Kurzor. Má bohaté zkušenosti s používáním zmíněných systémů Drupal a Wordpress pro potřeby firem.

Drupal nebo Wordpress pro firemní web?

Na internetu dnes najdete spoustu článků popisujících, jak na Drupalu nebo Wordpressu postavit téměř cokoliv. Obdivuji nadšení lidí, kteří tyto věci publikují, a jsem jeden z prvních který jim v jejich práci fandí. Na druhé straně mám rád střízlivý a racionální pohled na věc. A protože mnoho materiálu k tématu "Proč nepoužívat Drupal" na internetu nenajdete, rozhodl jsem se jeden vytvořit.

Pojďme si tedy rozebrat čtyři argumenty, na jejichž základě klienti svoji volbu obhajují. Slibuji, že článek nebude přehnaně technický a bude srozumitelný pro racionálně uvažujícího člověka, který web chápe jako jednu ze součástí svého marketingového mixu.

1. Není to tak drahé jako zákaznický systém.

Nejsilnější argument se týká toho, co hýbe naším světem od nepaměti - peněz, přesněji nákladů na vývoj. Existuje přesvědčení, že pokud je něco open-source a já neplatím za licenci, bude to celkově levnější, než proprietární řešení. Opak je bohužel pravdou. Náklady na vývoj webu dnes čímdál tím méně tvoří licenční poplatky za software, tvoří je v první řadě náklady na lidskou práci při tvorbě daného webu.

Samozřejmě že existují případy, kdy potřebujete jen web z levné grafické šablony, na který umístíte pár informací a budete ho chtít zítra spustit. Nebo blog, který má podpořit spuštění produktu. My se ale bavíme o využití těchto systémů pro firemní prezentaci, na profesionální úrovni.

Zde Drupal a Wordpress ztrácí dech. Tyto systémy se vyvíjejí léta a komunita, která za nimi stojí, se snaží postihnout všechny myslitelné případy použití. Díky tomu bobtnají a výrazně roste jejich komplexita. Protože jsou to projekty open-source a komunita již si vybudovala nějaká očevávání, oba mají zásadní problém - nelze je posunout ve vývoji dál, chybí nějaká jasnější vize a odvaha. Chybí, nebo je málo přítomná retrospektiva a snaha systém zlepšit v tom, v čem selhává.

Praktickým důsledkem je, že při tvorbě webu je vývojář vystaven mnoha problémům a otázkám, na které není jednoduchá odpověď, a je nucen s nimi zabíjet svůj čas, který by jinak využil produktivně. Zejména pokud máte cit pro detail, budete donekonečna instalovat a ladit pluginy i na tak základní věci, jako je drobečková navigace nebo jednoduché přesměrování adres.

A co z toho plyne? Co udělá webová firma, pokud cítí ve svém libovolném procesu nejistotu? Uhodli jste, zdraží, aby v odhadu vývoje webu zohlednila možná rizika. Jsou samozřejmě vývojáři, kteří to dělají výrazně levněji, ale často na úkor kvality, což je ještě horší varianta. Určitou výhodou je existence placených pluginů nebo šablon, které vám přece jen na webu dovolí určitý nádech profesionality. Jejich ceny a licenční podmínky se velmi různí. Nepočítejte ale s tím, že existuje nějaký "killer" plugin, který vyřeší věci magicky za vás.

Pokud firma vyvíjí weby na vlastním řešení, má daleko blíže k časově úspornému vývoji, ze kterého může v konečném důsledku profitovat zákazník.

2. Historický vývoj, výkon a rozšiřitelnost.

Druhý argument by se dal formulovat asi takto: protože se oba systémy vyvíjí dlouho, jsou už odladěné a používat je je výhodné. Nic není dále od pravdy, pokud vezmeme v potaz dvě věci, výkon a rozšiřitelnost.

Jak Drupal, tak Wordpress nepatří mezi výkonné systémy. Jak se podle vás promítne snaha postihnout všechno na světě do výkonu a nároků nějakého řešení? Nainstalujte si jeden z nich se všemi pluginy a rozšířeními, které budete k průměrnému firemnímu webu potřebovat, a ejhle - najednou váš web potřebuje na serveru daleko více paměti, databáze se neustále plní zbytečnými daty a stále se do adresářové struktury přidávají nové a nové soubory. Rychlost načtení a zobrazení jedné stránky je tak žalostná, že najednou musíte začít operovat s pojmy jako cache. Jste denně na konzultacích s vaším hostingovým providerem a ten jen neochotně navyšuje všechny možné dostupné limity, často za úplatu. A podíváte-li se na zdrojový kód stránky, máte pocit, že se tam někdo před chvílí pozvracel.

Dále je často kladně hodnocen fakt, že na tyto systémy existuje hodně rozšíření. To je pravda, jak Drupal, tak Wordpress mají velikou databázi neplacených i placených možností, jak základ nafouknout o zajímavé prvky. Co už ale jedním dechem není dodáno, je horor, který nastává v okamžiku, kdy se snažíte často nesouvisející a s jinou vizí napsané pluginy rozchodit zároveň a řešíte problémy, které z toho náhodně vyplývají.

Zatímco rozšíření nebo upravení zákaznického systému je otázkou zdvižení telefonu a nadiktování vašich požadavků, na Drupalu nebo Wordpressu se pomoci nemusíte dovolat vůbec. Plugin se třeba přestane vyvíjet, nebo ho jeho autor posouvá někam, kde se vám to nehodí, a starší verze samozřejmě s vaším systémem nespolupracují. Oba systémy vás navíc neustále varují, že je něco špatně, protože pluginy nemáte aktuální, takže administrace pro nezkušeného člověka vyvolává dojem, že se pořád někde něco kazí.

Dva typické příklady: vícejazyčnost a struktura webu.

Dělali jste někdy vícejazyčný web na Drupalu? Chcete-li do webu snadno dostat překlady a vztáhnout je na všechny prvky systému jako navigace, obsah, ale také rozšíření, očekávali byste, že to bude fungovat. Vícejazyčných řešení je ale pochopitelně několik desítek a každý kousek webu vypadá, že funguje dobře pouze s jedním z nich. Na Drupalu pak bonus spočívá v opětovném definování všech navigací v jiných jazycích, protože o jednoduchých překladech stávajících menu si i po 12 letech vývoje prostě můžete nechat zdát.

A co je špatně se strukturou webu? Protože byly vyvíjeny pro online magazíny a blogy, oba systémy nemají prostou definici struktury webu. Většinou mají oddělené jednotlivé stránky a navigační menu jako izolované prvky, na vás je to poskládat správně a při tomto procesu uděláte mnoho chyb, než se postup odladí k dokonalosti. Výchozí řešení je spíše poloautomatické, automatické řešení jistě existuje v celé řadě rozšíření, ale proboha... opravdu si mám takto základní věc dohledávat mezi rozšířeními?

Vícejazyčnost a struktura stránek byly v našem zákaznickém systému 3OS prioritami, které se postupně odladila do dnešní vysoce funkční podoby pečlivou prací s odezvou klientů, kteří naše weby používají. Žádný open-source systém, se kterým mám zkušenost, je takto efektivně ani zdaleka nenabízí.

3. Bezpečnost open-source řešení.

Existuje zvláštní argument hovořící ve prospěch Drupalu a Wordpressu z hlediska bezpečnosti. Formulován opět na bázi „když se něco takto dlouho vyvíjí, jistě to bude již odladěné a bezpečné“.

Je to právě naopak. Velké nebezpečí plyne z oblíbenosti obou systémů, dostupnosti zdrojového kódu a roztříštěnosti vývoje systému a jeho rozšíření.

Pro mnoho klientů je nebezpečí na webu abstraktní pojem. Co je nebezpečné? Nebezpečné je, když na vaši stránku někdo umístí místo svého jména v komentáři kód, který přesměruje vaše zákazníky na pornostránky. Nebezpečné je, když kdokoliv získá vaše heslo v takové podobě, jak jste jej zadali. Nebezpečné je, když někdo z webu ukradne citlivá data vašich klientů (a oni vás dokonce později mohou i žalovat).

U všech těchto záležitostí není možné u Drupalu nebo Wordpressu garantovat, že se nestanou. Tím, že je systém otevřený a velmi rozšířený, tak může dojít velmi snadno k odhalení onoho rizikového místa útočníkem a ono to zkrátka nějakou dobu trvá, než se na to přijde a díra se zalepí.

Podle aktuální statistiky CVE Details má Drupal 115 bezpečnostních chyb, u Wordpressu je to číslo 164 . Jistě, většina z nich je již opravena a jejich závažnost je různá. Avšak stále je namístě obezřetnost: tyto chyby jsou vysoce profilované a při jejich znalosti je možné je aplikovat na každou z 73 milionů existujících instalací Wordpressu nebo necelý milion instalací systému Drupal a zkusit štěstí, zda administrátor webu dbá na aktualizace systému.

Navíc, a to je daleko horší, výše uvedené statistiky se dotýkají hlavně základního jádra a hlavních pluginů obou systémů. Při možnosti instalovat aktuálně 24.779 modulů na Drupal nebo 28.403 pluginů pro Wordpress není v silách nikoho, opakuji nikoho, zajistit bezpečnost všech těchto rozšíření a detailně sledovat jejich nápravu. I obyčejná galerie tak dokáže napáchat škody, pokud ji dával dohromady diletant.

Existuje pochopitelně také celá řada specializovaných hackerských nástrojů na oba systémy, které pomáhají útočníkům začátečníkům. Víte třeba, že i taková hloupost, jako mít uživatelské jméno "admin", může být ve finále pěkně drahá (díky kolegovi Gachovi za odkaz)? Zde hraje oblíbenost řešení velkou roli. 

Ne, u zákaznického systému určitě nemáte žádnou jistotu, že jej nikdo neprolomí, zejména pokud je špatně napsaný. Ale útočník přistupuje k webu na zákaznickém systému prakticky slepý - u Drupalu nebo Wordpressu se mu ta místa dopředu nabízí, může si je s přehledem přečíst ve zdrojovém kódu a otestovat na kopii systému někde u sebe.

Oba systémy se snaží dohnat ne zrovna růžovou bezpečnostní situaci častým aktualizováním. V dané situaci je to nejlepší strategie. Bohužel však často zvyšuje náklady na provoz: jak odhalit, co je ještě oprava bezpečnostní chyby a co je změna chování, která rozbije váš systém, to je většinou pod rozlišovací schopnost klienta (a mnohdy i zkušeného developera). Zejména noční můry způsobuje update Wordpressu. Kdo kdy neslyšel historky o webech přes noc padlých, protože se někdo v administraci ukliknul na odkazu „aktualizovat“? 

Bezpečnostní selhání na webu mohou být výrazným zdrojem špatného PR a vícenákladů. Neměly by se brát na lehkou váhu.

4. Znalost systému a ovládání

Poslední argument se nese v duchu "Drupal / Wordpress používáme, protože má jednotné ovládání a chceme mít všechny naše projekty stejné z hlediska používání".

Za prvé, zejména Drupal je typickým "many flavours" systémem, co se týče administrace. Snad jsem ještě v praxi neviděl 2 systémy na bázi Drupalu, které by vypadaly pro administrátora stejně. Jeho ovládání, zejména pokud máte více různých typů obsahu, je těžkopádné a v některých ohledech překvapivě málo flexibilní. Flexibility lze dosáhout instalací dalších a dalších pluginů, což se podepisuje na výkonu, přehlednosti systému a vašem duševním zdraví. V extrémních případech se dočkáte dlouhých, periodicky se opakujících klikacích soutěží, které se stávají po několika kolech rutinními a v tomto okamžiku se snadno udělá chyba. Představa, že administrace Drupalu reaguje rychle, je přitom z říše snů.

Wordpress je blogovací systém a pokusy přetavit jej v systém provozující firemní web vedou ve spoustu zvláštních konvencí. Například máte zároveň "Stránky" a "Příspěvky" a jen bůh a tvůrce webu tuší, co je v daný okamžik správná volba. Abych byl spravedlivý, pro Wordpress existují v poslední době velmi zajímavé vizuální editory, které se dají zakoupit spolu s lepšími šablonami, a které nabízejí stavbu článku nebo stránky z různých stavebních bloků. Na jejich obranu jsou opravdu kvalitní, do doby než je máte za úkol někoho učit.

Dosud dobré. Ale ovládání - právě to je ohled, ve kterém váš zákaznický systém může velmi pozitivní roli. Kdo zná lépe klienta, tvůrce systému, který je s ním v denním kontaktu, nebo anonymní tvůrce pluginu pro Wordpress? Ruku v ruce s tím plyne rozhodování, co ještě by měl klient mít možnost ovlivnit a co už raději nechat na web developerovi. Nad tím se často v systémech kalibru Drupal neuvažuje a klient tak najednou má možnost negativně změnit nastavení, které jste ladili pracně dlouhou dobu ve vývoji.

Na toto téma jsme před časem již jeden článek psali a byť je z dnešního hlediska již článkem poněkud rozporuplným, v zásadních bodech v něm nezbývá než souhlasit: stanovme si velmi dobře na začátku projektu, proč klient má chtít web administrovat a co má mít možnost reálně ovlivnit.

Srovnávací tabulka

získáno pozorováním na cca 10 případových studiích jednotlivých kombinací

nejlepší možnost je na každém řádku zvýrazněna.

ParametrWP - vlastní grafikaWP - šablonaCMS - vlastní grafika
licenční poplatky vybrané pluginy + práce grafika vybrané pluginy + profi šablona licence systému + práce grafika
instalace středně složitá snadná snadná
nastavení středně složité středně složité snadné
modifikovatelnost vyšší nižší až střední velmi vysoká
implementace grafiky složitá není nutná průměrně složitá
pozdější rozšiřování středně složité složité jednoduché
náhodné problémy za provozu
(aktualizace, bezpečnost)
vysoké riziko vysoké riziko nízké riziko
pozdější vývoj jinou firmou / developerem možný možný obtížný
dostupnost kódu cizím útočníkům vysoká vysoká obvykle velmi nízká
nároky na server vysoké nejvyšší 2) nízké

1) jde o typický zákaznický systém správy obsahu, zde bereme náš vlastní 3OS
2) profi šablony obvykle nabízí více možností, než je aktuálně třeba, díky čemuž je kód robustnější a provoz pomalejší

Drupal nebo Wordpress ale nejsou k zahození!

Nechci aby článek vyzněl příliš negativně vůči těmto dvěma systémům. Mám je rád a znám spoustu scénářů, při kterých mají své nezbytné uplatnění. Rád bych ale, abyste se velmi zamysleli, zda na nich skutečně chcete postavit svoji firemní prezentaci. Výše uvedená polemika nechť je vám hodnotným zdrojem.

Honza Malý
maly@kurzor.net
+420 722 211 443
Honza se specializuje na návrh webů a UI, věnuje se také vývoji.