WordPress v cloudu

Nainstalovat si WordPress a psát zvládne přeci každý. Sdílený hosting, PHP, MySQL databáze, a jedem! Ale co když chci něco trošku modernějšího? Co když chci použít CDN, cloudový LAMP, externí služby? Půjde to? A proč bych to měl chtít? Otázky, samé otázky…

Páteční „lehčí čtení“ bude tentokrát svého druhu „případová studie“. Dozvíte se v ní, jak si vytvořit blog na míru, jak ho přesunout do cloudu a co si pod tím vlastně autor představuje.

Požadavky

Chtěl jsem vytvořit blog, kam bych přesunul články o hrách, co jsem v průběhu let napsal, a kde bych mohl s tímto koníčkem pokračovat, aniž by se mi to motalo do jiných témat.

Primární požadavek byl „good enough“ – nechci instalaci, zprovoznění a vlastnímu provozu věnovat víc, než je nezbytně třeba. A to ani peněz, ani času.

Druhý požadavek byla možnost rozšiřování, úprav a doplňování např. o výpis z Twitteru.

Třetí požadavek: dostupná šablona. V rámci požadavku „… nevěnovat víc, než je nezbytně třeba“ je jasně řečeno, že nestojím o lepení nějakého vzhledu ad hoc. Můj čas je poměrně drahý a zastávám názor, že originální blog nedělá originální design, ale originální obsah.

Systém

Požadavek na dostupnost šablon splňovaly především dva systémy: Blogger.com a WordPress. U Drupalu, na kterém provozuji další weby, to není tak slavné. Proto jsem se zaměřil na první dva jmenované s tím, že popřípadě šablonu „ohnu“, kdyby se ukázalo, že systém sám je nevhodný. Nakonec jsem objevil rozumnou šablonu jak pro Blogger, tak pro WordPress (výběr zabral cca půl dne). Po krátkém testu obou systémů bylo jasné, že s rozhraním Blogger.com kamarádi nebudeme, takže volba padla na WordPress.

Hostovaný, nebo vlastní?

Další volba zněla: využít nějaký veřejný blogovací systém, nebo vlastní instalaci? Veřejné blogovací systémy mají výhodu v tom, že se o ně nemusíte starat. Prostě jen píšete. O aktualizace, hosting atd. se stará někdo jiný (nebo taky nestará…) Na druhou stranu vás hodně omezuje např. co do možnosti rozšiřování, což ale byla pro mne podmínka sine qua non. (České blogovací systémy byly hned od počátku mimo hru – jsou to buď přílepky k online deníkům, nebo jsou zamrzlé v roce 2007 s nejistou budoucností.)

Nakonec tedy zvítězila volba „redakční systém, který si nainstaluju a budu spravovat sám“. Na výběr jsem měl Drupal nebo WordPress, s tím, že WordPress měl plus za existující šablonu. 

Další možnost ke zvážení byla použít „blogování verzovacím systémem“ či nějakou podobu „offline blogování“, kdy se lokálně vygenerované stránky kopírují někam na levný statický hosting. Nakonec jsem nenašel vhodný systém, s nímž bych byl ochoten do tohoto způsobu jít, a psát vlastní se mi v danou chvíli rozhodně nechtělo.

Předpokládal jsem, že blog bude česky pro české čtenáře, takže umístěn by měl být ideálně v ČR, nebo alespoň v evropských datacentrech. Mám hostované virtuální servery u Virtualmaster, ale ty používám spíš pro nějaké specialitky – CGI skripty, Python, CouchDB, Node.js… Na provoz redakčního systému v PHP se SQL databází mi to připadalo trošku nepatřičné.

Suma sumárum: WordPress nebo Drupal, umístění v ČR/EU, zvážit statické generování.

Důsledky

Myšlenka staticky generovaných stránek se mi líbila. Chtěl jsem využít Amazon S3, především kvůli bezkonkurenční ceně (stránky, které tam provozuji, jsou dostatečně rychlé a měsíčně platím něco okolo jednoho dolaru). Staticky generované stránky ale přinášejí některé odlišnosti od klasického online blogovacího systému.

Například komentáře. Přidání komentáře znamená přegenerování všech stránek, kterých se komentář týká (příspěvek, leckdy i indexová stránka). Naštěstí mám ke komentářům rezervovaný vztah, nepovažuju je za nezbytnou integrální součást každého webu, a rozhodně není pro mne jejich hodnota taková, abych na ně plýtval databází a výpočetním výkonem. Zvolil jsem tedy Disqus a komentáře „outsourcoval“. Případný flamewar nebo spamový útok tak nepoteče z „mých“ prostředků. Naštěstí jak Drupal, tak WordPress mají plugin pro Disqus.

Totéž platí pro ankety, a vlastně pro vše, co by nějak způsobovalo časté přegenerovávání stránek: Svěřit to externí službě.

Při výběru hostingu nakonec pomohla náhoda. Právě jsem testoval Webcloud od Ignum, tedy vlastně „cloudový LAMP“, a napadlo mě použít jej právě na tento účel (více informací v článku Tři nové cloudové hostingy z ČR). Vzhledem k cenové politice, kdy se platí „čistý čas procesoru při zpracování dotazů“, byly jasné dvě věci:

1. Bude potřeba razantně cachovat,
2. Bude potřeba snížit počet požadavků na minimum.

Tím se do hry vrátil Amazon S3, který „odhostuje“ statické stránky za několik korun měsíčně a uleví tím výrazně vlastnímu „výkonnému jádru“. Výsledné řešení tedy záleželo na tom, který systém nabídne lepší spolupráci s Amazon S3 (či jiným podobným úložištěm). Vítězem se nakonec stal WordPress, kde nalezení této podpory bylo otázkou několika minut (u Drupalu mi potřebný modul poradil až Jakub Suchý poté, co jsme se vůbec shodli na tom, co že vlastně hledám a proč).

Řešení

  • WordPress (aktuální) + plugin pro práci s CDN
  • Hosting redakčního systému ve WebCloud
  • Statický obsah (obrázky, skripty, styly, videa) publikované via Amazon S3
  • Funkce, které vyžadují přegenerovávání stránek (komentáře, ankety a další „feedback“), řešit pomocí externích služeb.

V této sestavě se WebCloud stará pouze o poslání HTML stránek z cache návštěvníkům a o administrátorské funkce (zadávání nových článků). Při návštěvách od uživatelů je naprostá většina dotazů uspokojena z Amazon S3 (datové centrum v Irsku), přes který je také přenesena většina dat. Rychlost přístupu k těmto datům je bez problémů srovnatelná s přístupem k datům v českých datacentrech, respektive rozdíl max. tří desítek ms není natolik výrazný, aby byl kvůli němu web „pocitově pomalejší“ a aby stálo za to platit vyšší cenu za hostování statického obsahu v ČR.

Realizace

Zvolil jsem aktuální verzi WordPressu (3.2.1.) – nabízí ji i „šablony“ ve WebCloud. Instalace trvala cca 20 minut od zadání požadavku do funkčního webu – mezitím jsem si připravil poddoménu „cdn“ a nasměroval ji (CNAME) na Amazon S3.

Základním pluginem, který jsem instaloval jako první, byl WP Super Cache. Tento plugin umožňuje jednak cachovat veškerý obsah, ale krom toho umí i spravovat „statický obsah na jiné doméně“. K němu jsem instaloval i CDN Sync Tool, tedy plugin, který umí dle potřeby uploadovat soubory do různých úložišť, včetně Amazon S3/CloudFront.

Z dalšího obrázku jsou patrné možnosti CDN Sync Tool – kromě zadání přístupových údajů k CDN umožňuje například i zpracování obrázků pomocí Smush.it nebo spojení skriptů a jejich minifikaci (zvolil jsem Google Closure Compiler)

Poznámka: Zvolil jsem Amazon S3 v režimu Reduced Redundancy Storage – nepovažuju osobní blog za tak důležitý, aby byl servírován z „opravdového CDN“ (CloudFront), a případné riziko ztráty dat, které s sebou RRS nese, je do velké míry eliminováno tím, že zdrojové soubory leží i na WebCloudu a lze je tedy kdykoli bez potíží nakopírovat znovu.

Logickým doplňkem pak byly pluginy jQuery CDN, Disqus, PollDaddy. RSS kanál pak je samozřejmě puštěný přes FeedBurner.

Zkušenosti

Po měsíci provozu jsem s celým „cloudovým blogem“ spokojený. Náklady jsou minimální, údržba nenáročná, výpadky nulové a samotné nastavení, zprovoznění, vyladění a zkušební publikování několika článků zabralo jedno sobotní odpoledne. Díky posílání statického obsahu a multimédií z Amazon S3 je zátěž samotného serveru u WebCloud minimální, rychlost webu je mnohem vyšší než např. při hostování u HostMonster, a to při srovnatelné ceně.

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 30

Přehled komentářů

Michal Chybí cena
Martin Malý Re: Chybí cena
Franta Re: Wordpress v cloudu
Martin Malý Re: Wordpress v cloudu
plistiak Nulové výpadky
Martin Malý Re: Nulové výpadky
koss43 hodně složité
Martin Malý Re: hodně složité
František Kučera Cílová skupina a kritéria
Martin Malý Re: hodně složité
koss43 Re: hodně složité
hugo antilopa Re: hodně složité
linyKun Re: hodně složité
Martin Malý Re: hodně složité
Martin Malý Re: hodně složité
jAM_jAM Re: hodně složité
Martin Malý Re: hodně složité
jAM_jAM Re: hodně složité
Anonym Wordpress x WordPress
Michal Re: Wordpress x WordPress
Martin Malý Re: Wordpress x WordPress
Anonym Re: Wordpress x WordPress
w359 pekne
Martin Malý Re: pekne
w359 Re: pekne
Martin Malý Re: pekne
norbertlaposa Co je to cloud
František Kučera Re: Co je to cloud
snajpa Re: WordPress v cloudu
volani.webnode.cz Irsko?..
Zdroj: https://www.zdrojak.cz/?p=3569